VS Code или VS Codium?

VS Code – это в основном редактор кода с открытым исходным кодом, с проприетарной посыпкой сверху и проприетарным рынком расширений. Это немного беспородная порода программного обеспечения. VS Codium – это альтернатива с открытым исходным кодом, основанная на той же кодовой базе.

Но это еще не все! Это требует некоторого распаковывания! Прежде чем мы погрузимся в специфику, вероятно, стоит понять, почему огромная коммерческая компания отдает высококачественный продукт бесплатно!

Почему VS Code бесплатен?

На этот вопрос не так просто ответить, и я здесь спекулирую, но…

Для репутации Microsoft полезно, чтобы ее считали игроком на рынке open-source. В былые времена Microsoft была ярым противником open-source. В 2001 году генеральный директор Microsoft Стив Балмер знаменито назвал Linux “раковой опухолью, которая прикрепляется в смысле интеллектуальной собственности ко всему, к чему прикасается”. В 2020 году Брэд Смит, президент Microsoft, признал: “Microsoft была не на той стороне истории, когда в начале века взорвался open source, и я могу сказать это о себе лично”.

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

VS Code создан как облегченный редактор, основная функциональность направлена на фронт-энд разработку. Они получают добровольные взносы от сообщества для поддержания и расширения этих функций. Что еще более важно, сообщество создает большинство функций для других языков и неосновных функций с помощью расширений. Бесплатный труд? Да, пожалуйста.

Недавно VS Code был выпущен как новый онлайн-продукт, vscode.dev, редактор кода в браузере. Как говорится в сообщении в блоге VS Code:

Появление VS Code в браузере – это реализация первоначального видения продукта. Это также начало совершенно нового. Эфемерный редактор, доступный каждому, у кого есть браузер и подключение к Интернету, – это основа будущего, в котором мы действительно сможем редактировать что угодно и где угодно.

GitHub (принадлежащий Microsoft) запустил платный продукт под названием Codespaces, который использует VS Code в виртуальных машинах (VM). Он был запущен в августе 2021 года и в настоящее время доступен только для клиентов GitHub Teams и GitHub Enterprise Cloud. Полная информация о ценах доступна в их документации. Цена выглядит достаточно скромной, но я уверен, что они уже начинают зарабатывать на этом деньги.

Поскольку часть программного обеспечения, связанного с VS Code, является запатентованной, в будущем Microsoft может использовать коммерческие возможности. Она, конечно, не отменила Visual Studio как платный продукт, Visual Studio доступна в различных редакциях и является частью предложения по подписке. Возможно, именно поэтому расширения C# и C++ для VS Code имеют ограничительные лицензии.

Я полагаю, если есть тесная интеграция VS Code с другими продуктами Microsoft, это можно преподнести как особенность, чтобы привлечь людей. Вы можете увидеть эту интеграцию с GitHub сейчас, если нажмете кнопку . на любой странице репозитория, откроется веб-редактор VS Code.

До того, как GitHub был приобретен Microsoft, он также создал свой собственный редактор кода с открытым исходным кодом, Atom. Atom до сих пор активно поддерживается. Это просто показывает, как они использовали похожие стратегии в долгосрочной перспективе. Я полагаю, что философия заключается в том, чтобы делать инструменты для разработчиков и создавать “экосистему”, чтобы продавать что-то дополнительно.

Телеметрия от VS Code дает Microsoft представление о тенденциях и помогает в разработке продуктов. Для них это своего рода маркетинговый инструмент для сбора полевых исследований. Телеметрия работает по модели opt-out, поэтому она достаточно важна для них, чтобы при установке приложения вы получали уведомление. Как я уже говорил в предыдущей статье о телеметрии в VS Code, продукт лицензирован и разработан таким образом, что вы не можете избежать сбора всех данных.

В любом случае, это мои предположения.

Поскольку якобы это в значительной степени соответствует тому, что хотят разработчики – отличный (в основном) редактор кода с открытым исходным кодом по цене ноль центов, многие довольны VS Code.

Обзор и сравнение проектов

Большая часть кода редактора Visual Studio Code доступна в репозитории GitHub (microsoft/ vscode) под лицензией MIT. Microsoft называет его репозиторием “Code - OSS“. Существует процесс сборки, который берет код из этого репозитория и создает специализированный продукт, который является фактическим программным обеспечением, которое вы устанавливаете и используете.

