Visual Studio Code: почему Microsoft раздаёт его бесплатно
Как браузерный редактор с 3000 пользователями стал одним из главных редакторов кода в мире? История Visual Studio Code от Monaco до наших дней.
Сегодня Visual Studio Code относится к самым популярным редакторам кода в мире. Его история началась с Monaco, небольшого браузерного редактора, который в какой-то момент находился под угрозой закрытия. Вместо отказа от проекта разработчики изменили его направление. Эта статья описывает, как возник VS Code, какие решения определили его архитектуру и популярность, какие расширения доступны пользователям и какие вопросы связаны с безопасностью, лицензированием и экономикой проекта.
Приход Эриха Гаммы в Microsoft
В 2011 году Microsoft нанял швейцарского компьютерного учёного Эриха Гамму. К этому времени он уже был известен в программировании.
- В 1994 году Гамма и трое соавторов выпустили книгу «Design Patterns». Она стала одним из важнейших трудов по объектно-ориентированному программированию. В ней собраны проверенные решения типовых задач, с которыми сталкиваются разработчики.
- Вместе с Кентом Беком Гамма создал JUnit, инструмент для автоматизированного тестирования программ на Java. JUnit сыграл важную роль в популяризации модульного тестирования и разработки через тестирование (TDD).
- Гамма участвовал в разработке Eclipse, полноценной среды разработки, которая в своё время была одним из основных конкурентов Microsoft Visual Studio. По словам одного из руководителей IBM, разработчики Eclipse хотели затмить Visual Studio. Название «Eclipse» переводится как затмение или заслонение света.
Monaco: браузерный редактор
В Microsoft Гамма возглавил работу над другим проектом. Команда создавала небольшой редактор кода, который должен был работать в браузере. Проект получил название Monaco. Его задача не предполагала конкуренцию с Visual Studio. Редактор разрабатывался в Цюрихе для того, чтобы пользователи Microsoft могли редактировать код своих сайтов прямо в браузере, без установки полноценной среды разработки. Проект также назывался Visual Studio Online. Помимо браузерного редактора, Monaco представлял собой набор компонентов, которые позднее использовались в других веб-продуктах Microsoft.
Ключевые технические решения Monaco:
- Автосохранение. Функция включалась по умолчанию, чтобы пользователи не теряли работу. По словам Гаммы, команда VS Code и спустя годы продолжала использовать автосохранение, но так и не сделала его стандартной настройкой нового редактора.
- TypeScript. К 2013 году вся кодовая база Monaco была написана на TypeScript, языке Microsoft, который тогда был молодым. По словам Гаммы, именно TypeScript позволил команде свободно изменять и реструктурировать код без постоянных сложностей при обновлениях.
С технической точки зрения Monaco развивался успешно. Однако с точки зрения популярности результаты были слабыми. Ежемесячная аудитория редактора составляла около 3000 человек. Для небольшого независимого проекта это приемлемый показатель, но для Microsoft такие цифры были практически катастрофическими. Чтобы Monaco продолжил существовать, аудиторию требовалось увеличить минимум в 10 раз. В противном случае проект могли закрыть.
Решение 2014 года: переход к настольному приложению
В 2014 году разработчики отказались от идеи развивать Monaco только как браузерный инструмент. Они решили превратить его в полноценное настольное приложение. Это решение стало началом истории Visual Studio Code.
Новый проект получил кодовое название Ticino. Команда ставила перед собой следующие задачи:
- создать полноценный инструмент для Windows, macOS и Linux;
- не копировать Visual Studio;
- занять промежуточное место между простым текстовым редактором и тяжёлой IDE;
- сохранить простоту и скорость текстового редактора;
- добавить возможности разработки, запуска и отладки приложений на Node.js.
Команда не стала переписывать Monaco с нуля. Вместо этого она использовала Electron, фреймворк, который объединяет движок браузера Chromium и среду выполнения Node.js. Благодаря Electron приложения, написанные с помощью веб-технологий, запускаются как обычные программы в разных операционных системах. Многие разработчики в тот период переносили настольные приложения в браузер. Команда Microsoft пошла в обратном направлении и превратила браузерный редактор в настольную программу.
Одного запуска Monaco в отдельном окне было недостаточно. Редактор должен был быстро реагировать на действия пользователя, удобно работать с файлами и поддерживать отладку и систему контроля версий Git. Поэтому команда уделила большое внимание производительности. Разработчики намеренно отказались от готовых фреймворков для построения интерфейса и создали необходимые компоненты самостоятельно. Это решение требовало больших затрат труда, но позволяло не зависеть от ограничений сторонних библиотек и оптимизировать те части приложения, которые действительно важны.
Запуск и открытие исходного кода
29 апреля 2015 года на конференции Microsoft Build была представлена Visual Studio Code. Редактор был бесплатным и работал в Windows, macOS и Linux. Название «VS Code» придумали за пять дней до первого запуска.
Первая версия получила хороший приём, но в ней отсутствовали две важные возможности: полноценная поддержка расширений и открытый процесс разработки. Microsoft быстро устранила эти недостатки:
- Ноябрь 2015 года. Исходный код VS Code был открыт под лицензией MIT. Одновременно появилась система расширений и собственный маркетплейс, где разработчики могли публиковать дополнения.
- 14 апреля 2016 года. Вышла полная версия Visual Studio Code 1.0.
Для Microsoft, которую раньше связывали с враждебным отношением к открытому программному обеспечению, это стало существенным изменением курса.
Архитектура редактора
VS Code не пытался заменить привычные редакторы только количеством функций. Его главным преимуществом стала согласованная работа этих функций. На первый взгляд интерфейс похож на интерфейсы других редакторов: слева проводник файлов, в центре код, внизу терминал. За этим интерфейсом стоит продуманная архитектура.
Monaco и Workbench. Monaco остался в составе редактора и отвечает за редактирование текста, подсветку синтаксиса и отображение кода. Все остальные элементы, включая проводник файлов, поиск, терминал, управление Git и различные панели, относятся к так называемому Workbench. Вместе эти компоненты образуют Visual Studio Code.
Extension Host. Гамма ранее сталкивался с тем, что сторонние дополнения в Eclipse могли замедлить работу среды или полностью её заблокировать. Поэтому команда VS Code решила запускать расширения в отдельном процессе, который назвали Extension Host. Благодаря такому разделению проблемы с расширением не обязательно приводят к зависанию всего проекта. Например, сохранение файла выполняется в основном процессе и не зависит от работы установленного плагина. Расширения взаимодействуют с редактором через специальный API.
Language Server Protocol. В 2016 году Microsoft представила Language Server Protocol (LSP). Протокол позволяет выносить такие функции, как автодополнение, переход к определению и диагностика ошибок, в отдельные языковые серверы. Благодаря этому редактор поддерживает множество языков без встраивания их логики анализа в ядро.
Для большинства программистов важнее другое: редактор не тормозит и помогает писать код. В этом VS Code также предлагал несколько инструментов:
- IntelliSense подсказывает подходящие конструкции во время набора кода;
- встроенные средства помогают находить ошибки и отлаживать программы;
- интеграция с Git позволяет отслеживать изменения, создавать коммиты и работать с репозиторием, не покидая редактор;
- встроенный терминал и удобный поиск по проекту;
- командная палитра для быстрого доступа почти к любой функции VS Code.
Многие действия выполняются с клавиатуры, без постоянного переключения между окнами и меню. Большинство этих возможностей существовало и раньше, но Microsoft объединила их в одном бесплатном кроссплатформенном редакторе, который не требовал установки тяжёлой полноценной IDE.
Конкуренты
В 2014 году GitHub выпустил Atom, редактор, построенный на веб-технологиях и Electron, как и VS Code. Atom был бесплатным, имел открытый исходный код и позволял настраивать почти всё. Однако гибкость имела обратную сторону. Atom часто критиковали за высокое потребление ресурсов и проблемы с производительностью, особенно при работе с большими файлами.
Другим популярным редактором был Sublime Text. Он славился скоростью и быстрым откликом, но многие функции, которые VS Code предлагал сразу после установки, в Sublime требовалось настраивать отдельно.
Microsoft нашла баланс между этими подходами. VS Code не был самым быстрым или самым гибким редактором, но предлагал достаточно возможностей для серьёзной разработки и оставался относительно простым в использовании.
Популярность
Результаты появились быстро. В январе 2021 года ежемесячная аудитория VS Code достигла 14 миллионов человек. Для сравнения: у исходного Monaco было около 3000 пользователей в месяц.
По данным опроса 2026 года, 71% опрошенных разработчиков используют VS Code. Это не означает, что именно семь из десяти программистов в мире работают в этом редакторе. Цифра отражает масштаб популярности среди участников опроса.
Расширения
Встроенных функций и удачной архитектуры было недостаточно для такого успеха. В 2015 году Microsoft сделала ставку на расширения. Со временем они превратили VS Code из редактора в платформу для разработчиков.
После установки VS Code предоставляет полноценный редактор с подсветкой синтаксиса, терминалом, Git и другими инструментами. Гибкость раскрывается во вкладке Extensions, где можно найти дополнение практически для любой задачи.
Оформление и организация рабочего пространства
| Расширение | Назначение |
|---|---|
| VS Code Pets | Виртуальные питомцы (кошка, собака и другие животные), которые перемещаются по экрану; питомцу можно бросить мяч |
| Material Icon Theme | Замена стандартных значков файлов и папок на более яркие и узнаваемые; учитывает не только формат файла, но и название папки |
| Peacock | Назначение каждому рабочему пространству собственного цвета, что помогает не путать открытые окна нескольких проектов |
| Vim | Поддержка комбинаций клавиш Vim, режимов ввода, навигации HJKL и множества команд редактирования текста |
Расширение Vim требует привыкания. Пользователям рекомендуют правильно настроить его и не перегружать конфигурацию.
Написание кода
| Расширение | Назначение |
|---|---|
| Prettier | Автоматическое форматирование кода по заданным правилам при сохранении файла: исправляет отступы, лишние пробелы и различия в стилях оформления |
| Code Spell Checker | Проверка орфографии в комментариях, именах переменных и функций; распознаёт составные имена в формате CamelCase |
| Error Lens | Вывод сообщений об ошибках рядом с кодом и подсветка строк с ошибками вместо подчёркивания, которое требует проверки деталей отдельно |
| Live Server | Запуск локального сервера и открытие HTML-проекта в браузере с автоматическим обновлением страницы при сохранении файла |
| Code Runner | Запуск программы одной кнопкой для Python, JavaScript, C++ и других поддерживаемых языков; для работы на компьютере должны быть установлены соответствующие интерпретаторы и компиляторы |
| YAML от Red Hat | Автодополнение, проверка синтаксиса и подсказки для конфигурационных файлов YAML, которые используются в Docker Compose, Kubernetes и GitHub Actions |
Работа с Git и искусственным интеллектом
- GitLens позволяет подробно изучать историю проекта. Функция Git Blame показывает, кто и когда последним изменил конкретную строку кода.
- Git Graph выводит историю репозитория в виде наглядной диаграммы с коммитами и ветками. Расширение имеет собственный интерфейс и дополнительные инструменты, хотя аналогичная визуализация есть и в самом VS Code.
- GitHub Copilot изначально предлагал интеллектуальное автодополнение кода. Сегодня он интегрирован в VS Code и может объяснять незнакомые функции, помогать с отладкой, генерировать тесты и вносить изменения в несколько файлов. Результаты работы Copilot необходимо проверять.
В VS Code доступны тысячи расширений для различных языков, фреймворков и задач.
Безопасность расширений
Расширения получают доступ к файлам проекта, могут взаимодействовать с системой и выполнять код на компьютере. С ростом популярности VS Code вопросы безопасности расширений становятся важнее.
В январе 2024 года исследователи Snyk Security обнаружили два вредоносных расширения для VS Code, которые выдавали себя за AI-ассистенты. Их установили около 1,5 миллиона раз. Помимо заявленной помощи с кодом, расширения тайно собирали содержимое открытых в редакторе файлов и передавали его на сторонние серверы. Это не единственный подобный случай. Вредоносные расширения способны красть пароли, учётные данные и другую конфиденциальную информацию. Поэтому перед установкой дополнения рекомендуется проверить его разработчика и репутацию.
Лицензирование и телеметрия
Открытый исходный код VS Code не означает полной открытости всего экосистемы Microsoft. Необходимо различать Code OSS и официальную сборку Visual Studio Code:
- Code OSS представляет собой открытый проект под лицензией MIT, исходный код которого можно использовать почти где угодно.
- Официальная сборка Microsoft распространяется на других условиях и включает проприетарные компоненты компании, в том числе механизмы телеметрии.
Сбор диагностических данных можно отключить в настройках, однако это не всегда влияет на телеметрию сторонних расширений.
Открытость кода позволила создать альтернативные сборки, например VSCodium, в которых нет проприетарной телеметрии Microsoft. Однако в условиях Microsoft такие проекты не могут использовать официальный маркетплейс Visual Studio Marketplace. Поэтому существует Open VSX, независимый реестр расширений, который используют VSCodium, Eclipse Theia и другие редакторы. В Open VSX доступно меньше расширений, чем в официальном маркетплейсе.
Экономическая модель
Возникает вопрос: зачем Microsoft раздаёт бесплатно редактор, которым пользуются миллионы разработчиков? VS Code не обязан приносить прямую прибыль. Его задача состоит в привлечении программистов в экосистему Microsoft, которая включает GitHub, Azure и платные функции GitHub Copilot. Чем комфортнее разработчикам работать в VS Code, тем проще компании предлагать им другие инструменты.
Влияние редактора давно вышло за пределы Microsoft. Конкуренты, включая Cursor и Zed, построены на кодовой базе VS Code и используют его знакомый интерфейс и совместимость с существующими инструментами.
Возвращение в браузер
Со временем VS Code вернулся к исходной идее Monaco. Сегодня VS Code for the Web позволяет редактировать код прямо в браузере, а GitHub Codespaces предоставляет полноценную среду разработки в облаке. Проект Monaco, который в 2014 году находился под угрозой закрытия, сначала превратился в настольное приложение. Спустя годы он вернулся в браузер, но уже с широкой экосистемой расширений, облачными серверами и инструментами искусственного интеллекта.
Visual Studio Code имеет недостатки, однако его влияние на современную разработку трудно переоценить.
Истоки: Эрих Гамма и Monaco
В 2011 году Microsoft нанимает швейцарского учёного Эриха Гамму, автора книги «Design Patterns» и создателя JUnit и участника работы над Eclipse. Его команда создаёт браузерный редактор Monaco, который страдает от малой аудитории.
- В 2011 году Microsoft нанял швейцарского компьютерщика Эриха Гамму
- В 1994 году Гамма и трое соавторов выпустили книгу «Design Patterns»
- Вместе с Кентом Беком Гамма создал JUnit для автоматического тестирования Java-программ
- Eclipse был одним из главных конкурентов Microsoft Visual Studio; название связано с идеей затмить Visual Studio
- Monaco изначально создавался для редактирования кода сайтов прямо в браузере
- Ежемесячная аудитория Monaco составляла около 3000 человек, для продолжения проекта требовался рост минимум в 10 раз
- В 2013 году весь код Monaco был написан на TypeScript
Переход к десктопу и запуск VS Code
В 2014 году команда решила превратить Monaco в настольное приложение. Проект получил кодовое имя Ticino и был построен на Electron, объединяющем Chromium и Node.js.
- Проект Ticino задумывался как инструмент для Windows, macOS и Linux
- Команда не копировала Visual Studio, а искала золотую середину между простым текстовым редактором и тяжёлой IDE
- Electron объединяет движок Chromium и среду выполнения Node.js
- Интерфейс создавался собственными компонентами без сторонних фреймворков
- 29 апреля 2015 года Visual Studio Code был представлен на конференции Microsoft Build
- Название «VS Code» придумали за 5 дней до первого запуска
- В ноябре 2015 года исходный код открыт по лицензии MIT, введены система расширений и маркетплейс
- 16 апреля 2016 года вышла версия 1.0
Архитектура и причины популярности
Архитектура VS Code включает Monaco для редактирования текста и Workbench для остального интерфейса. Расширения работают в отдельном процессе Extension Host, а поддержка языков реализована через Language Server Protocol (LSP), появившийся в 2016 году.
- Monaco отвечает за редактирование текста, подсветку синтаксиса и отображение кода
- Проводник, поиск, терминал, Git и панели входят в Workbench
- Расширения работают в отдельном процессе Extension Host, поэтому сбой плагина не обязательно замораживает редактор
- Сохранение файлов выполняется в основном процессе
- В 2016 году Microsoft представила Language Server Protocol (LSP)
- LSP позволяет вынести автодополнение, поиск определений и диагностику ошибок в отдельные языковые серверы
- Встроенными возможностями стали IntelliSense, интеграция с Git, терминал, поиск по проекту и палитра команд
Конкуренты и рост аудитории
Сравнение с Atom и Sublime Text показывает, что VS Code нашёл баланс между функциональностью и простотой. К январю 2021 года месячная аудитория достигла 14 миллионов человек, а опрос 2026 года показал, что около 71% опрошенных разработчиков используют VS Code.
- Atom, выпущенный GitHub в 2014 году, критиковали за высокое потребление ресурсов и проблемы с большими файлами
- Sublime Text славился скоростью, но многие функции в нём приходилось настраивать отдельно
- В январе 2021 года месячная аудитория VS Code достигла 14 миллионов человек
- По опросу 2026 года около 71% опрошенных разработчиков используют VS Code
Расширения и инструменты
Расширения превращают VS Code в платформу. Видео показывает примеры: питомцы, темы иконок, цветовые метки проектов, Vim, форматирование, проверку орфографии, живой сервер, запуск кода, YAML, Git-инструменты и GitHub Copilot.
- VS Code Pets позволяет держать в редакторе виртуального кота, собаку или другое животное
- Material Icon Theme заменяет иконки файлов и папок, учитывая и имя папки
- Peacock назначает каждому рабочему пространству свой цвет
- Расширение Vim добавляет привязки клавиш Vim
- Prettier автоматически форматирует код по заданным правилам при сохранении
- Code Spell Checker проверяет орфографию в комментариях, именах переменных и функций, понимая CamelCase
- Error Lens выводит сообщения об ошибках прямо рядом с кодом
- Live Server запускает локальный сервер и обновляет страницу при сохранении
- Code Runner запускает код одной кнопкой, если установлены нужные интерпретаторы или компиляторы
- Расширение YAML от Red Hat добавляет автодополнение и проверку конфигурационных файлов
- GitLens показывает, кто и когда менял строку (Git Blame)
- Git Graph визуализирует историю репозитория в виде графика с коммитами и ветками
- GitHub Copilot объясняет функции, помогает с отладкой, генерирует тесты и вносит изменения в несколько файлов
Безопасность, телеметрия и открытые сборки
Расширения имеют доступ к файлам и системе, поэтому их безопасность важна. В январе 2024 года два вредоносных расширения, выдававших себя за ИИ-ассистентов, установили около 1,5 миллиона раз. Официальная сборка VS Code содержит телеметрию и проприетарные компоненты, в отличие от Code OSS и VS Codium.
- В январе 2024 года исследователи Snyk Security обнаружили два вредоносных расширения, выдававшихся за ИИ-ассистентов
- Эти расширения установили около 1,5 миллиона раз и собирали содержимое открытых файлов
- Code OSS распространяется под лицензией MIT, официальная сборка Microsoft — на других условиях с телеметрией
- Альтернативные сборки, например VS Codium, не используют официальный Visual Studio Marketplace, поэтому существует Open VSX
Зачем Microsoft раздаёт редактор и возвращение в браузер
Microsoft получает выгоду от VS Code не напрямую, а через привлечение разработчиков в свою экосистему (GitHub, Azure, GitHub Copilot). Конкуренты Cursor и Zed построены на кодовой базе VS Code, а проект вернулся в браузер через VS Code for the Web.
- VS Code помогает привлекать программистов в экосистему Microsoft: GitHub, Azure и платные функции GitHub Copilot
- Cursor и Zed построены на кодовой базе VS Code
- VS Code for the Web позволяет редактировать код в браузере
- GitHub Codespaces предоставляет полноценную среду разработки в облаке
