Выбираем редактор кода: VS Code или Atom?

0
1877
views

Перевод статьи «VS Code vs Atom — how to decide?».

Выбираем редактор кода: VS Code или Atom

Я думаю, каждый согласится, что есть одна вещь, которая программисту абсолютно необходима (и это не компьютер – это было бы уж слишком очевидно). Я говорю о программном обеспечении – редакторе кода. Он может быть консольным или с графическим интерфейсом, это может быть целая IDE или что-то попроще, но он всегда необходим!

Что касается меня, я в основном занимаюсь веб-разработкой, так что мне не нужно ничего особенного. В экосистеме JS все инструменты достаточно интуитивны и легки в использовании, поэтому у меня нет необходимости в какой-то особенной IDE. Но когда речь заходит о комфорте работы, это совсем другая история. То, что мне не нужна IDE, не помешало мне перепробовать больше десятка редакторов кода – простых, IDE, VIM-образных и т. д. – просто чтобы найти самый удобный для меня. И на это у меня ушло порядочно времени…

Короче говоря, я остановился на VS Code, но у меня также установлены три других редактора кода, понравившихся мне больше всего, – WebStorm, Sublime Text и Atom. Поскольку первые два из них платные, а функционал у них примерно такой же, как у VS Code и Atom, большинство людей будут выбирать между последними.

Небольшое предисловие

Раз вы читаете этот пост, могу поспорить, что вы уже что-то знаете об Atom и VS Code. Но если кто-то слышит о них впервые, вот небольшая справка.

Оба этих редактора кода являются программным обеспечением с открытым исходным кодом. VS Code это детище Microsoft, а Atom – разработка GitHub. В основе обоих этих редакторов лежит Electron – фреймворк для создания «нативных» десктопных приложений с помощью веб-технологий (HTML, CSS, JS) и Node.js. Под «нативными» я подразумеваю заранее подготовленную связь с Chromium – чем больше Chromium-ов, тем лучше, верно? Предполагается, что эти редакторы кода подходят для использования с различными языками программирования, но в том, что лучше всего они подходят для веб-разработки, вообще сомневаться не приходится (особенно с учетом того, как они сами были созданы).

Оба редактора имеют современно выглядящий пользовательский интерфейс, продвинутую подсветку синтаксиса и хорошо разработанные системы расширений и тем. Сейчас мы сравним эти два редактора, но сначала…

Atom
atom.io

Немного истории

С исторической точки зрения, первым появился Atom. Его релиз состоялся в 2014 году. Atom был первым ПО, построенным при помощи Electron (который в то время назывался Atom Shell). Собственно, для него сам Electron изначально и создавался. Вскоре после выхода в свет этот редактор начал приобретать все большую популярность. Atom стал полностью опенсорсным, включая Electron (поначалу открытый исходный код имели только некоторые части Atom).

То, что исходный код Electron стал открытым, привело к созданию множества различных приложений, которые в наше время ежедневно используются многими людьми. И одно из таких приложений (да, вы угадали!) – VS Code. Редактор кода, который изменил опыт разработки в целом.

Несмотря на то, что в основе своей эти два редактора очень схожи, VS Code заслуженно занимает первое место, особенно, если в расчет берется производительность. С течением времени все больше и больше пользователей выбирали не Atom, а VS Code. Вследствие этой популярности VS Code может похвастаться отличным сообществом и солидной пользовательской базой.

Согласно опроса Stack Overflow за 2018 год, VS Code является самым популярным инструментом разработки во всех категориях. Вместе с тем, Atom тоже довольно широко используется.

Но после того как Microsoft приобрел GitHub положение редактора Atom ухудшилось. Несмотря на то, что это опенсорсное ПО, разрабатываемое сообществом, вклад создателей GitHub составлял существенную часть всей его кодовой базы. И хотя в последнее время Microsoft становится более открытой компанией, поддерживающей свободное ПО, кажется не слишком целесообразным поддерживать два похожих инструмента, если один из них лучше другого, не так ли? Поживем – увидим. По состоянию на данный момент Atom по-прежнему живет и здравствует, так что сравнение его с VS Code имеет смысл.

