Статьи

Как я выбрал свой редактор программ

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

Мой первоначальный список кандидатов содержал более 30 популярных пакетов программного обеспечения для Linux, Java, Windows и XUL, которые имели по крайней мере один стабильный выпуск после 1 января 2010 года: Arachnophilia, Bluefish, Bluegriffon, CoffeeCup HTML Editor, Dreamweaver, Eclipse PDT, Emacs, Expression Web, Geany, gedit, HTML-Kit, jEdit, Kate, KDevelop, Komodo Edit, KWrite, NetBeans, Notepad ++, Notepad2, OpenBEXI, PHPEdit, PHPEd Pro, PHPStorm, Блокнот программиста, PSPad, RadPHP, Scite, SeaMonkey, Vim, WebDevDev, WebMevDev и Zend Studio. Вы можете гуглить каждую программу для их конкретных деталей.

Первый раунд — автозаполнение и подсветка синтаксиса

Мое использование HTML / CSS / PHP / JavaScript для разработки требует редактора, способного делать разумные предложения и визуально разделять компоненты по типу.

Предложения могут быть сделаны через автозаполнение, подсказки параметров и автоматическое закрытие. Автозаполнение — это попытка программы угадать и предложить заполнить теги HTML, свойства CSS, а также имена классов, функций и переменных PHP и JavaScript. Подсказка параметров — это возможность информировать разработчика о возможных свойствах HTML и их значениях, значениях свойств CSS и аргументах функций PHP и JavaScript. Автоматическое закрытие — это возможность добавлять закрывающие теги HTML, скобки, фигурные скобки и тому подобное.

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

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

Я немедленно отбросил три пакета из дальнейшего исследования: Emacs, который требовал дополнительных файлов, которые было трудно установить; OpenBEXI, который выглядит как интересная концепция для разработки веб-страниц, но на самом деле не является скриптовым инструментом; и WebDev, у которого, похоже, нет бесплатной пробной версии. Я бы хотел протестировать очень хорошую Mac IDE, Espresso. Их команда прислала мне много полезной информации, и я бы посоветовал любому пользователю Mac попробовать ее.

Для каждого оставшегося пакета я проверил их возможности подсказок и автозаполнения для тегов HTML4 / 5, свойств CSS, функций и переменных PHP и JavaScript и подсветки синтаксиса. Следующий код, сохраненный как файл PHP, был типичным для тестов:

<html> <head> <style> dir { display: none; } </style> <script type="text/javascript"> var aaa = 12; aaa = Math.abs(12); </script> </head> <body> <div style="display: none"></div> <?php $aaa = strtotime(); if (true) { $aaa = strftime("%a"); } ?> </body> </html> 

В частности, для определения различных функций (автозаполнение функции PHP, автозаполнение переменной PHP, автозаполнение функции JavaScript и т. Д.) У меня было 13 запрошенных функций. Я вычислил баллы для пакетов и функций; это была проверка ДА / НЕТ, и каждый ДА был достоин одного очка, добавляя общий балл редактора.

Наиболее распространенными функциями были подсветка синтаксиса и локализация разделителей, а также автоматическое закрытие тегов HTML. Наименее замеченными были автозаполнение и подсказка аргументов функций JavaScript и автозаполнение переменных JavaScript. Средний балл составил 4,8 абсолютных или 38% относительных, что означает, что в среднем пакете было не совсем 5 из 13 запрошенных функций. 13 из 29 пакетов были выше среднего.

Для дальнейшей оценки я выбрал 25% лучших. То есть следующие 8 оцениваются лучше всего с моими критериями (перечислены в алфавитном порядке): Dreamweaver, Geany, Komodo Edit, Netbeans, Nusphere PHPEd, PHPStorm, Блокнот программиста и WebMatrix. Интересно отметить, что четыре из них являются бесплатными (как в бесплатном скотче), а четыре являются платным программным обеспечением, а четыре — только для Windows, а остальные четыре — кроссплатформенными.

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

Второй раунд — все остальное, кроме кухонной раковины