Код VS VS Код
Организация Microsoft VSCodium
Лицензия репозитория MIT MIT
Лицензия на продукт Лицензия на продукты Microsoft MIT
Процесс сборки У Microsoft есть пользовательская сборка, которая клонирует репозиторий “Code - OSS” и добавляет некоторые настройки Microsoft для создания конечного продукта с другой лицензией. VSCodium клонирует репозиторий Microsoft “Code - OSS” и добавляет некоторые настройки сообщества для создания конечного продукта.
Marketplace (реестр) Microsoft Visual Studio Code Marketplace. Код маркетплейса является проприетарный. Условия использования гласят, что расширения в marketplace могут использоваться только с продуктами Microsoft. Открытый реестр VSX. Код торговой площадки является открытым (Eclipse Public License 2.0). Ограничений на использование расширений нет.
Проприетарные расширения Вы можете использовать все расширения Microsoft. Некоторые из расширений Microsoft ограничены. Некоторые из них заблокированы для запуска вне VS Code.
Телеметрия (обмен данными) Включена по умолчанию. Отключена по умолчанию.

Давайте рассмотрим эти аспекты по очереди.

Организация

Microsoft – это большая компания по производству программного обеспечения. Пусть вас не вводит в заблуждение название.

VSCodium – это люди с открытым исходным кодом (я полагаю).

Лицензирование

Исходный код VS Code и VS Codium распространяется по лицензии MIT.

Собранное приложение VS Code находится под лицензией Microsoft, в то время как VS Codium – под лицензией MIT.

Процесс сборки

Согласно этому комментарию от сопровождающего Visual Studio Code:

Когда мы [Microsoft] собираем Visual Studio Code, мы делаем именно это. Мы клонируем репозиторий vscode, создаем пользовательский product.json с функциональностью, специфичной для Microsoft (телеметрия, галерея, логотип и т.д.), а затем создаем сборку, которую выпускаем под нашей лицензией.

Когда вы клонируете и собираете сборку из репозитория vscode, ни одна из этих конечных точек не настроена в стандартном product.json. Поэтому вы создаете “чистую” сборку без настроек Microsoft, которая по умолчанию лицензирована по лицензии MIT.

Процесс сборки Microsoft также загружает дополнительные файлы. Об этом говорилось в Microsoft/vscode#141340 и Microsoft/vscode#45978. Вот пакеты, загружаемые во время сборки:

  • Расширения из Microsoft Marketplace:
    • ms-vscode.references-view
    • ms-vscode.js-debug-companion
    • ms-vscode.js-debug
    • ms-vscode.vscode-js-profile-table
  • Из релизов Electron:
    • electron
    • ffmpeg

VS Codium был создан для того, чтобы избавить вас от необходимости самостоятельно скачивать и собирать из исходных текстов, а также добавить некоторые возможности для настройки сообществом. Полученные двоичные файлы добавляются в раздел релизов репозитория vscodium.

Marketplace (реестр)

VS Code настроен на использование Microsoft VS Code Marketplace. Условия его использования ограничивают доступ только к продуктам Microsoft и GitHub. Ряд ключевых расширений Microsoft разрешено использовать только с продуктами Microsoft, юридическая формулировка этого следующая из раздела 1b:

Предложения Marketplace предназначены для использования только с продуктами и услугами In-Scope, и вы можете устанавливать и использовать Предложения Marketplace только с продуктами и услугами In-Scope.

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

Меня раздражает такое название: зачем называть это местом продажи, если нельзя ничего продать!

Хотя нет никаких признаков того, что это произойдет, ничто не мешает Microsoft изменить условия и положения в будущем. Это оставляет дверь открытой для них, если они захотят сделать что-то коммерческое.

Чтобы опубликовать расширение на рынке, необходимо выполнить некоторые действия. Вы должны иметь учетную запись Microsoft/Azure и выполнить несколько странных шагов.

VS Codium настроен на использование реестра Open VSX Registry. Этот реестр разработан и поддерживается в рамках проекта Eclipse Open VSX. Он нейтрален к поставщикам, поэтому его можно использовать с любой технологией или инструментом. Примерами являются: VSCodium, Eclipse Theia, Eclipse Che, Gitpod, Coder и SAP Business Application Studio.

Код является полностью открытым. Таким образом, любой желающий может создать свой собственный реестр и использовать его в частном порядке. В результате вы можете сохранять точный контроль над доступностью вашего расширения. Это очень похоже на обычную практику, применяемую в других экосистемах, таких как npm, Cargo и Maven.

Поскольку рынок Microsoft VS Code Marketplace более развит и имеет больше пользователей, вы, скорее всего, пропустите некоторые расширения, доступные там. У вас есть следующие варианты получения недостающих расширений:

  • Попросить сопровождающих расширений опубликовать их на open-vsx.org в дополнение к VS Code Marketplace. Процесс публикации задокументирован в Open VSX Wiki.
  • Создайте запрос тяги к этому репозиторию, чтобы учетная запись службы @open-vsx опубликовала расширения для вас. Похоже, что они выполняют пакетное задание, чтобы поддерживать их в актуальном состоянии.
  • Скачайте и установите файлы vsix самостоятельно.

Для публикации в Open VSX marketplace требуется меньше требований и шагов, чем для установки Microsoft.

Оба рынка предлагают инструменты CLI для публикации и управления вашими расширениями, vsce для VS Code и ovsx для Open VSX. Они довольно похожи.

