Начал достаточно серьезно изучать Ruby. Заинтересовал сам язык, его отличная от классики (c++/java/pascal/c#) концепция. Для изучения новых языков нам нужен стандартный набор — книги, справки, доки, а для практики — компилятор, соединенный с ide. Вот созданию этого испытательного полигона, а именно компилятор плюс ide и будет повещен данный обзор.
Исходная предпосылка: достаточно мощный, двух ядерный компьютер с 4 гб оперативки под управлением Windows XP, runtime java последней версии и Ruby (Onclick Installer 1.86.xx)
Что мне хочется получить от ide для начала:
- Подсветку синтаксиса
- Завершение кода (code completion)
- Работу с отладчиком
- Удобную навигацию по коду
- Рефакторинг
Интеграцию с CVS, сайтостроение Rails, интергация с unit тестами и т.д. оставим на 2-й план. Для меня это пока не важно. На рынке представлено много различных IDE, много бесплатных проектов, попадаются и коммерческие решения. Я не буду составлять список тех или иных фич продуктов, т.к. зачастую заявленные функции или работают неверно или находятся в совершенно зачаточном состоянии.
Aptana Studio
Бесплатная/Java Тестирование версии 1. 2.7.xxxxx
IDE разработана не с нуля, собрана на базе Eclipse. Скорость запуска IDE достаточно большая, на более медленных компьютерах это будет заметно еще более. Подсветка синтаксиса Ruby присутствует, редактор работает нормально, «задумчивой» реакции я не наблюдаю. Есть сворачивание кода.
Заявлен Code Completion, но в реальности он работает плоховато. В коде примера явно указан Array, а где поддерживаемые им методы map, each ? Самые ходовые методы из Kernel, Array, Object и Enumerable как раз и отсутствуют:

У строкового типа данных чуток получше, но опять не полно:

Точно так же не показаны методы численного типа. После не продолжительной работы (3-5) минут получаем:

Дебагер заработал сразу и без проблем. Основные функции работают, нареканий никаких нет:
Рефакторинг не работает вообще. Причем, 1-2 раза мне удалось запустить обычный Rename, в дальнейшем ни один из его видов не запускалось.
Навигация по коду стандартна — список классов, методов, переменных, модулей в файле. Быстрого перехода к файлу из require ‘LibName’ нет.
Итог — не очень стабильна работа IDE. Заявленного Code Completion считаем что и нет. Проблема падания ide возможно в большом количество включенный по умолчанию плагинов.
3rdRail
Платная/Java Тестирование версии 2.xxxxx
Продукт от фирмы CodeGear (ранее фирмы Borland) построен на базе бесплатного Eclipse‘а. IDE стартует быстрее предыдущего IDE Aptana, в процессе загрузки предлагается выбрать текущее рабочее место workspace, и далее тот проект с которым будем работать.
Подсветка синтаксиса присутствует, так же как и свёртка отдельных логических блоков кода. Код нельзя свернуть до класса, а можно сворачивать только до методов. Это вообще странное поведение, т.к. обе ide собраны на базе одного opensource eclipse. Возможно, что данная функция запрятана в настройках.
Авто завершение строки работает на все 100%. Показываются методы, и их краткое описание и примеры использования. Методы отсортированы в удобном алфавитно классовом порядке, т.е. если мы стоим на типе Array, сначала будут показаны методы относящиеся к нему и Enumerable, а уже потом в общей группе Kernel, Object и прочие.
Единственный минус — Code Complition работает не всегда, т.е. бывают случаи (причем частные), когда появляется пустой список. Так же этот механизм достаточно задумчив, на более слабых машинах подтормаживание будет заметным.
Отладчик работает аналогично предыдущему IDE. Переменные, вызовы, глобальные переменные, переменные среды — все доступно для просмотра:
Рефакторинга как такового нет, даже самого простого вида — изменение имени переменной.

Возможно, что под рефакторингом в данной ide понимается изменение названий моделей, модулей, т.е. как я понимаю он более ориентирован на Ruby On Rails.
Навигация по коду на уровне Aptana.
TurboRuby
Платная/Java Тестирование версии 2.xxxxx
Если 3rdRail ориентирован на ROR разработку, то эта вариация IDE ориентирована на разработку именно Ruby приложений. Все то же самое, что и в описанном выше 3rdRail. По моему это просто маркетинговый финт с разделением одного продукта на два.
Подводя итог по продуктам Embarcadero - судя по последнему билду, а он датирован аж 06.2008 (сейчас конец 06.2009) я думаю, что о этих продуктах можно смело забывать — они не развиваются.
Скриншоты редактора кода из наиболее интересных ide для ruby
NetBeans
Безплатная/Java Тестирование версии 6.5 (6.7 RC)
Я тестировал как продакшен версию 6.5, так и релиз кандидат 6.7 и могу сказать, что этой ide я очень доволен. Быстрый старт, «отзывчивая» реакция ide, цветовые схемы, плагины — всё на высочайшем уровне. В редакторе присутствует завершение кода и возможность просмотра примеров использования методов. Представление этой информации в NetBeans, пожалуй самое лучшее, из всех, рассмотренных мною сред. Посмотрите на скриншоты, очень удобное разделение методов:
Среда поддерживает собственные Code Templates и для каждого языка можно создавать свои наборы. Эта фича есть во всех более менее современных языках и позволяет значительно сокращать время набора кода.
Следующая интересная возможность NetBeans это работа с Ruby Gems. В окне показывается список установленных пакетов и доступных для установки. Так же есть возможность поиска и обновления:
Local History — еще одна замечательная штука. В ide нет кнопки save(принудительная Save All конечно же есть). Все изменения по проекту ведутся в виде локальной истории. Имеется возможность откатиться до нужного состояния.
Рефакторинг работает именно так как нужно, пример rename:
Навигация по коду так же на высоте — дерево проектов, файлы проекта, классы/модули открытого файла, мониторинг изменений в бакграунде — все это конечно же присутствует и работает. Так же порадовала удобная навигация к файлам в секции require.
RubyMine
Платная/Java Тестирование версии 1.xxx
Функционал этой IDE, как редактора, находится на высоте — используются все наработки IntelliJ IDEA:
- свертка кода по классам и модулям
- удобная возможность просмотра проекта в файловом виде и в виде классовой структуры
- навигация по коду
- поиск
- встроенный отладчик
…
Всё это присутствует и работает на 5+
Система авто-завершения кода работает стабильно, есть правда один минус — это сортировка.
Методы типа помещаются в общую кашу к родительским (в самом простом случае Object и Kernal) и на мой взгляд, это не удобно. Пишем мы, к примеру, класс BClass, добавляем ему методы some_p. Логично, что в 99% мы будем использовать именно эти методы: а при наборе кода:
b = BClass.new
b.
мы получим список из методов Object, Kernal и BClass. На мой взгляд, логичнее методы класса BClass выделять ставить выше в списке сортировки:
Второй минус — нет возможности посмотреть подсказки к методам, как это сделано, к примеру, у NetBeans. По моему мнению, система Code Completion у NetBeans самая удобная и более интеллектуальная — RubyMine тут явно проигрывает (надеюсь что пока).
Большим плюсом является стабильность среды — за всё время тестирования (~ 2-3 месяца) не рухнула ни одного раза. Стандартные Local History, RubyGems, интеграция с Version Control системами — в наличии. Так же присутствуют встроенные системы тестирования Rake
У RubyMine присутствуют и некоторый уникальный функционал, например инспектор кода. Достаточно удобная штука — даёт советы по улучшению кода :) Иногда бывает полезна встроенная в IDE IRB консоль, и редактор reg expo’в (plugin).
Общее впечатление о среде могу охарактеризовать как крайне положительные. Среда заточена именно под Ruby и постоянно развивается. Минусом может стать только цена продукта — для начинающих она будет кусаться.
Еще один не понятный мне момент. Фирма по сути продает два продукта для работы с ruby — RubyMine и IDEA…
Ссылки:
Анлгоязычный обзор : Ruby / Rails IDE Comparison : Idea, Netbeans, RadRails



















Комментарии
Ждем продолжения статьи =)
Da-da-da. RubyMine PLZ!
Для пользователей Ruby в среде mswindows грех забыть о легковесной RDE http://homepage2.nifty.com/sakazuki/rde_en/index.html
Тогда уж проще notepad++
в NetBeans 7.0 отключили поддержку руби
Именно, об этом я написал тут : http://dev4food.ru/2011/06/consequences-of-buying-sun/