Второй набор тестов рассматривал следующий список функций: фрагменты кода / шаблоны, свертывание кода, закладки, автоматическое форматирование кода, встроенная поддержка отладки, поддержка макросов, наличие инструментов рефакторинга, поддержка управления проектами, поддержка контроля версий, встроенные в поддержку FTP, встроенную консоль командной строки, поддержку плагинов, поддержку платформ, настройку редактора, приемлемость времени запуска, доступность и полноту документации, а также некоторые другие. Опять же, акцент был сделан на готовые плагины или плагины, которые можно установить, и это был тест ДА / НЕТ с каждым ДА, набирающим по одной точке. Вот как это оказалось:

  • Dreamweaver — набрал 70%. Возможно, самая известная IDE для веб-разработки, это очень мощный инструмент для дизайнера сайтов, хотя я нахожу его интерфейс немного загроможденным. Там было какое-то свертывание кода, но не то, что я ожидал.
  • Geany — набрал 62%. Он модульный и расширяемый. У него очень легкий интерфейс, но отсутствует надлежащая поддержка FTP.
  • Комодо Править — набрал 54%. Этакая версия Komodo IDE с открытым исходным кодом, она была очень чистой и удобной в использовании. Я нашел это похоже на Джани.
  • Netbeans — набрал 75%. Это было очень впечатляюще с множеством функций, но с чистым интерфейсом. На моем устройстве требуется около 13 секунд (двухъядерный процессор 2 ГГц Intel, 2 Гб оперативной памяти и Oneric Oncelot с Unity), что, как я понимаю, вполне разумно для такого сложного приложения.
  • Nusphere PHPEd — набрал 67%. Отличный инструмент, но с очень загроможденным интерфейсом. Кроме того, им, похоже, не очень нравятся плагины. Я прочитал сообщение на форуме, где кто-то спросил, как его создать, и ответ был просто «пришлите нам свои идеи». Это было еще одно НЕТ.
  • PhpStorm — набрал 75%, как NetBeans. На самом деле, скорее всего, как бы выглядел NetBeans, если бы он был посвящен разработке PHP. Похоже, что процессор нагружает немного больше.
  • Блокнот программиста — набрал 46%. Но опять же, это должен быть простой, эффективный и эффективный инструмент. Он живет своим обещанием. Жаль, что только для Windows.
  • WebMatrix — Конечно, как бесплатный инструмент для разработки веб-сайтов, Web Matrix выглядит довольно впечатляюще. Я не оценил это, хотя, как мне казалось, концепция отличалась от моей идеи IDE программиста.

Мой личный выбор

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

В любом случае, примерно через три года я уверен, что появятся новые IDE, и некоторые из них здесь прекратят разработку. Это будет время для другого обзора.

Что я узнал здесь

Эту статью было больно писать. Проверка каждой программы в списке была утомительной, иногда раздражающей, но, тем не менее, освежающей. Потребовалось много исследований, загрузка (включая неправильную 800 МБ!) И время для проверки функций. Я пересмотрел некоторые пакеты, с которыми работал несколько лет назад, и обнаружил другие, о которых я никогда не слышал. И это дало мне интересное сравнение между системой репозитория Linux и концепцией установщика Windows, а также между размерами и сложностью установки, которая отделена бесплатно от платного программного обеспечения. Мой рабочий стол перегружен загруженными файлами, и теперь есть много удалений, когда все кончено. Но у меня была возможность сделать запланированный поиск нужного мне предмета, чего я никогда раньше не делал таким образом. Из этого опыта я беру, что поиск продукта или услуги должен начинаться с проверки простых, но важных качеств в большом наборе, а затем поиска улучшений в тех, которые проходят первый тест. Я также научился оставлять свои предубеждения в стороне. Я никогда не догадывался, что в конечном итоге я добавлю NetBeans в свой окончательный список.

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

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

Я также хотел бы подчеркнуть, что целью статьи было гораздо больше описать метод исследования и принятия решения, чем указать одну лучшую IDE, поскольку «лучшая» в данном случае — это сугубо личная концепция, которая отражает пользователя особые потребности и вкусы. Кроме того, отсутствие какой-либо конкретной IDE в исследовании НЕ следует истолковывать как отрицательное мнение об этом. Это просто означает, что я не знал о его существовании — mea culpa mea maxima culpa! — или что он, кажется, не находится в активной разработке.

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

Счастливого и продуктивного 2012 года всем.

Изображение через Zurijeta / Shutterstock