Codenvy's New Language Server Protocol Reduces Programmer Envy
"In the case of all three of our organizations—Red Hat, Codenvy and Microsoft—we've been contributing to a number of programming languages and recruiting a number of programming languages to participate," he said. "We've got nine committed at this point. Red Hat is doing Java, Microsoft is doing TypeScript, C and C++, Codenvy is working with others on xText, XML, JSON and others. We've got most of the major languages, and it won't take us long to get the rest." Indeed, the programming language servers available today include JSON, C++ and Powershell, which are available in VS Code or VS Code extensions. And more language servers are planned to support the protocol later this year, including C# by the OmniSharp project, xText and R by Typefox, JavaFX by Ensime and CSS by Microsoft. Red Hat has open-sourced a project working to provide the first stand-alone Java language server, which it proposes to donate to the Eclipse Foundation, Jewell explained. Jewell noted that some have questioned why a project like this didn't happen a long time ago and he cited two reasons. One is the need for true community support. Major groups of tools and language providers need to commit to the effort, and that was difficult in the past because battles were drawn along proprietary lines with languages and language extensions used as weapons or defenses. So community is one thing, and another is that the political/competitive climate has changed such that competition is no longer at the language level, Jewell said.Any more, a developer's commitment to a vendor's platform does not mean they're committed to that vendor's language. So all these vendors have changed their minds and are saying we need to make it possible for these languages to work with us. "There's a spirit of contribution and commitment that's never existed before," Jewell said. "We see a tremendous opportunity to improve the way software is created, especially in the cloud, and we are focused on bringing that innovation to our customers in a way they can more easily adopt," Harry Mower, senior director of developer programs at Red Hat, said in a statement. "Developer choice is a key area for us and interoperability of programming languages and tools is an important part of Red Hat's developer strategy." Developer choice indeed. Microsoft in 2014 launched its effort to enable developers using any language and platform to use its .NET Framework and tooling to build applications. The software giant then signaled its intention to further empower developers to have even more choice when it joined the Eclipse Foundation in March and announced its efforts regarding Eclipse Che. The Eclipse Che ecosystem is a community-driven open-source cloud IDE, workspace server and plug-in platform supported by Codenvy, Microsoft, Red Hat and SAP. The new language server protocol planned by Microsoft, Red Hat and Codenvy aims to make life considerably easier for a wide variety of developers and software projects," said Charles King, principal analyst at Pund-IT. "In essence, rather than being forced to use editing tools required by specific programming languages, the new language server protocol will eventually allow developers to utilize the editing tools they prefer and are most familiar with for virtually any project," King said. "That should reduce training requirements, speed the time to complete projects and enhance developer experience, all good things by any measure." The new language server protocol also opens the door for more developers to become polyglot developers—that is, they routinely use more than one programming language to get their jobs done. "What we're starting to do is extracting away the complexity of programming with different languages so that developers can focus more on writing code with whatever language they want," Jewell said.
"The political environment now encourages this," he said. "A decade ago, Microsoft and Red Hat and IBM and whatnot made their platform bets on a particular programming language. But that's all changed. Now everything is API-driven with microservices, which give developers choice of languages."