• Автор:

    Flesha
  • Добавлено:

    окт 30, 2015
  • Комментариев:

    0
  • Просмотров:

    680

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

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

Начал достаточно серьезно изучать 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...
Вернуться
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.