Дизайн

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

Итак, оба редактора – Atom и VS Code – выглядят хорошо изначально, сразу после установки. Такой эффект легко достигается использованием под их капотом HTML и CSS. Они оба имеют приятный минималистичный дизайн (темный или светлый), а также широкий выбор тем. Опять же, благодаря CSS, вы можете легко создавать свои собственные темы для обоих редакторов или использовать те, которые предусмотрены в реестре расширений – их множество!

По моему мнению, хорошо спроектированный пользовательский интерфейс не должен вас отвлекать или заставлять лишний раз задумываться. Вот почему, пользуясь Atom или VS Code, я всегда использую похожие темы на основе Material Design от Google. Такую тему несложно найти: лучшие варианты для обоих редакторов наиболее популярны и имеют наибольшее количество скачиваний.

Но вместе с тем, мне всегда казалось, что Atom Material UI выглядит приятнее (для меня), чем Material Theme для VS Code. В сочетании с общим макетом интерфейса Atom-а эта тема имеет более чистый вид даже в сравнении с VS Code, который тоже очень привлекателен. Также, хотя это больше касается тем, чем самих редакторов, в Atom Material UI разработчики куда лучше поработали с контрастностью, особенно в светлой версии, которую я очень часто использую.

Впрочем, напоминаю, что все это дело вкуса и вы можете вообще со мной не согласиться. Но в любом случае, в этой категории очки уходят к Atom.

Visual Studio Code
VS Code

Производительность

Разные люди по-разному отзываются о производительности приложений на базе Electron. Говорят, что они медленные, потребляют много памяти и т. д. И хотя я не могу отрицать что в этих суждениях есть доля правды, не все приложения непременно имеют одинаковые проблемы с производительностью. Конечно, если вас интересует производительность в чистом виде, я бы порекомендовал вам платный Sublime Text: в настоящее время это один из самых быстрых редакторов кода на рынке (но поскольку здесь мы обсуждаем Atom и VS Code, можете считать это лирическим отступлением). В целом, оба наших редактора проигрывают в производительности Sublime Text и WebStorm (IDE). Но каковы они в сравнении друг с другом?

Даже с учетом того, что Atom появился первым, каждый, кто хотя бы немного использовал оба этих редактора, должен согласиться: VS Code попросту быстрее. Все, что касается VS Code, работает быстро, гладко и с высокой производительностью. Как же Electron может быть быстрее, чем… Electron?

Все дело в оптимизациях и расширениях. Для обоих редакторов есть огромное количество сторонних расширений, тем и инструментов, благодаря которым вы можете все настроить в соответствии с вашими нуждами. И хотя эти расширения очень массово используются, они определенно влияют на производительность редактора в целом. Лучшим примером могут служить маленькие пометки в центре расширений Atom, показывающие количество времени, на которое увеличится время загрузки при установке этих расширений. Люди, стоящие за VS Code, просто лучше справились с задачей, сделав все эти расширения (или скорее архитектуру за ними) менее прожорливыми.

Естественно, разработчики Atom признают наличие этой проблемы и постоянно улучшают свой продукт. В последнее время они работали над просмотрщиком файлов в Atom и достигли впечатляющих результатов! Они сильно улучшили время поиска (это особенно заметно в крупных проектах) при помощи regex-библиотеки на базе Rust. В общем, я лишь могу надеяться, что работа над улучшением производительности будет продолжаться, и в конце концов производительность Atom выйдет на уровень, предлагаемый VS Code.

Экосистема

И VS Code, и Atom имеют собственные системы расширений и тем. Давайте вкратце пробежимся и по ним! Если вам интересна сухая статистика, я думаю, вы будете рады услышать, что оба эти редактора имеют примерно по 11-12 тысяч опубликованных расширений и тем. При этом лишь немного лидирует VS Code.