Я написал несколько расширений и использую действие publish-vscode-extension GitHub для публикации своих расширений на обоих рынках.

Проприетарные расширения

Некоторые расширения VS Code имеют лицензии, которые ограничивают их использование официальными сборками Visual Studio Code. Если вы проигнорируете лицензии и попытаетесь запустить их в VS Codium, некоторые расширения не будут работать, потому что существует внутренняя проверка, запрещающая их запуск вне VS Code.

Вот список некоторых расширений с ограниченными лицензиями/использованием:

  • Язык C# (на базе OmniSharp): Официальная поддержка языка C#. Расширение подпадает под действие этой ограничительной лицензии, так как использует проприетарный отладчик Microsoft. Исходный код доступен по лицензии MIT. См. этот комментарий в репозитории расширения C# для обсуждения этого вопроса. Существует альтернативная версия расширения C# в реестре Open VSX Registry, которая использует отладчик Samsung с лицензией MIT.
  • Язык C++: Официальная поддержка языка C++. Расширение подчиняется этой ограничительной лицензии. Вы можете посмотреть этот комментарий в репозитории расширения для разъяснения этого.
  • Live Share: Совместное редактирование и отладка с другими пользователями в режиме реального времени в вашем редакторе. На расширение распространяется данная ограничительная лицензия (использование только с продуктами семейства Microsoft Visual Studio).
  • Расширения для удаленной разработки: Позволяет открывать любую папку в контейнере, на удаленной машине или в подсистеме Windows для Linux (WSL). Пакет расширений Remote Development соответствует этой ограничительной лицензии и содержит следующие расширения:
    • Remote – SSH – работа с исходным кодом в любом месте путем открытия папок на удаленной машине/VM с помощью SSH.
    • Remote – Containers – Работайте с отдельным инструментарием или приложением на основе контейнера, открывая любую папку, установленную в контейнере или внутри него.
    • Удаленный – WSL – Получите опыт разработки под Linux, не выходя из Windows, открыв любую папку в подсистеме Windows для Linux.

Есть и другие – вот список расширений Microsoft с их лицензиями.

Телеметрия (обмен данными)

Как заявляет Microsoft в своей документации по телеметрии:

Visual Studio Code собирает телеметрические данные, которые используются для понимания того, как улучшить продукт. Например, эти данные об использовании помогают отлаживать проблемы, такие как медленное время запуска, и определять приоритеты новых функций. Хотя мы ценим то понимание, которое дают эти данные, мы также знаем, что не все хотят отправлять данные об использовании, и вы можете отключить телеметрию, как описано в разделе “Отключение телеметрической отчетности”.

Существуют настройки телеметрии, telemetry.telemetryLevel и telemetry.enableCrashReporter, которые включены в VS Code по умолчанию. Эти настройки не отключают телеметрию на 100% (как указано в разделе 2.a лицензии).

Когда вы впервые устанавливаете VS Code, появляется диалоговое окно с возможностью отказаться от телеметрии.

По умолчанию VS Codium отключает эти настройки телеметрии, и организация стремится ограничить всю телеметрию.

Расширения не следуют глобальным настройкам. Некоторые расширения Microsoft отправляют телеметрические данные, например, расширение языка C# и расширения из пакета расширений Remote Development. Цитируя Microsoft:

VS Code позволяет добавлять функции в продукт путем установки расширений Microsoft и сторонних производителей. Эти расширения могут собирать собственные данные об использовании и не контролируются параметром telemetry.telemetryLevel. Обратитесь к документации конкретного расширения, чтобы узнать о его телеметрической отчетности и о том, можно ли ее отключить.

Итак, если вы хотите отказаться от телеметрии, то вам нужно обратить внимание и на свои расширения.

Более подробно я обсуждаю эту тему в следующей статье, VS Code – Как быть с телеметрией?

Стоит ли вам переходить с VS Code на VS Codium?

Ответ “Да”, если вы хотите:

  • Использовать 100% программное обеспечение с открытым исходным кодом,
  • Если вы хотите запустить частный реестр расширений,
  • Если вы хотите поддерживать продукт, который по умолчанию минимизирует телеметрические отчеты (обмен данными),
  • Или у вас паранойя по поводу того, что Microsoft затеяла какую-то пакость.

В противном случае, я полагаю, ответ будет “Нет”!

Редакторы очень, очень похожи в том, что они делают. Я использовал их бок о бок в течение некоторого времени, и сейчас для меня это одно и то же. Для меня переход прошел без проблем, но я видел, что у некоторых людей возникали некоторые проблемы.

Единственным ограничением VS Codium является отсутствие фирменных расширений на рынке Open VSX, однако для них есть некоторые альтернативы. Похоже, что C# покрыт. Сообщество должно сделать свои собственные версии этих расширений, чтобы все было точно так же.

Оцените статью
Procodings.ru
Добавить комментарий