Ruby IDE. Для начинающих Aptana Studio, 3rdRail, TurboRuby, RubyMine, NetBeans

RubyНачал достаточно серьезно изучать 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 как раз и отсутствуют:

Aptana Code Completion

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

aptana_string

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

aptana_error

Дебагер заработал сразу и без проблем. Основные функции работают, нареканий никаких нет:

aptana debug

Рефакторинг не работает вообще. Причем, 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 работает не всегда, т.е. бывают случаи (причем частные), когда появляется пустой список. Так же этот механизм достаточно задумчив, на более слабых машинах подтормаживание будет заметным.

3drail

3drail_fixnum

3drail_string

Отладчик работает аналогично предыдущему IDE. Переменные, вызовы, глобальные переменные, переменные среды — все доступно для просмотра:

3drail debug

Рефакторинга как такового нет, даже самого простого вида — изменение имени переменной.

3rdrail refactor

Возможно, что под рефакторингом в данной ide понимается изменение названий моделей, модулей, т.е. как я понимаю он более ориентирован на Ruby On Rails.

Навигация по коду на уровне Aptana.

TurboRuby

Платная/Java Тестирование версии 2.xxxxx

Если 3rdRail ориентирован на ROR разработку, то эта вариация IDE ориентирована на разработку именно Ruby приложений. Все то же самое, что и в описанном выше 3rdRail. По моему это просто маркетинговый финт с разделением одного продукта на два.

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

Скриншоты редактора кода из наиболее интересных ide для ruby

Ruby Ide : Aptana, 3rdRail, TurboRuby, NetBeans, RubyMine

NetBeans

Безплатная/Java Тестирование версии 6.5 (6.7 RC)

Я тестировал как продакшен версию 6.5, так и релиз кандидат 6.7 и могу сказать, что этой ide я очень доволен. Быстрый старт, «отзывчивая» реакция ide, цветовые схемы, плагины — всё на высочайшем уровне. В редакторе присутствует завершение кода и возможность просмотра примеров использования методов. Представление этой информации в NetBeans, пожалуй самое лучшее, из всех, рассмотренных мною сред. Посмотрите на скриншоты, очень удобное разделение методов:

netbeans ide

netbeanS IDE

Среда поддерживает собственные Code Templates и для каждого языка можно создавать свои наборы. Эта фича есть во всех более менее современных языках и позволяет значительно сокращать время набора кода.

Следующая интересная возможность NetBeans это работа с Ruby Gems. В окне показывается список установленных пакетов и доступных для установки. Так же есть возможность поиска и обновления:

netbeans gems

Local History — еще одна замечательная штука. В ide нет кнопки save(принудительная Save All конечно же есть). Все изменения по проекту ведутся в виде локальной истории. Имеется возможность откатиться до нужного состояния.

netbeans localhistory

Рефакторинг работает именно так как нужно, пример rename:

netbeans refactor

Навигация по коду так же на высоте — дерево проектов, файлы проекта, классы/модули открытого файла, мониторинг изменений в бакграунде — все это конечно же присутствует и работает. Так же порадовала удобная навигация к файлам в секции require.

RubyMine

Платная/Java Тестирование версии 1.xxx

Функционал этой IDE, как редактора, находится на высоте — используются все наработки IntelliJ IDEA:

- свертка кода по классам и модулям
- удобная возможность просмотра проекта в файловом виде и в виде классовой структуры
- навигация по коду
- поиск
- встроенный отладчик

Всё это присутствует и работает на 5+

Система авто-завершения кода работает стабильно, есть правда один минус — это сортировка.

Методы типа помещаются в общую кашу к родительским (в самом простом случае Object и Kernal) и на мой взгляд, это не удобно. Пишем мы, к примеру, класс BClass, добавляем ему методы some_p. Логично, что в 99% мы будем использовать именно эти методы: а при наборе кода:

b = BClass.new
b.

мы получим список из методов Object, Kernal и BClass. На мой взгляд, логичнее методы класса BClass выделять ставить выше в списке сортировки:

rubymine

Второй минус — нет возможности посмотреть подсказки к методам, как это сделано, к примеру, у 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

Читайте также

Комментарии

Оставить комментарий

Реклама

Статистика

Яндекс.Метрика