Сегодня JavaScript используется в разных областях. Чаще всего, для взаимодействия с HTML, но JS также используется для разработки мобильных (Cordova) и серверных (NodeJS) приложений. К счастью, средства разработки JS не стоят на месте и развиваются для решения новых задач. По крайней мере, некоторые из них.
Я провел сравнение актуальных на сегодняшний день редакторов и хотел бы поделиться своими находками с сообществом.

Результат голосования на сайте 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)


  1. leoismyname
    24.12.2015 11:51
    +5

    Странный итог в статье про поиск идеального редактора.


    1. GrizliK1988
      24.12.2015 13:36

      По другому никак, ведь идеального редактора нет.


  1. SerafimArts
    24.12.2015 11:56
    +20

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


    1. jakobz
      24.12.2015 13:18
      -2

      В VS Code вроде нормальный автокомплит для JS. Там движок от TypeScript используется для этого.


      1. SerafimArts
        24.12.2015 13:35
        +1

        Я даже специально подчеркнул, что «судя по обзору».

        Но если уж продолжать по теме поддержки JS, в VS Code есть поддержка ES2015 или ES2016 стандарта JS с Flow синтаксисом? Ну т.е. дополнение по импортам\экспортам, классовым полям и методам, декораторам? Если есть, то это будет реально отличной альтернативой шторму, можно даже попробовать поставить как легковесную альтернативу для быстрых правок.

        P.S. Да что я спрашиваю и нагружаю вас, сейчас проверю и отпишусь.


        1. SerafimArts
          24.12.2015 13:48

          Всё отлично работает, только не поддерживает классовые поля (пишет что доступно только в TypeScript) и декораторы (предлагает запустить с флагом --experimentalDecorators), Flow поддерживает, но местами косячит (например при указании Array типа), async\await не поддерживает вообще, вызовы родительских (super) методов тоже как-то странно воспринимает. Автокомплит работает на уровне «первый попавшийся метод\переменная», т.е. для крупных проектов использовать проблематично, но вполне подходит для вышеупомянутых «быстрых правок». Подсветка кода вполне вменяемая — интеллектуально подсвечивает проблемы в несуществующих (не экспортированных) функциях.

          Спасибо за наводку.


          1. Smerig
            25.12.2015 10:45

            Для автокомплита можно попробовать в js файлах добавить ссылки на файлы, которые неявно используются в текущем открытом документе:

            /// <reference path="../jQuery/jquery-1.8.1.js" />
            
            $(function () { });
            


            Я не утверждаю, что оно заработает. Но, может, поможет. В большой VS это работает.


  1. Crandel
    24.12.2015 12:01
    +4

    А где же vim?


    1. poxu
      24.12.2015 13:46

      Да, я тоже как-то не понял принципы отбора софта для обзора. В рейтинге Vim делит третье место с Webstorm, а в обзоре его чего-то вообще нет. Brackets в рейтинге нет, а в обзоре он есть…


  1. Anisotropic
    24.12.2015 12:04
    +2

    >Visual Studio Code, нет системы плагинов
    А это что тогда? marketplace.visualstudio.com/#VSCode

    И да, Netbeans я бы тоже включил в этот список.


    1. zapolnoch
      24.12.2015 12:12
      +1

      Спасибо, исправил. Все-таки он развивается очень быстро.


  1. Stepanow
    24.12.2015 12:20

    Есть ещё pspad, textadept, netbeans… идеальных редакторов не бывает. Обычно нужно что-то быстро отредактировать (тут выбираем лёгкий редактор с быстрым запуском) или что-то вдумчиво разрабатывать (тут IDE с поиском по проекту, подсветкой ошибок и всеми видами автодополнений и Zen-кодинга). А кто-то пытается прокачать простой редактор плагинами почти до уровня IDE и его это устраивает.


  1. asci
    24.12.2015 12:39
    +2

    а почему для Brackets и VSC в минусы ненативность не записали? они ведь тоже на движке браузера работают


    1. zapolnoch
      24.12.2015 13:20
      -3

      Команда Atom разрабатывает Electron, вот пусть и получают минус за ненативность.


    1. ComodoHacker
      24.12.2015 13:51

      А Brackets на чем?


      1. asci
        24.12.2015 13:55

        Не могу найти какой именно у них рендер движок, но для кода они юзают github.com/codemirror/CodeMirror который in-browser


        1. Antelle
          24.12.2015 14:01

          Свой написали, вот шелл, внутри cef3


          1. asci
            24.12.2015 14:11

            А, ну походу там хромиум внутри. То есть этот шелл — конкуренция электрону, но принцип рендера тот же


    1. Smerig
      25.12.2015 10:47

      ну не знаю… code.visualstudio.com/download


  1. joann
    24.12.2015 12:45
    +1

    Light Table забыли


    1. pROCKrammer
      24.12.2015 13:39

      Только о нем тоже хотел сказать, я пытался им пользоваться 2-3 раза, но мне кажется что он все-таки под Lisp подобные языки заточен.


      1. joann
        25.12.2015 11:47

        Сам он у меня не прижился, но эта видно из за того что мне хватает Subl3, а вот коллеги тока на нем и пишут, для JS он как раз хорош

        https://youtu.be/52SVAMM3V78


  1. DexterHD
    24.12.2015 13:02

    Минусы — Платный…
    Пробная версия постоянно капает на мозги

    Т.е. логика примерно такова: "- Я пишу софт и хочу чтобы мне за него платили, но сам платить за софт в жизи не буду..."
    Нужен инструмент, КУПИ инструмент. Не молоток не перфоратор ни компьютер тебе бесплатно ни кто не даст. Софт это такой же продукт, такая же вещь как и все остальное. Когда уже наше общество выйдет из середины 90-тых…


    1. o_nix
      24.12.2015 13:08
      +2

      Но ведь действительно капает на мозги. Поэтому я и не оценил. Купил WebStorm.


      1. DexterHD
        24.12.2015 13:11
        -1

        Речь не об этом. Речь о том что платно — это типа минус. (Ну да наверное минус если ты школьник пишущий Браузерные РПГ на JS). Если ты профессионал, тебе не будет жалко денег на нормальные рабочие инструменты.


        1. zapolnoch
          24.12.2015 13:17
          +4

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


          1. DexterHD
            24.12.2015 13:25
            +1

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


        1. SerafimArts
          24.12.2015 13:18

          удалено


          1. DexterHD
            24.12.2015 13:21
            +3

            Странно, я вроде на личности ни где не переходил и ни кого ни где конкретно не упоминал. Не обижайтесь, это всего лишь мое убеждение. :) Просто школьник реально вряд ли сможет себе покупать софт по 100$. Да ему это и не надо. Но Хабр то бложик вроде не школьный?


            1. SerafimArts
              24.12.2015 13:24
              +2

              По-этому и удалил, т.к. это с моей стороны было слишком необдуманным и резковатым комментарием.

              P.S. Не обижаюсь, заслужил, просто начал как раз проводить стримы по разработке на стеке ES7, Ratchet, Latavel, Sass и как раз по браузерной РПГ, и тут так совпало, погорячился.


    1. poxu
      24.12.2015 13:42
      +1

      Основной минус платного софта не в том, что за него приходится платить деньги. Основной минус платного софта в том, что он, как правило, проприетарный. Исходники, как правило, закрыты.

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


      1. gro
        24.12.2015 13:52
        +1

        Сколько хороших опенсорсных проектов загнулись, когда автору надоели. И никакая открытость им не помогла.


        1. poxu
          24.12.2015 16:51

          А сколько прошли невредимыми сквозь десятилетия?


        1. Delphinum
          24.12.2015 17:40

          Видимо не очень то они были и нужны обществу, если загнулись )


      1. DexterHD
        24.12.2015 13:55
        +1

        И никакой уверенности в том, что этот софт всё ещё будет работать 10 лет спустя, нет.

        C непроприетарным софтом с отрктыми исходниками как правило в 80% случаев (Не берем продукты кооторые по пальцам пересчитываются) нет уверенности что софт будет работать даже через пол года. О 10 годах так вообще ни кто не говорит.
        Исходники, как правило, закрыты.

        Зачем вам исходники IDE для разработки? Ну вот реально зачем? Мне исходники 90% софта который я использую просто не нужны для решения повседневных задач. И даже если там будет какой то серьезный баг, я вряд ли его поправлю, скорее напишу багрепорт, а 80% даже баг репорта не напишут.

        Возьмем пример: есть вот Linux, его поддерживает огромное сообщество, но 90% пользователей ни какого отношения к его разработке не имеют. И если эти 10% тех кто разрабытвает плюнут, то эти 90% будут сидеть с этими исходниками у разбитого корыта и ни чего с ними сделать не смогут. Более того все эти ребята делают только то что им заблагорассудится. А все остальное они делают только потому что им за это платят.


        1. poxu
          24.12.2015 16:50

          Софт с открытыми исходниками будет жить не меньше софта с закрытыми. Просто потому, что и там и там скомпилированный бинарник будет работать, работать и работать. А вот при моральном устаревании операционной системы СПО можно собрать под новую ОС, а с проприетарным программным обеспечением тут дела обстоят хуже. Настолько хуже, что нередко приходится держать устаревший компьютер специально для запуска старого софта.

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

          Исходники программ, конечно в основном не очень нужны. Но вот уверенность, что IDE можно будет использовать под очередной версией Windows — вот она очень нужна. Как-то так.

          Что касается Линукса, то эти 10 процентов по абсолютному количеству значительно больше сообщетсва, которое поддерживает Windows и, что более важно, этих людей не контролирует одна сущность.


          1. DexterHD
            24.12.2015 18:16

            Ну и чем больше времени проходит, тем лучше видны преимущества открытого кода.

            Открытый код и бесплатный код это разные вещи. У платформы IDEA код в принципе открыт.

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

            Может быть, но я такое встречал только на Windows платформах. А я не использую Windows ни на работе ни дома.


            1. poxu
              24.12.2015 18:33

              Ну я же и говорю, что основной минус платного софта в том, что он, как правило, проприетарный. Не всегда, но очень часто. Пример с IDEA хороший. Платформа IDEA распространяется по лицензии Apache, то есть безвоздмездно и с разрешением делать с ней что угодно. А вот что касается продуктов, созданных на её основе — тут ситуация иная. За них во-первых нужно платить абонентскую плату, а во-вторых код у них закрыт на замок :), поэтому поправить баги самостоятельно нет никакой возможности, приходится ждать правок от разработчика, а потом платить за эти багфиксы очередную порцию абонентки.

              Что касается специфичности проблемы для операционных систем семейства Windows, так большинство проприетарного ( а также платного ) софта написано под неё — тут проблема просто представлена наиболее ярко.


    1. d7s2di
      25.12.2015 12:38
      +1

      >Нужен инструмент, КУПИ инструмент.

      Зачем, когда можно использовать бесплатный?


  1. poxu
    24.12.2015 13:43

    комментарий удален, так как я нашёл такой же выше


  1. FreeMind2000
    24.12.2015 13:51

    Есть еще CodeLobster


    1. OlegFX
      24.12.2015 16:05

      Да, неплохой редактор. Правда, работает только на Windows, но разработчики обещали в следующем году выпустить кросс-платформенную версию.


  1. deivan
    24.12.2015 13:53

    NetBeans в последнее время печалит. Вроде бы вот только вышла версия 8.1 с прямой поддержкой Node.js, но увы — синтаксис Ecma2015 так и не поддерживается…
    Придется с ним расстаться и таки купить ВебШторм.


  1. faiwer
    24.12.2015 14:03
    +2

    Пишу в SublimeText, но:

    1. Нет устраивающей меня подсветски синтаксиса. По сути для ES6+ есть 2 плагина: babel-sublime и JavaScriptNext. Второй совсем некудышный, не умеет даже по Ctrl+R shorthand-методы перечислить, а первый далёк от совершенства, у него есть ряд вещей ломающих подсветку (например1, например2)
    2. Autocomplete только по «всем словам» файла
    3. Исходя из п.2 поддержка jsDoc только в виде макросов для написания
    4. Похоже, что проект умирает… С марта никаких изменений. Хотя есть целый ряд детских болячек. Взять ту же кириллицу: нет поиска без учёта регистра, все хоть сколько-нибудь часто используемые горячие клавиши приходится дублировать на двух языках. Внедрили индексы — на моих проектах ST3 ест ЦП часами без результата. Отключил.


    1. frog
      24.12.2015 16:59

      > Взять ту же кириллицу: нет поиска без учёта регистра
      В ST3 есть (сейчас полез и на всякий случай проверил). Причём, вроде и в ST 2 был, хотя проверить не могу.
      Что касается «умирания», то такое «умирание» мне лично нравится больше, чем активное развитие некоторых IDE. Нежелание автора тащить внутрь то, что может быть сделано плагинами — вполне понятно. Недостатки плагинов — да, их масса. Но это уже кто чем пользуется.
      Есть один специфический недостаток Sublime — если запустить рендеринг в Keyshot, Sublime практически останавливается. Т.е. реагирует на кнопки с задержкой в секунды. Другие приложения ведут себя совершенно нормально.


      1. faiwer
        24.12.2015 17:35

        В ST3 есть (сейчас полез и на всякий случай проверил)
        У меня не работает (ST3, linux, посл. версия)

        Нежелание автора тащить внутрь то, что может быть сделано плагинами — вполне понятно.
        Я больше про существующий функционал, нуждающийся в доработке. Вообще не радует умирает. Всё больше смотрю в сторону WebStorm-а. Да и плагины часто оставляют желать лучшего. А стандартные не обновляются. Взять тот же JavaScript…


        1. frog
          24.12.2015 17:40

          Видимо, с поиском это проблема конкретно линуксовой версии… (у меня Win7).
          Я-то как раз купил Sublime после того, как попользовался WebStorm'ом ;)


    1. geakstr
      24.12.2015 18:05

      Недавно осознал для себя примерно такие же минусы (пользуюсь сублимом очень давно). Попробовал Atom — нравится уже две недели, полет нормальный.


  1. AlexZaharow
    24.12.2015 14:25
    +1

    Chrome Dev Tools. Активно пользуюсь им год. При разработке web-приложений самое прикольное — редактирование кода во время отладки (когда что-то пошло не так) — офигенно — после исправления текста просто «отматывает» отладчик на начало функции и повторно можно прогнать «сбойный» участок. Замечаю мелкие косяки, но пока готов с ними мириться.


  1. dom1n1k
    24.12.2015 14:56
    +2

    Использую Sublime, но не могу сказать, что полностью устраивает.
    Много есть неудобных мелочей, но главное другое — экосистема плагинов хоть и богата, но кривовата и неконсистентна. Если навесить их много, редактор превращается в псевдо-иде-квазимоду. Все оформлено и работает по-своему, нет единообразия. А что-то сходу и не работают и настройка неочевидна. Линукс-вей короче.


  1. d7s2di
    24.12.2015 18:45
    -2

    Есть только два редактора: Vim и Emacs. Ни того, ни другого в обзоре нет.


  1. Khaperets
    24.12.2015 19:05
    +2

    Использую уже много лет NetBeans для PHP, JavaScript, HTML, CSS — все устраивает на 5+. Тут скорее дело привычки.


  1. mittus
    25.12.2015 00:34

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

    Практически не сомневаюсь в том, что команда Sublime не приостанавливает развитие своего детища. Длительные паузы в выпусках обновлений уже случались не единожды, и к счастью работа во всех случаях продолжалась. Sublime Text 2 находился в стадии beta около двух лет, практически до выхода первой beta-версии Sublime Text 3.

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


  1. ramntry
    25.12.2015 00:53

    Для меня выбор между Sublime Text и Atom определило качество поддержки Vim-Mode — в Atom'е она полнее. Так как я совершенно Vim-addictive, выбора у меня и не осталось =) А все остальные редакторы уступают этим двоим слишком сильно в пределах того стека, с которым приходится работать (JavaScript/Python). В частности, PyCharm слишком медленно работает. Ничего с этим не поделать.


    1. poxu
      25.12.2015 12:25

      А почему vim не использовать?