Haskell IDE 3

Самое время продолжить эпопею с IDE для Haskell (первая часть, вторая часть). Дело в том, что в IntelliJ Platform обнаружился новый Haskell-плагин. И, в отличие от старого, он работает.

Читать далее...
Sencha Architect

Случилось мне тут по долгу службы столкнуться с Sencha Architect. Если кто не в курсе — это IDE, разрабатываемая Sencha для облегчения работы с её же фреймворками Sencha Touch и ExtJS. Из заявленных «killer features» в первую очередь выделяются визуальный редактор компонентов и интеллектуальная работа с кодом.

В памяти совсем юных бойцов айтишного фронта уже вероятно нет такой среды разработки, как Borland Delphi, хотя программисты постарше должны её помнить. Так вот, Sencha Architect весьма на неё похожа. Так же можно накликать себе приличный интерфейс и навешать всяких обработчиков событий на всевозможные его элементы. Но на этом сходство заканчивается.

Sencha Architect

Sencha Architect

Delphi, в отличие от Sencha Architect, позволяла сделать два шага в сторону, открыть редактор кода и сделать всё то же самое, только не прикасаясь к мышке. А тут максимум, который тебе доступен, — внутренности функции-обработчика события. Ладно-ладно, можно кликнуть в том же дереве объектов (не в коде!) и добавить произвольную функцию, но её заголовок и текст придётся править отдельно.

Редактор кода

Редактор кода

Конечно же всё это накладывает заметные ограничения на навигацию. Если ты видишь в коде свойство, которое нужно подправить, это совершенно не означает, что вот так сразу возьмёшь его и исправишь. Нет уж, будь добр, найди соответствующий объект в дереве, потом найди свойство в списке свойств этого объекта и уже там пиши своё значение. Возможно это и удобно для разработчика, который видит Sencha Touch первый раз в жизни: всё-таки не нужно долго и упорно ковыряться в документации, выискивая, как пишутся нужные свойства. Но я гораздо быстрее открою IntelliJ IDEA или WebStorm и сделаю всё то же самое, написав пару строк. Да, у меня не будет мгновенного визуального представления, да, мне придётся нажимать F5 каждый раз, чтобы проверить изменения, и да, у меня будет открыта ещё и вкладка с документацией в браузере, но это всё равно будет быстрее, чем работать с подобной системой.

Когда работаешь с IDE, специально заточенной под работу с определённым фреймворком, то ожидаешь, что эта IDE знает фреймворк от и до, но в случае с Sencha Architect это не всегда так. Например, при переименовании идентификатора связанные места не всегда обновляются автоматически, иногда придётся пробежаться ручками. Та же IntelliJ IDEA понимает зависимости между идентификаторами не в пример лучше, что уж говорить про поддержку JavaScript в целом.

За всё это Sencha хочет по 400 долларов с разработчика в год. И в цену не входят лицензии на сами фреймворки.

Итак, выводы: Sencha Architect — неплохая среда для новичков или для быстрого создания набросков. Для более сложных вещей даже Sublime Text может оказаться куда удобнее и продуктивнее.

Haskell IDE 2

Прошло уже довольно много времени с прошлого обзора IDE для Haskell. Поэтому я решил рассказать, на каком варианте я в итоге остановился. Встречаем PhpStorm! Казалось бы, причем тут специализированная среда разработки для PHP к Haskell. Но тому есть несколько причин.

Во-первых, я работаю JavaScript/PHP разработчиком, и так уж получилось, что я привык к этому продукту от JetBrains. Во-вторых, разработка сайта — это во многом работа с JavaScript/HTML, а лучшей поддержки этих языков я нигде не встречал.

С самим Haskell в IDE всё не так хорошо, как с другими языками, но поддержка синтаксиса, хотя не всегда правильная, но есть. Да и поддержка пакетов Sublime Text (и бандлов TextMate) скоро должна привнести новые краски в редактор (пока этот плагин есть только в тестовых сборках). Поэтому осталось добавить cabal build в External Tools, назначить горячую клавишу (у меня Ctrl+Alt+Shift+B) — и можно спокойно работать.

