Компании Microsoft, Codenvy и Red Hat объявили на днях о выпуске в релиз проекта языкового протокола с открытым исходным кодом Language Server Protocol, целью которого является универсальная интеграция языков программирования в различные редакторы кода и интегрированные среды разработки, пишет eWeek.
Компании анонсировали новый протокол на открытии пленарной сессии конференции DevNation 2016 в Сан-Франциско. Отправной точкой Language Server Protocol стал проект IDE-платформы Eclipse Che, представленный ранее в этом году на конференции EclipseCon.
«Лекарство» от «головной боли» программистов
Новый протокол повышает гибкость и производительность разработки путём предоставления многофункционального интерфейса для редактирования кода с помощью разнообразного инструментария, подходящего к различным языкам программирования.
«Так исторически сложилось, что большинство языков программирования были оптимизированы только под какой-то один инструмент разработки, — констатировал Тайлер Джуэлл, генеральный директор Codenvy и руководитель проекта Eclipse Che. — Это мешает разработчикам пользоваться хорошо знакомыми и любимыми редакторами, а создателям самих языков — сделать свой язык популярным среди широкой публики. Благодаря единому протоколу, поддерживаемому компаниями Microsoft, Red Hat и Codenvy, разработчики смогут получить доступ к логическому функционалу любого языка при помощи предпочитаемых ими программных средств».
Как пояснил Джуэлл, на протяжении последнего десятилетия «головной болью» программистов при работе с инструментами разработки была необходимость выбирать для работы определенный язык и довольствоваться доступным для этого языка инструментарием, так как возможности таких инструментариев всегда привязаны к проприетарным API и компонентам, которые могут меняться в зависимости от конкретного языка.
«Так что для переключения на другой язык программирования, как правило, приходилось менять и IDE, — говорит он. — А если программисту понравилась определенная IDE, то в ней довольно непросто обеспечить поддержку сразу нескольких языков».
Между тем с внедрением нового протокола Language Server Protocol в любой IDE можно будет работать с каким угодно языком программирования, а создатели языков смогут писать их так, как считают нужным.
Джуэлл сообщил, что Language Server Protocol — это открытый проект, описывающий протокол обмена данными для языковых серверов в формате JSON. Проект размещён на GitHub и доступен по лицензиям Creative Commons и MIT. Благодаря обеспечению операционной совместимости между редакторами кода и языковыми серверами протокол позволяет разработчикам пользоваться вспомогательными средствами, облегчающими процесс разработки (поиск по символам, синтаксический анализ, автозаполнение кода, переход к месту объявления функции/класса, иерархическое структурирование кода и рефакторинг), внутри выбранных ими редакторов и IDE, уточняет он.
Плодотворное сотрудничество, или Кто за что отвечает
По словам Джуэлла, первую пару инструментов, поддерживающих такой функционал, составили Eclipse Che (новейшая среда разработки под Eclipse) и Visual Studio Code от Microsoft. Codenvy отвечает за поддержку этих возможностей в Eclipse Che, а Microsoft поставила перед инженерами задачу обеспечить соответствие протоколу в среде VS Code.
«Коллектив проекта Eclipse Che и компания Red Hat также заявили о намерении принять действующий в Visual Studio Code протокол Language Server Protocol — открытый протокол, добавляющий некоторые расширенные возможности редактирования к VS Code, — пишет в блоге компании Джозеф Сирош, корпоративный вице-президент подразделения Data Group компании Microsoft. — Это признак того, что открытое ПО, разрабатываемое командой VS Code, берут на вооружение создатели программных сред и языков, в результате чего у разработчиков появляется возможность комбинировать предпочитаемый ими язык с любимым рабочим инструментарием».
«Мы сформулировали единый протокол языковых серверов после того, как интегрировали в VS Code серверы программного пакета OmniSharp для C# и языка TypeScript, — сообщил в своем заявлении Эрих Гамма, заслуженный инженер Microsoft (внутреннее почётное звание) и руководитель проекта Visual Studio Code. — После двукратной интеграции языковых серверов стало ясно, что единый языковой протокол станет обоюдовыгодным решением как для разработчиков инструментов для кодирования, так и для создателей языков: ведь таким образом любой автор языка сможет добиться поддержки своего языка в нужных инструментах, при этом разработчикам этих инструментов будет несложно добавить ее в свои продукты».
Используя Language Server Protocol, поставщики языков программирования смогут обеспечить поддержку множества инструментов под различными операционными системами. В рамках проекта был составлен глобальный реестр языковых серверов, созданный компанией Codenvy в качестве проекта Eclipse и размещённый на серверах Eclipse Foundation, чтобы разработчики инструментария для создания кода могли узнать об интересующем их языковом сервере и при желании применить его у себя, рассказал Джуэлл.
«Что касается наших трёх организаций — Red Hat, Codenvy и Microsoft, — все мы занимались развитием нескольких языков программирования и привлекали целый ряд создателей языков программирования к сотрудничеству, — поделился он. — На данный момент в проекте задействованы девять языков. Red Hat занимается интеграцией языка Java; Microsoft — TypeScript, C и C++; Codenvy в числе прочих компаний работает над xText, XML, JSON и другими языками. Мы уже обеспечили совместимость большинства популярных языков, и не за горами тот день, когда мы включим в проект и все остальные».
И в самом деле, в настоящее время доступны языковые серверы для таких языков как JSON, C++ и Powershell — они поддерживаются в среде VS Code и её расширениях. А во втором полугодии к этому протоколу приобщатся и другие языковые серверы: над сервером для языка C# работают в рамках проекта OmniSharp, серверы для языков xText и R создает компания Typefox, для JavaFX — Ensime, а для CSS — Microsoft. Компания Red Hat открыла код проекта, призванного создать первый автономный сервер языка Java. Этот проект предлагается безвозмездно передать организации Eclipse Foundation, пояснил Джуэлл.
Отвечая на вопрос о том, почему такой проект не появился намного раньше, генеральный директор Codenvy называет две причины. Во-первых, раньше не было настоящей поддержки сообщества. Во-вторых, по его словам, изменился конкурентно-политический климат, и конкуренция теперь происходит не на уровне языков.
Всё упирается в выбор разработчиков
«Мы усматриваем в этом огромные возможности для улучшения процесса разработки ПО, особенно в облаке, и мы чётко настроены на то, чтобы донести эти нововведения до наших клиентов в наиболее удобоваримом для них виде, — сделал заявление Гарри Моуэр, главный директор по программам для разработчиков в Red Hat. — Выбор разработчиков — наш ключевой приоритет, а операционная совместимость языков и средств программирования является важной частью стратегии поддержки разработчиков, декларируемой Red Hat».
И правда, всё упирается в выбор разработчиков. В 2014 году Microsoft решила предпринять ряд мер для того, чтобы разработчики смогли использовать .NET Framework и сопутствующие инструменты при создании приложений на любом языке и на какой угодно платформе. Позже софтверный гигант выразил готовность ещё больше развязать руки программистам и предоставить им больше выбора, начав в марте сотрудничество с Eclipse Foundation и объявив о своём участии в проекте Eclipse Che.
Как новый протокол упростит жизнь разработчикам
«Новый протокол языковых серверов, планируемый компаниями Microsoft, Red Hat и Codenvy, должен значительно упростить жизнь самым разным программистам и участникам проектов по разработке ПО», — считает Чарльз Кинг, главный аналитик фирмы Pund-IT.
«По существу, вместо того, чтобы навязывать средства редактирования кода, требуемые определёнными языками программирования, новый протокол языковых серверов со временем позволит разработчикам пользоваться знакомыми, полюбившимися им редакторами для работы практически над любым проектом, — продолжает Кинг. — Это позволит обойтись без лишнего обучения, сократить время реализации проекта и улучшить процесс взаимодействия с разработчиком — все это привлекательные цели, как ни крути».
Новый протокол языковых серверов также подстегнёт разработчиков к тому, чтобы стать программистами-полиглотами — регулярно использующими больше одного языка программирования в своей работе.
«Мы начинаем процесс избавления разработчиков от трудностей, связанных с программированием на разных языках, чтобы те смогли вплотную заняться написанием кода на том языке, на котором они хотят», — подытожил Джуэлл.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.