Я провел сравнение актуальных на сегодняшний день редакторов и хотел бы поделиться своими находками с сообществом.
Результат голосования на сайте ponyfoo.com
Очевидно, что у каждого программиста есть свои любимые редакторы, поэтому я разместил обзоры в случайном порядке без какого-либо «рейтинга». Моя единственная цель — представить всех претендентов, описать как я их вижу и позволить каждому сделать собственные выводы исходя из личных потребностей и предпочтений.
Atom
Atom — свободный редактор с открытым исходным кодом. Разработан на технологии Electron и, по сути, работает внутри браузера (на специальном варианте Chromium).
Из коробки включает в себя нечеткий поиск, быструю и расширенную (на проект) поиск/замену, функцию нескольких курсоров и свертывания кода. Поддерживает возможность импорта темы.
Функционал может быть расширен огромным пакетом плагинов (с открытым исходным кодом).
Плюсы
Бесплатный, опен-сорсный
Встроенный менеджер git. Хорошо интегрируется с github
Огромный репозиторий плагинов
Команда Atom разрабатывает Atom в Atom
Минусы
Медленный. Atom — это не нативное приложение и его слабая производительность особенно заметна на больших проектах.
Brackets
Brackets — еще один бесплатный редактор с открытым исходным кодом от компании Adobe. Brackets имеет уникальную и интересную особенность — он позволяет извлекать непосредственно из PSD информацию о шрифтах, цветах, градиентах, и генерировать из всего этого чистый CSS.
Быстрая документами, быстрое открытие и быстрый предварительный просмотр помогает сосредоточиться на самом проектировании.
Плюсы
PSD-извлечение
Live Preview из коробки
Постоянно растущая библиотека расширений
Простой интерфейс
Минусы
Live Preview только для HTML
Для новичка будет тяжело сориентироваться в UI
Notepad++
Из бесплатных вариантов, Notepad++ является чрезвычайно популярным. Он часто упоминается в блогах как отличный вариант для редактирования кода «здесь и сейчас». Кроме JavaScript, он также поддерживает около 50 языков программирования и разметок. Запускается быстро и имеет достаточную производительность, чтобы не чувствовать тормозов.
Из коробки включает подсветку синтаксиса, поддержку регулярных выражений для поиска/замены, а также функцию автозавершения. Однако, это далеко не самый удобный вариант, если вам часто нужно переключаться между проектами, или ориентироваться в большом проекте.
Плюсы
Чрезвычайно быстрый
Мощная поддержка регулярных выражений
Минусы
Не кросс-платформенный
Небольшой выбор плагинов
Sublime Text
Sublime — это красивый, многофункциональный редактор кода. Большим его преимуществом является возможность подстраиваться под пользовательский опыт.
Мгновенное переключение между проектами; множественные курсоры (в том числе выбор столбцов); множественные окна (удобно для двух мониторов); глубокая настройка через json-файл.
Все это делает Sublime очень популярным редактором. Вокруг него образовалось активное сообщество, которое создает и поддерживает множество плагинов. По сути, Sublime это оболочка для плагинов на все случаи жизни.
Плюсы
Быстрый запуск и работа
Богатая экосистема плагинов
Полностью настраиваемый
Минусы
Не существует встроенного менеджера плагинов
Пробная версия постоянно капает на мозги
Нет активного развития (Sublime 3 находится в бета-версии с 2013 года)
Visual Studio Code
Это новейшая IDE от Майкрософт написанная на JS (через Electron). Имеет встроенную поддержку NodeJS и множество средств для отладки.
Плюсы
Расширенная поддержка NodeJS
Встроенная поддержка git
Минусы
Не очень дружественная система настроек
WebStorm
WebStorm имеет большой репозиторий официальных плагинов, в том числе для NodeJS, TypeScript и др. Официальные плагины хорошо поддерживаются и большинство багов исправляются гораздо быстрее, чем у плагинов разработанных сообществом.
Плюсы
Интеллектуальное автозавершение кода
Удобный рефакторинг кода (безопасное удаление/изменение переменных, перемещение файлов и т.д.)
Интегрированная система повышения качества кода (JSHint, JSLint)
Крупное хранилище ухоженных плагинов
Хорошо поддерживается, т.к. является платным
Минусы
Платный
Медленный первый запуск
Имеются многочисленные жалобы на снижение производительности (нагрузка на все ядра ЦП)
Итоги
Перечисленные JS редакторы можно условно разделить на две группы:
1. Быстрые, гибкие, расширяемые текстовые редакторы, которые хоть и не являются полноценными IDE, но могут быть доукомплектованы с помощью плагинов и взять на себя некоторые функции IDE.
1.2. Текстовые редакторы, которые работают на технологии Electron (по сути, внутри WebView) и поэтому могут вызывать проблемы с производительностью при работе над большим проектом.
2. Невероятно мощные и профессиональные IDE для веб-разработки, со встроенной поддержкой NodeJS, автоматической компиляцией CoffeeScript и TypeScript, средствами отладки JS и т.п.
Сравнивать их вместе в одном обзоре не совсем корректно, т.к. они решают разный класс задач. Но на практике, JS-программисты стараются использовать в своей работе какое-то одно решение.
Если у вас есть предложения, которые должны были быть включены в этот список, пожалуйста, напишите об этом в комментариях.
Комментарии (55)
SerafimArts
24.12.2015 11:56+20По-моему, это обзор совершенно очевидных вещей для любого более-менее знающего человека, но при этом ни слова о сравнении поддержки JS как таковой. Т.к. судя по обзору (хочу подчеркнуть это), что касается непосредственно JS — это то, что нормальный автокомплит есть только в шторме, в остальных же просто подсветка.
jakobz
24.12.2015 13:18-2В VS Code вроде нормальный автокомплит для JS. Там движок от TypeScript используется для этого.
SerafimArts
24.12.2015 13:35+1Я даже специально подчеркнул, что «судя по обзору».
Но если уж продолжать по теме поддержки JS, в VS Code есть поддержка ES2015 или ES2016 стандарта JS с Flow синтаксисом? Ну т.е. дополнение по импортам\экспортам, классовым полям и методам, декораторам? Если есть, то это будет реально отличной альтернативой шторму, можно даже попробовать поставить как легковесную альтернативу для быстрых правок.
P.S. Да что я спрашиваю и нагружаю вас, сейчас проверю и отпишусь.SerafimArts
24.12.2015 13:48Всё отлично работает, только не поддерживает классовые поля (пишет что доступно только в TypeScript) и декораторы (предлагает запустить с флагом --experimentalDecorators), Flow поддерживает, но местами косячит (например при указании Array типа), async\await не поддерживает вообще, вызовы родительских (super) методов тоже как-то странно воспринимает. Автокомплит работает на уровне «первый попавшийся метод\переменная», т.е. для крупных проектов использовать проблематично, но вполне подходит для вышеупомянутых «быстрых правок». Подсветка кода вполне вменяемая — интеллектуально подсвечивает проблемы в несуществующих (не экспортированных) функциях.
Спасибо за наводку.Smerig
25.12.2015 10:45Для автокомплита можно попробовать в js файлах добавить ссылки на файлы, которые неявно используются в текущем открытом документе:
/// <reference path="../jQuery/jquery-1.8.1.js" /> $(function () { });
Я не утверждаю, что оно заработает. Но, может, поможет. В большой VS это работает.
Anisotropic
24.12.2015 12:04+2>Visual Studio Code, нет системы плагинов
А это что тогда? marketplace.visualstudio.com/#VSCode
И да, Netbeans я бы тоже включил в этот список.
Stepanow
24.12.2015 12:20Есть ещё pspad, textadept, netbeans… идеальных редакторов не бывает. Обычно нужно что-то быстро отредактировать (тут выбираем лёгкий редактор с быстрым запуском) или что-то вдумчиво разрабатывать (тут IDE с поиском по проекту, подсветкой ошибок и всеми видами автодополнений и Zen-кодинга). А кто-то пытается прокачать простой редактор плагинами почти до уровня IDE и его это устраивает.
asci
24.12.2015 12:39+2а почему для Brackets и VSC в минусы ненативность не записали? они ведь тоже на движке браузера работают
zapolnoch
24.12.2015 13:20-3Команда Atom разрабатывает Electron, вот пусть и получают минус за ненативность.
ComodoHacker
24.12.2015 13:51А Brackets на чем?
asci
24.12.2015 13:55Не могу найти какой именно у них рендер движок, но для кода они юзают github.com/codemirror/CodeMirror который in-browser
joann
24.12.2015 12:45+1Light Table забыли
pROCKrammer
24.12.2015 13:39Только о нем тоже хотел сказать, я пытался им пользоваться 2-3 раза, но мне кажется что он все-таки под Lisp подобные языки заточен.
joann
25.12.2015 11:47Сам он у меня не прижился, но эта видно из за того что мне хватает Subl3, а вот коллеги тока на нем и пишут, для JS он как раз хорош
https://youtu.be/52SVAMM3V78
DexterHD
24.12.2015 13:02Минусы — Платный…
Пробная версия постоянно капает на мозги
Т.е. логика примерно такова: "- Я пишу софт и хочу чтобы мне за него платили, но сам платить за софт в жизи не буду..."
Нужен инструмент, КУПИ инструмент. Не молоток не перфоратор ни компьютер тебе бесплатно ни кто не даст. Софт это такой же продукт, такая же вещь как и все остальное. Когда уже наше общество выйдет из середины 90-тых…o_nix
24.12.2015 13:08+2Но ведь действительно капает на мозги. Поэтому я и не оценил. Купил WebStorm.
DexterHD
24.12.2015 13:11-1Речь не об этом. Речь о том что платно — это типа минус. (Ну да наверное минус если ты школьник пишущий Браузерные РПГ на JS). Если ты профессионал, тебе не будет жалко денег на нормальные рабочие инструменты.
zapolnoch
24.12.2015 13:17+4Вы правы, но если есть бесплатные альтернативы, которые ни в чем не уступают платному аналогу, а в чем-то даже превосходят его, то платность — это все-таки минус.
DexterHD
24.12.2015 13:25+1Вы тоже. Но тут вы сравниваете IDE и Блокноты, а это разные вещи. IDE надо уметь готовить. Блокноты в большинстве случаем уступают IDE когда проект разрастается до пары десятков приложений и кучи кода
SerafimArts
24.12.2015 13:18удалено
DexterHD
24.12.2015 13:21+3Странно, я вроде на личности ни где не переходил и ни кого ни где конкретно не упоминал. Не обижайтесь, это всего лишь мое убеждение. :) Просто школьник реально вряд ли сможет себе покупать софт по 100$. Да ему это и не надо. Но Хабр то бложик вроде не школьный?
SerafimArts
24.12.2015 13:24+2По-этому и удалил, т.к. это с моей стороны было слишком необдуманным и резковатым комментарием.
P.S. Не обижаюсь, заслужил, просто начал как раз проводить стримы по разработке на стеке ES7, Ratchet, Latavel, Sass и как раз по браузерной РПГ, и тут так совпало, погорячился.
poxu
24.12.2015 13:42+1Основной минус платного софта не в том, что за него приходится платить деньги. Основной минус платного софта в том, что он, как правило, проприетарный. Исходники, как правило, закрыты.
И никакой уверенности в том, что этот софт всё ещё будет работать 10 лет спустя, нет. Также нет никакой уверенности, то производитель не начнёт развивать его в каком-нибудь совсем невменяемом направлении. Или, что он не переведёт модель оплаты на абонентку, с необходимостью иметь регулярный доступ к интернету. А может он просто возьмёт и забросит разработку навсегда, а исходники утопит на дне Тихого океана.DexterHD
24.12.2015 13:55+1И никакой уверенности в том, что этот софт всё ещё будет работать 10 лет спустя, нет.
C непроприетарным софтом с отрктыми исходниками как правило в 80% случаев (Не берем продукты кооторые по пальцам пересчитываются) нет уверенности что софт будет работать даже через пол года. О 10 годах так вообще ни кто не говорит.
Исходники, как правило, закрыты.
Зачем вам исходники IDE для разработки? Ну вот реально зачем? Мне исходники 90% софта который я использую просто не нужны для решения повседневных задач. И даже если там будет какой то серьезный баг, я вряд ли его поправлю, скорее напишу багрепорт, а 80% даже баг репорта не напишут.
Возьмем пример: есть вот Linux, его поддерживает огромное сообщество, но 90% пользователей ни какого отношения к его разработке не имеют. И если эти 10% тех кто разрабытвает плюнут, то эти 90% будут сидеть с этими исходниками у разбитого корыта и ни чего с ними сделать не смогут. Более того все эти ребята делают только то что им заблагорассудится. А все остальное они делают только потому что им за это платят.poxu
24.12.2015 16:50Софт с открытыми исходниками будет жить не меньше софта с закрытыми. Просто потому, что и там и там скомпилированный бинарник будет работать, работать и работать. А вот при моральном устаревании операционной системы СПО можно собрать под новую ОС, а с проприетарным программным обеспечением тут дела обстоят хуже. Настолько хуже, что нередко приходится держать устаревший компьютер специально для запуска старого софта.
Ну и чем больше времени проходит, тем лучше видны преимущества открытого кода. Жизненный цикл свободного программного обеспечения чудовищно длинный. И нередко, когда казалось бы программа давно забыта и перспектив развития не имеет появляется кто-то, кто даёт ей новую жизнь. Вон neovim например, если брать пример из темы статьи.
Исходники программ, конечно в основном не очень нужны. Но вот уверенность, что IDE можно будет использовать под очередной версией Windows — вот она очень нужна. Как-то так.
Что касается Линукса, то эти 10 процентов по абсолютному количеству значительно больше сообщетсва, которое поддерживает Windows и, что более важно, этих людей не контролирует одна сущность.
DexterHD
24.12.2015 18:16Ну и чем больше времени проходит, тем лучше видны преимущества открытого кода.
Открытый код и бесплатный код это разные вещи. У платформы IDEA код в принципе открыт.
Настолько хуже, что нередко приходится держать устаревший компьютер специально для запуска старого софта.
Может быть, но я такое встречал только на Windows платформах. А я не использую Windows ни на работе ни дома.poxu
24.12.2015 18:33Ну я же и говорю, что основной минус платного софта в том, что он, как правило, проприетарный. Не всегда, но очень часто. Пример с IDEA хороший. Платформа IDEA распространяется по лицензии Apache, то есть безвоздмездно и с разрешением делать с ней что угодно. А вот что касается продуктов, созданных на её основе — тут ситуация иная. За них во-первых нужно платить абонентскую плату, а во-вторых код у них закрыт на замок :), поэтому поправить баги самостоятельно нет никакой возможности, приходится ждать правок от разработчика, а потом платить за эти багфиксы очередную порцию абонентки.
Что касается специфичности проблемы для операционных систем семейства Windows, так большинство проприетарного ( а также платного ) софта написано под неё — тут проблема просто представлена наиболее ярко.
d7s2di
25.12.2015 12:38+1>Нужен инструмент, КУПИ инструмент.
Зачем, когда можно использовать бесплатный?
FreeMind2000
24.12.2015 13:51Есть еще CodeLobster
OlegFX
24.12.2015 16:05Да, неплохой редактор. Правда, работает только на Windows, но разработчики обещали в следующем году выпустить кросс-платформенную версию.
deivan
24.12.2015 13:53NetBeans в последнее время печалит. Вроде бы вот только вышла версия 8.1 с прямой поддержкой Node.js, но увы — синтаксис Ecma2015 так и не поддерживается…
Придется с ним расстаться и таки купить ВебШторм.
faiwer
24.12.2015 14:03+2Пишу в SublimeText, но:
- Нет устраивающей меня подсветски синтаксиса. По сути для ES6+ есть 2 плагина: babel-sublime и JavaScriptNext. Второй совсем некудышный, не умеет даже по Ctrl+R shorthand-методы перечислить, а первый далёк от совершенства, у него есть ряд вещей ломающих подсветку (например1, например2)
- Autocomplete только по «всем словам» файла
- Исходя из п.2 поддержка jsDoc только в виде макросов для написания
- Похоже, что проект умирает… С марта никаких изменений. Хотя есть целый ряд детских болячек. Взять ту же кириллицу: нет поиска без учёта регистра, все хоть сколько-нибудь часто используемые горячие клавиши приходится дублировать на двух языках. Внедрили индексы — на моих проектах ST3 ест ЦП часами без результата. Отключил.
frog
24.12.2015 16:59> Взять ту же кириллицу: нет поиска без учёта регистра
В ST3 есть (сейчас полез и на всякий случай проверил). Причём, вроде и в ST 2 был, хотя проверить не могу.
Что касается «умирания», то такое «умирание» мне лично нравится больше, чем активное развитие некоторых IDE. Нежелание автора тащить внутрь то, что может быть сделано плагинами — вполне понятно. Недостатки плагинов — да, их масса. Но это уже кто чем пользуется.
Есть один специфический недостаток Sublime — если запустить рендеринг в Keyshot, Sublime практически останавливается. Т.е. реагирует на кнопки с задержкой в секунды. Другие приложения ведут себя совершенно нормально.faiwer
24.12.2015 17:35В ST3 есть (сейчас полез и на всякий случай проверил)
У меня не работает (ST3, linux, посл. версия)
Нежелание автора тащить внутрь то, что может быть сделано плагинами — вполне понятно.
Я больше про существующий функционал, нуждающийся в доработке. Вообще не радует умирает. Всё больше смотрю в сторону WebStorm-а. Да и плагины часто оставляют желать лучшего. А стандартные не обновляются. Взять тот же JavaScript…frog
24.12.2015 17:40Видимо, с поиском это проблема конкретно линуксовой версии… (у меня Win7).
Я-то как раз купил Sublime после того, как попользовался WebStorm'ом ;)
geakstr
24.12.2015 18:05Недавно осознал для себя примерно такие же минусы (пользуюсь сублимом очень давно). Попробовал Atom — нравится уже две недели, полет нормальный.
AlexZaharow
24.12.2015 14:25+1Chrome Dev Tools. Активно пользуюсь им год. При разработке web-приложений самое прикольное — редактирование кода во время отладки (когда что-то пошло не так) — офигенно — после исправления текста просто «отматывает» отладчик на начало функции и повторно можно прогнать «сбойный» участок. Замечаю мелкие косяки, но пока готов с ними мириться.
dom1n1k
24.12.2015 14:56+2Использую Sublime, но не могу сказать, что полностью устраивает.
Много есть неудобных мелочей, но главное другое — экосистема плагинов хоть и богата, но кривовата и неконсистентна. Если навесить их много, редактор превращается в псевдо-иде-квазимоду. Все оформлено и работает по-своему, нет единообразия. А что-то сходу и не работают и настройка неочевидна. Линукс-вей короче.
Khaperets
24.12.2015 19:05+2Использую уже много лет NetBeans для PHP, JavaScript, HTML, CSS — все устраивает на 5+. Тут скорее дело привычки.
mittus
25.12.2015 00:34Несколько лет использую Sublime Text. В свое время очень долго мучился с выбором редактора, одни представляли собой полноценные IDE и казались слишком тяжелыми, другие слишком сложными и напичканными, третьи недостаточно удобными и функциональными. Так как я нуждался именно в редакторе, а-не IDE, очень понравился TextMate на маке, но мака у меня не было, посему нашел максимально ближайший по похожести к нему редактор, которым оказался Sublime. На текущий момент он удовлетворяет все мои потребности.
Практически не сомневаюсь в том, что команда Sublime не приостанавливает развитие своего детища. Длительные паузы в выпусках обновлений уже случались не единожды, и к счастью работа во всех случаях продолжалась. Sublime Text 2 находился в стадии beta около двух лет, практически до выхода первой beta-версии Sublime Text 3.
Не понял, почему отсутствие встроенного менеджера плагинов становится отрицательной характеристикой для редактора по мнению автора. Разработчики возложили все эти задачи на плагин Package Control, с которым разработка встроенного менеджера плагинов совсем нецелесообразна.
ramntry
25.12.2015 00:53Для меня выбор между Sublime Text и Atom определило качество поддержки Vim-Mode — в Atom'е она полнее. Так как я совершенно Vim-addictive, выбора у меня и не осталось =) А все остальные редакторы уступают этим двоим слишком сильно в пределах того стека, с которым приходится работать (JavaScript/Python). В частности, PyCharm слишком медленно работает. Ничего с этим не поделать.
leoismyname
Странный итог в статье про поиск идеального редактора.
GrizliK1988
По другому никак, ведь идеального редактора нет.