В Microsoft создали протокол межязыкового общения
В Microsoft создали протокол межязыкового общения

LSP создан, чтобы изменить ситуацию в мире инструментов разработки


09:31 11.07.2016   |  Пол Крил |  InfoWorld, США

Рубрика Технологии |   1600 прочтений



Language Server Protocol позволяет обеспечить единство функциональности и интероперабельность различных сред разработки при использовании разных языков программирования.

 

Microsoft, Red Hat и Codenvy возглавили инициативу по развитию нового протокола, позволяющего интегрировать различные языки программирования с разными средами разработки и редакторами кода.

Спецификация, получившая название Language Server Protocol, позволяет предоставлять сервисы, повышающие удобство программирования, в различных редакторах кода и средах разработки. Обмен данными по LSP осуществляется в формате JSON. Протокол используется для связи между клиентскими инструментами и языковыми серверами, реализующими, к примеру, такие функции, как автозавершение кода, быстрый переход к определению сущности, поиск всех упоминаний элемента и т. д. Языковыми серверами разработчики протокола называют программные средства, реализующие функции работы с кодом.

LSP создан, чтобы изменить ситуацию в мире инструментов разработки. Большинство языков программирования оптимизированы для использования с единственным набором инструментов, что ограничивает поставщиков языка в возможности охвата более широкой аудитории разработчиков, полагают в Codenvy.

Универсальный протокол в идеале должен дать разработчику возможность из предпочтительного для него инструментария обращаться к функциям повышения удобства программирования при использовании любого языка. LSP в числе прочего позволяет в выбранной среде разработки или редакторе организовать доступ к синтаксическим анализаторам, средствам наглядного выделения конструкций и механизмам рефакторизации кода.

Как сообщил Тайлер Джуэл, глава Codenvy, на сегодня в LSP поддерживаются следующие языки и технологии: Си, C++, C#, Java, RAML, TypeScript, JSON, CSS и Haxe. В дальнейшем к ним планируется добавить Python, Ruby и другие. «Чтобы донести наши идеи до создателей других языков, нам придется поработать», — отметил Джуэл.

Спецификацию единого протокола для языковых серверов в Microsoft подготовили по результатам проекта интеграции инструментария OmniSharp и серверов TypeScript с редактором исходного кода Visual Studio Code. А в Codenvy поддержку протокола обеспечили в Eclipse Che, сервере пространств разработки и облачной среде программирования.

«В создании протокола принимали участие многие отделы самой корпорации и ее партнеры, — отмечается в заявлении Microsoft. — Visual Studio Code стал первым продуктом Microsoft, который пользуется LSP, но в дальнейшем поддержка этого протокола может появиться и в других наших продуктах, в том числе в Visual Studio и Xamarin».

Гарри Мауэр, старший директор по программам для разработчиков Red Hat, отметил, что LSP способствует созданию языков, которые будет проще подключать к уже существующим инструментам разработчика. В Red Hat планируют обеспечить в протоколе поддержку Java.

По словам Джуэла, стимулами для развития LSP стали переход на микросервисы и тенденция разрабатывать бизнес-логику на самых разных языках. До этого в компаниях вроде Microsoft и Red Hat привязывали разработчиков к определенному языку, для которого предоставляли проприетарные инструменты. «Свой стек программных средств они оберегали крайне ревностно, но сегодня ситуация полностью изменилась», — добавил он.

Для поддержки Language Server Protocol нужен либо сторонний реестр, либо встроенный в среду разработки языковой сервер. По словам Джуэла, для протокола еще предстоит разработать открытую модель руководства.

Исполнительный директор Eclipse Foundation Майк Милинкович назвал создание LSP важным шагом вперед в мире средств разработки: «Благодаря этому протоколу поставщикам инструментов, таких как Eclipse IDE, Che и Orion, станет проще обеспечивать в них поддержку многих языков программирования».


Теги: Microsoft Интегрированные среды разработки Visual Studio

На ту же тему: