I think Visual Studio Code introduces much better extensibility philosophy than Visual Studio.
Of course VS is old product and has some legacy we have to excuse, like COM, writing tons of boilerplate code just to show item in context menu, etc., but I mean philosophy of being friendly to everyone, regardless of underlying technology, is very important. For instance, writing language service, in C++ or C# only is a real limitation for some languages and prevents many languages of being integrated, so "Common Protocol for Languages" is right decision.
From another side, Visual Studio is very powerful in terms of customization. Creating virtual item hierarchy is easy (if we consider something can be easy when creating Visual Studio extension), so we have things like database project, with a lot of items, but no real files. I look forward to find similar possibilities in Visual Studio Code.
Decoupling the language support from the tool will be great if it gets wider support. This would give new editors a big leg up, as they only need to support the protocol and handle editing, and can lean on other parties to provide cross tooling language support. The same applies for new languages, write the server once, and get support from many tools.
The most interesting part of this announcement was who they didn't mention: JetBrains. It will be interesting to see if they come on board with this.
Many languages already have something like this. For example, look into ENSIME, ghc-modi, and Racer. I guess the innovation here would be a common protocol for "any" language, but I somewhat doubt that this will have much adoption outside of the .NET/Typescript communities.
Well it's nice to know there's at least some 3rd party support listed:
> the protocol has been adopted by Codenvy, who have added it to the next generation Eclipse IDE, Eclipse Che, as well as by Red Hat, who are working to publish a standalone language server for Java which can be consumed by any tool that utilizes the protocol.
> ... communities for programming languages like OmniSharp (C#), JSON, C++, xText, JavaFX, and R have made commitments to release language servers for their languages in the future.
Obviously we'll see if it actually happens, but at least other's are looking to support it.
I agree. `vim-go` is my favorite example; it actually is comprised of a number of daemons that service different facilities. The innovation would be a common interface specification any backend can play with any frontend.
omnisharp has already done this, at least specific to their stuff. granted, they are writing front-ends for each editor to integrate with a common language-server like described here, but its the same concept
Of course VS is old product and has some legacy we have to excuse, like COM, writing tons of boilerplate code just to show item in context menu, etc., but I mean philosophy of being friendly to everyone, regardless of underlying technology, is very important. For instance, writing language service, in C++ or C# only is a real limitation for some languages and prevents many languages of being integrated, so "Common Protocol for Languages" is right decision.
From another side, Visual Studio is very powerful in terms of customization. Creating virtual item hierarchy is easy (if we consider something can be easy when creating Visual Studio extension), so we have things like database project, with a lot of items, but no real files. I look forward to find similar possibilities in Visual Studio Code.