Microsoft изобретательно наказала разработчиков форков VS Code. Они внезапно лишились совместимости с C/C++
Microsoft усложнила жизнь программистам, использующим редакторы кода и другие инструменты на основе принадлежащего ей свободного VS Code. В начале апреля корпорация умышленно сделала крайне популярное расширение для написания кода на языках программирования C и C++ несовместимым с альтернативными средами разработки. Проблема, в частности, актуальна для пользователей форков VS Code – VS Codium и Cursor.Подножка программистам от Microsoft
Официальное расширение, обеспечивающее поддержку языков программирования C и С++ в редакторе кода Microsoft Visual Studio Code (VS Code), больше не допускает использование с альтернативными инструментами разработчика на базе VS Code, пишет The Register.
С начала апреля 2025 г. программисты, применяющие редактор VS Codium и ИИ-помощник Cursor, могут наблюдать неработоспособность подключаемого модуля “C/C++ for Visual Studio Code”. VS Codium и Cursor построены на кодовой базе VS Code.
Расширение значительно обогащает возможности редакторов кода и упрощает работу разработчиков ПО, использующих C и C++. В частности, плагин поддерживает форматирование и автодополнение кода (Microsoft IntelliSense), быстрое перемещение по классам и методам, отладку в операционных системах семейств Windows, Linux и macOS. Как отмечает The Register, без этих функций альтернативные редакторы серьезно проигрывают разработкам Microsoft.
Изменения, ликвидирующие совместимость расширения с любыми программными продуктами за исключением одобренных Microsoft, по всей видимости, были привнесены разработчиками в релизе 1.24.5, который состоялся 3 апреля 2025 г.
Начиная именно с этой версии попытки установить C/C++ for Visual Studio Code” оборачиваются возникновением ошибки, которая сопровождается сообщением следующего содержания: «Расширение C/C++ может быть использовано только с Microsoft Visual Studio, Visual Studio for Mac, Visual Studio Code, Azure DevOps, Team Foundation Server, а также будущими продуктами и сервисами Microsoft для разработки и тестирования приложений» (“The C/C++ extension may be used only with Microsoft Visual Studio, Visual Studio for Mac, Visual Studio Code, Azure DevOps, Team Foundation Server, and successor Microsoft products and services to develop and test your applications”).
От слов к делу
Официально Microsoft уже давно запретила использование плагинов для VS Code в продуктах сторонних разработчиков. Такое ограничение действует по крайней мере с сентября 2020 г., когда были опубликованы условия лицензирования подключаемого модуля в их текущим виде. Однако до сих пор Microsoft не предпринимала каких-либо действий, направленных на принуждение его пользователей к выполнению этих условий.
С выходом версии 1.24.5 в “C/C++ for Visual Studio Code” появился алгоритм, выявляющий и пресекающий попытки его запуска в окружении, отличном от VS Code и Visual Studio. Законно избавиться от этой функции не представляется возможным, поскольку она «зашита» и поставляется в составе двоичного файла, являющегося неотъемлемой частью модуля, а соответствующая лицензия прямо запрещает его декомпиляцию.
В отличие от редактора VS Code, который является полностью свободным ПО и чей код распространяется на условиях лицензии MIT, “C/C++ for Visual Studio Code” состоит из двух основных компонентов, один из которых является открытым и написан на языке TypeScript, а второй – бинарным и закрытым. Именно последний выполняет основную работу и представляет интерес для разработчиков.
При этом, как отмечает The Register, PyLance, похожее по функциональности расширение, обеспечивающее поддержку другого крайне популярного языка Python, несовместимо с форками VS Code, уже очень давно.
Корпорация Microsoft открыла исходный код среды разработки VS Code и опубликовала его на сайте GitHub в ноябре 2015 г. Предварительная версия редактора была выпущена в апреле 2015 г. Вместе с открытием его кода Microsoft объявила о начале фазы бета-тестирования. Наиболее важным нововведением в бета-версии стала поддержка расширений.
Как справляются с проблемой альтернативные редакторы
По словам Майкла Труэлла (Michael Truell), сооснователя и генерального директора компании Anysphere, стоящей за разработкой ИИ-ассистента Cursor, в случае с его детищем проблема получила временное решение и в настоящее время специалисты компании работают над поиском возможностей, которые позволят устранить ее навсегда.
«В дальнейшем Cursor откажется от этого расширения. Мы инвестируем в альтернативы с открытым исходным кодом, которые уже существуют в сообществе, и включим их в следующую версию, чтобы обеспечить плавный переход», – отмечает Труэлл.
По информации The Register, временное решение Cursor может нарушать условия использования подключаемых модулей Microsoft. Обойти установленные технические ограничения Cursor якобы позволяет обратный прокси для маскировки сетевых запросов к конечным точкам, используемым официальным магазином расширений Microsoft Visual Studio (Extension Marketplace). Подобный подход позволяет пользователям Cursor свободно устанавливать из него, успешно проходя проверки окружения.
Разработчики VS Codium, в свою очередь, заняты поисками свободных альтернатив плагину Microsoft.
В начале апреля 2025 г., через несколько дней после релиза «рокового» обновления “C/C++ for Visual Studio Code”, Microsoft анонсировала запуск «режима агента» в ее собственном помощнике программиста GitHub Copilot, который можно считать конкурентом продукта Anysphere.
Один из разработчиков, использующих Cursor, на условиях анонимности сообщил The Register о намерении обратиться в Федеральную торговую комиссию США (FTC) с требованием проверить действия Microsoft на предмет нарушения антимонопольного законодательства.
Сервис GitHub Copilot, в основе которого лежат нейросетевые технологии OpenAI, был запущен Microsoft в июне 2021 г.