Ну и сделанный специально для вас сделанный скриншот, наслаждайтесь:

PhpStorm

PhpStorm

Haskell IDE

Продолжаю попытки найти оптимальную IDE для программирования на Haskell. На повестке дня следующие кандидаты: IDEA Haskell или ideah, IDEA Custom File Type, Sublime Text 2, Leksah, EclipseFP.

К сожалению, ideah у меня так и не запустился. Постоянно показывал ошибку компиляции какого-то внутреннего модуля, а потому сразу выбывает из состязания. С EclipseFP я довольно много работал, и он практически всем хорош, кроме тормозов и отсутствия Zen Coding.

EclipseFP

EclipseFP

Leksah выглядит необычно, но не буду к этому придираться. Никаких плюшек относительно языков, отличных от Haskell, а ведь в проекте используются еще и стандартные web-технологии: HTML, JavaScript и CSS. Компилирует и ищет ошибки при нажатии соответствующий клавиши. Ctrl+клик мышкой открывает в боковой панели определение функции (не работает для локальных функций, и вдобавок я так и не нашел, как это сделать только с клавиатуры). Автодополнение показывает в списке типы функций. И даже есть дебаггер!

Leksah

Leksah

IDEA Custom File Type подразумевает, что будет определен синтаксис с помощью специальной встроенной в идею фичи, которая позволяет минимально определить синтаксис языка (комментарии, числа, зарезервированные слова). Естественно этот способ имеет свои ограничения. Например, в идентификаторе с одинарной кавычкой на конце эта кавычка будет считаться началом строки, а не концом идентификатора, и соответственно всё будет подсвечено неверно. Компилировать проект можно, определив External Tool и повесив на него горячую клавишу. Конечно придется самому продираться через вывод компилятора и искать места ошибок. Ни о каких подсказках с типами, как и о адекватной навигации мечтать не приходится. Это всё были минусы. А теперь к плюсам, он один, но зато огромный: офигенная поддержка всех остальных языков, используемых в проекте. Тут и Zen Coding, и дополнение используемых классов в jQuery селекторах, и рефакторинг в JavaScript и CSS.

IDEA Custom File Type

IDEA Custom File Type

Переходим к Sublime Text 2. Я слышал очень много хороших отзывов об этом редакторе и решил попробовать. Выглядит он очень хорошо, сразу видно, что разработчики потратили кучу времени на оттачивание пользовательского интерфейса. Ставим пакет поддержки Haskell. В итоге получаем компиляцию проекта при сохранении, подсветку ошибок в коде. Нет подсказок с типами, автодополнение показывает просто набор слов из текущего проекта. Пакет с Zen Coding есть. В общем хороший, годный редактор.

Sublime Text 2

Sublime Text 2

Как видно, у каждого редактора есть свои плюсы и минусы. Думаю, что самое большое счастье было бы, если бы удалось запустить ideah, потому что Custom File Type для работы явно недостаточно. Надо будет потратить еще некоторое время на допиливание этого плагина, вдруг что-нибудь да получится. А пока я останусь на Sublime Text.

UPD: продолжение истории.

Eclipse

Когда-то давным-давно, еще в универе, я очень любил Eclipse. Бесплатный, постоянно развивающийся, с кучей всяческих плюшек для разработки. Eclipse PDT был верхом удобства для написания кода. Да и когда речь заходила о Java, я совсем не понимал, что такого есть в Идее, чего нет в Эклипсе.

Прошло время, Jetbrains выпустили PhpStorm. И он настолько превосходил PDT и Zend Studio по производительности и удобству, что стал практически неотъемлемой частью рабочего процесса.

Теперь, когда я пишу на Haskell, снова приходится воевать с Eclipse, потому что он всё больше меня раздражает своими тормозами. Но более адекватного редактора я пока не нашел.