Making App Development Simpler: The Language Server Protocol

Making App Development Simpler: The Language Server Protocol



Microsoft, Codenvy, and Red Hat recently announced the adoption of a joint project focusing on making app development simpler. The Language Server Protocol, announced at DevNation 2016, aims to create a more understandable way to integrate programming languages across code editors and integrated development environments (IDEs).

Tyler Jewell, Codenvy CEO and Eclipse Che project lead, stated, “historically, most programming languages have only been optimized for a single tool. This has prevented developers from using the editors they know and love, and has limited opportunities for language developers to reach a wide audience.”

“With a common protocol supported by Microsoft, Red Hat, and Codenvy, developers can gain access to intelligence or any language within their favourite tools.”

What is it?

The Language Server Protocol is an open-source project that defines a JSON-based data exchange language server protocol. It is hosted on GitHub and licensed under the creative commons and MIT licenses. The protocol is used between a tool (the client) and a language smartness provider (the server) to integrate specific features into the tool, such as auto-complete, goto definition, find all references, and others. Here’s a diagram to illustrate the communication between a tool and the language server: Making App Development Simpler: The Language Server Protocol | Broadcast | Crucial

Who are involved?

Microsoft, one of the world’s largest tech giants, mostly known for their computer software, consumer electronics, and personal computers and services.

Codenvy, the company behind the same-name on-demand developers workspaces, that make software development continuous. They also lead the Eclipse Che Project.

Red Hat, the world’s leading provider of open-source software solutions for the enterprise community, that use a community-powered approach to provide reliable and high-performing cloud, Linux, middleware, storage, and virtualisation technologies.

What does this mean?

  • Developer flexibility and choice — developers can now access rich editing experiences across new programming languages, while continuing to use their preferred tools.
  • Multiple operating systems — programming language providers can support multiple tools across a range of operating systems, which maximises their reach and relevance
  • Editor support — support has been added to the protocol with Microsoft Visual Studio Code and Eclipse Che (the next-generation Eclipse IDE).
  • Many programming languages — there is a multitude of programming languages servers that are planned to support the protocol later this year, such as C# by OmniSharp, xText, R by Typefox, JavaFx by Ensime, and CSS by Microsoft. A number of programming language servers are available today, including JSON, C++, and Powershell.
  • Open collaboration — the three collaborators are committed to developing the protocol in collaboration with the open source community. As it’s hosted on a public repository, any individual can submit feedback or contribute pull requests to enhance and refine the project.
  • Language server registry — to make languages servers discoverable for any tool, language servers are published as part of a global registry, built by Codenvy as an Eclipse project, and hosted by the Eclipse Foundation.