Реестры расширений доступны через редакторы и на сайтах (вот для Atom, а вот для VS Code). Вы можете легко установить любое расширение, кликнув по кнопке. Вам даже не понадобится перезапускать редактор (это касается как Atom, так, с недавних пор, и VS Code). Удалять расширения так же просто.

Как видите, с точки зрения пользователя система расширений максимально проста. Но как насчет разработчиков расширений? Документация обоих редакторов кода (вот для Atom, а вот для VS Code) предоставляет подробные и глубокие руководства. Но если их сравнить, я думаю, документация Atom более дружественна к начинающим, чем документация VS Code. Может, это потому, что у VS Code более сложная архитектура в том, что касается расширений. В общем, если вы хотите создать свое первое расширение, пожалуй, лучше начать с Atom. Так вы сможете разобраться, что к чему, прежде чем перейти к VS Code.

Atom
Atom

Настройка

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

Конфигурация VS Code включала лишь простой JSON-файл… до недавних пор. Теперь, где только возможно, есть GUI-интерфейс. Он очень прост, но справляется со своими задачами, притом хорошо. Это лишь небольшая абстракция поверх того, что у нас уже было с JSON и автозаполнением на базе TS.

Что касается Atom, дела обстоят несколько иначе. Вместо того чтобы редактировать единичный JSON-файл, у вас повсюду графический пользовательский интерфейс! Настройки самого редактора полностью отделены от расширений, каждое из который имеет собственную страницу. Я считаю, что это довольно хороший подход. К сожалению, многие пользователи сообщают о лагах и прочих проблемах с производительностью в ходе процесса конфигурации. Может, у них просто установлено слишком много расширений? Лично я с такими проблемами не сталкивался, возможно, потому что у меня расширений довольно мало, хотя кто знает?

Пользовательский опыт

А теперь давайте еще раз проанализируем уже сказанное (с небольшими дополнениями), чтобы понять, каковы в целом ощущения от использования каждого из этих редакторов.

Хотя Atom великолепно выглядит благодаря своему минималистичному UI (по крайней мере, мне так кажется), производительность VS Code одним хорошим дизайном не побьешь. А ведь VS Code тоже приятен на вид! Оба редактора имеют огромные коллекции расширений и очень простые способы настройки.

Но я до сих пор не говорил о «комфорте разработки» в целом. Под этим понятием я имею в виду то, насколько приятно писать код при помощи данного редактора. Поскольку я не могу судить о языках помимо JavaScript, вот мое мнение как веб-разработчика: VS Code круче!

VSCode
VS Code

Думаю, это ни для кого не сюрприз. Поскольку и этот потрясающий редактор кода, и TypeScript, расширяющий возможности JavaScript, созданы одной компанией (Microsoft), эти продукты просто обречены хорошо работать вместе! И они действительно отлично сработались, поскольку TS обеспечивает автозаполнение и все так называемые функции «intellisense», о которых без TS вы можете только мечтать. У Atom есть собственные расширения для этих задач, но им еще предстоит пройти долгий путь, прежде чем они смогут достичь тех же результатов, которые в настоящее время предлагает VS Code.

Но и у Atom есть пара тузов в рукаве. Самый важный, как по мне, это интеграция с GitHub. Этот функционал довольно предсказуем, с учетом того, что именно эта компания разрабатывала Atom. До сих пор VS Code имел достаточное количество расширений, связанных с GitHub, но ни одно из них не могло повторить то, что предлагает Atom. Тем не менее, в связи с тем, что Microsoft приобрел GitHub, все может начать меняться.

Процесс принятия решения

Это было мое субъективное и объективное мнение об Atom и VS Code. Для разработчика, особенно начинающего, выбор может быть довольно затратным по времени процессом, так что я советую вам просто попробовать оба редактора, чтобы в итоге остановиться на каком-то одном из них. И даже после этого помните, что ваш выбор не обязательно должен оставаться неизменным.

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here