Третий рельс

Не о трамваях и даже не о метро, а о Ruby On Rails и о CodeGear 3rd Rail


Вступление

Ruby On Rails1, по мнению многих аналитиков, - самая перспективная из существующих сейчас web-технологий. Столько восторженных отзывов от самых закоренелых скептиков, которые предрекали скорую кончину Perl'a и гибель Windows как серверной ОС, заставляют обратить внимание на этот продукт даже тех, кто использует PHP или ASP.NET и переходить ни на что другое пока не планирует.

Довольно серьёзный интерес в сообществе web-разработчиков вызвал состоявшийся буквально чуть больше недели назад выпуск компанией CodeGear среды разработки для Ruby On Rails - 3rd Rail. Напомню, что CodeGear - это подразделение легендарной Borland, которое специализируется на средах разработки и других продуктах, с которыми в итоге будет иметь дело непосредственно программист. 3rd Rail - первая полноценная интегрированная среда разработки для Ruby On Rails, и по этому поводу я решил рассказать о нём читателям "Компьютерных вестей". Но для того, чтобы лучше представлять себе, что же это такое, сначала, думаю, стоит рассказать непосредственно о Ruby On Rails.


Ruby On Rails, открой личико!

 

Ruby - это интерпретируемый язык программирования, не менее мощный, чем чуть более известные Python и Perl. Придумал и реализовал его японец Юкихиро Мацумото. Основная идея, который руководствовался автор языка, - это создание мощного объектно-ориентированного, но при этом интерпретируемого языка. В Японии этот язык стал популярен ещё в конце девяностых, но по всему миру распространился уже в двадцать первом столетии. О Ruby можно рассказывать долго, потому что язык действительно интересный, и, наверное, когда-нибудь я расскажу о нём подробнее. Но при чём тут рельсы - вот что сейчас гораздо интереснее и важнее.

Ruby On Rails - это фреймворк (русский аналог этого слова будет звучать, пожалуй, как каркас) для разработки web-приложений на языке Ruby. То есть, это набор библиотек для Ruby, которые позволяют легко и быстро создавать web-приложения, а при этом ещё и манят разработчиков модным словом AJAX. Логотип проекта (кстати, на мой взгляд, весьма привлекательный) вы можете увидеть на иллюстрации. Вы потом узнаете его, если будете работать с IDE 3rd Rail: он там повсюду.

Одна из главных идей Ruby On Rails - использование архитектуры MVC (Model-view-controller, или модель-представление-контроллер), которая призывает разделять данные, интерфейс и бизнес-логику приложения на отдельные части. При таком подходе обычно главную роль играют данные (обычно говорят о модели данных), в то время как представление (т.е. интерфейс) и логика приложения (она же контроллер) уже строятся исходя из имеющейся модели данных.

Идеология Ruby On Rails предусматривает ещё некоторые положения, которые, видимо, также очень сильно приглянулись web-разработчикам. Например, концепция MVC дополняется идеей о том, что ничего, кроме этой архитектуры, разработчику и не нужно, т.е. "приложения не должны определять собственную архитектуру, поскольку они используют готовый каркас модель-представление-контроллер". Язык Ruby - тоже часть идеологии "рельсового" фреймворка, поскольку это один из самых передовых (по мнению разработчиков Ruby On Rails) интерпретируемых языков программирования. Он позволяет создавать довольно простой код в рамках архитектуры MVC, и, что немаловажно для open-source проектов, код на языке Ruby хорошо воспринимается и программистами, привыкшими к другим распространённым языкам. Что ещё более важно, Ruby on Rails предоставляет механизмы повторного использования, позволяющие минимизировать дублирование кода в приложениях - это тоже часть идеологии проекта. Ну и, наконец, по умолчанию для фреймворка используется конфигурация, типичная для большинства приложений, что не может не порадовать тех, кто только начинает вхождение в мир Ruby On Rails.

Но главное преимущество Ruby On Rails - это, как ни крути, всё же ускорение работы. Вот что пишет по этому поводу в своём блоге web-разработчик Александр Лебедев (alexlebedev.com/blog, не путать с Артемием Лебедевым!): "В целом, при работе с Rails возникает ощущение, что попал в светлое завтра веб-разработки. На вещи, которые делаешь в первый раз, времени уходит столько же, сколько на реализацию того же самого в десятый раз на том, с чем я работал раньше. Начиная со второго раза - в два-три раза меньше. Сравниваю, в первую очередь с PHP, ASP и ASP.NET, с которыми я более-менее серьезно работал в прошлом, и с Django, знакомым по паре микроскопических проектов, сделанных для собственного удовольствия". Вообще же стоит почитать некоторые материалы2, написанные профессионалами, об их первом взгляде на Ruby On Rails и о практическом применении теорий и идей, заложенных в этот фреймворк его авторами.

Но всё же главным русскоязычным источником информации по Ruby On Rails является сайт www.rubyonrails.ru. Если вас интересует такая перспективная технология, как Ruby On Rails, то лучше, в первую очередь, обратиться именно к этому ресурсу.

Но всё же дальнейшее знакомство непосредственно с Ruby On Rails лучше оставить на потом - как видите, источников информации огромное количество, да и Ruby не слишком сложный язык для тех, кто освоил PHP, ASP/ASP.NET или даже довольно экзотический для СНГ'шных web-технологий Python. Я бы мог, конечно, рассказать и о Ruby, и о Ruby On Rails подробнее, но не буду. Просто объём газетного номера ограничен, а хотелось бы рассказать и о разработке компании CodeGear - 3rd Rail. Собственно, прямо сейчас, не откладывая в долгий ящик, и начну.


Третий рельс - апгрейд двух уже существующих?

Ruby On Rails, несмотря на всю перспективность технологии, давно не хватало того, чем PHP и ASP.NET уже могли похвастать, а именно - хорошей IDE (Integrated Development Environment - интегрированной среды разработки). Нельзя сказать, что этот компонент процесса разработки был бы так уж жизненно необходим с чисто технической точки зрения, но, на самом-то деле, без хорошей среды разработки продвинуть продукт в массы бывает непросто. Хотя для многих программных продуктов (например, для того же PHP) пристойные IDE появились много после выхода в свет самого интерпретатора. В общем-то, и для Ruby On Rails эта фраза тоже вполне справедлива, но, к счастью, хорошая среда для Ruby, а в особенности для Ruby On Rails, теперь есть. И постаралось, как я уже говорил, подразделение по средам разработки компании Borland - дочерняя компания CodeGear. Найти в Интернете 3rd Rail можно по адресу www.codegear.com/products/3rdrail. Заранее приготовьтесь к тому, что для скачивания понадобится зарегистрироваться. И, кстати, есть trial-версии IDE не только для Windows, как это было с Delphi for PHP, но и для Linux и MacOS X. "Весят" все дистрибутивы среды около трёхсот "метров".

Название, между тем, для среды разработки выбрано более чем удачное. Ведь, по сути, что делает среда разработки? Она ускоряет процесс создания приложений, поскольку в IDE работать удобнее, чем в блокноте. Третий рельс используется только в одном виде общественного транспорта - в метро. Метро - это скорость. Два рельса - это, например, трамвай, который, безусловно, прекрасный вид городского транспорта, лучший из наземных - он не бьётся током, как троллейбус; не дымит, как автобус; не стоит в общих пробках, поскольку даже если кто и заедет на рельсы, то обычно съезжает довольно быстро. Но метро едет под землёй, и, кроме того, скорость его движения гораздо выше за счёт отсутствия светофоров и редкого расположения станций, по сравнению с трамвайными остановками. А третий рельс, по которому передаётся электрический ток, и ассоциируется с метро - а, значит, и со скоростью.

Но это просто лирическое отступление. Правда жизни же состоит в том, что основой для очередной среды разработки от CodeGear послужила очень и очень известная open-source IDE Eclipse. Это, с одной стороны, уже заранее означает удобство использования, а, с другой, для разработчиков, с Eclipse незнакомых, может означать и некоторые проблемы, связанные со своеобразием этой среды. Хотя их, думаю, будет не так уж много. Потому что если программист работал в любой современной среде разработки, то он со всем в любой ипостаси Eclipse разберётся.

Возможностей и удобств в 3rd Rail много. Во-первых, конечно же, редактор исходного кода, поддерживающий и автодополнение кода, и подсказки, и подсветку открывающей и закрывающей скобок. Во-вторых, навигация по коду (которого, впрочем, думается, будет меньше, чем при использовании большинства других технологий создания web-приложений). Кроме навигации по коду, естественно, есть и навигация по проекту, в целом, и этот вариант навигации, полагаю, будет уже более востребован - ведь Ruby On Rails ориентирован именно на крупные и трудоёмкие проекты. В-третьих, мощные возможности рефакторинга исходного кода, характерные для всех интегрированных сред производства CodeGear. В-четвёртых, 3rd Rail уже содержит в себе все необходимые для запуска и отладки приложений компоненты, включая интерпретатор Ruby и фреймворк Ruby On Rails, а также дистрибутивы СУБД Interbase и MySQL. Так что можно просто скачать и приступать к разработке какого-нибудь сайта. В-пятых, новинка именно этой среды разработки: CodeGear Commanders. Хоть и звучит это угрожающе, будто бы среда разработки намеревается командовать программистом, но на деле всё не так плохо, и даже, я бы сказал, совсем наоборот. Это просто встроенные в среду инструменты для взаимодействия с приложениями командной строки, которые входят в Ruby On Rails и позволяют продуктивно генерировать код. Это, на мой взгляд, едва ли не главное достоинство среды разработки именно для использования библиотеки Ruby On Rails. Кроме того, есть в 3rd Rail и другие полезные вещи: встроенный браузер на движке Gecko (том, который используется в продуктах Mozilla), встроенный отладчик JavaScript-кода, инспектор DOM, монитор запросов, просмотрщик "логов", проводник по базе данных и ещё масса полезностей, которые все перечислять, пожалуй, и не стоит, потому что лучше один раз увидеть, чем сто раз услышать. Имеется возможность использования среды в командной разработке, поскольку в неё уже встроены специальные средства для работы с CVS и Bugzilla. Но так как среда основана на Eclipse, то можно расширить её функциональность соответствующими плагинами.

К представлению своего мощного и вообще всесторонне замечательного программного продукта во Всемирной паутине CodeGear тоже подошла основательно. На главной странице продукта размещены высказывания авторов языков Ruby и библиотеки Ruby On Rails. Например, Юкихиро Мацумото (напомню, это создатель языка Ruby) говорит о 3rd Rail следующее: "3rdRail has a well designed and very impressive interface which covers programmers at all levels from beginners to experts". То есть, если по-русски, "3rd Rail имеет хорошо спроектированный и очень впечатляющий интерфейс, который подходит программистам всех уровней - от новичков до экспертов". Создатель Ruby On Rails, Дэвид Хэйнемеер Ханссон, высказывается в том же духе: "This opens up a whole new world for things like advanced refactorings and, in general, provides an environment that's familiar to anyone coming from IDE-heavy environments like .NET or J2EE" ("Это открывает совершенно новый мир для таких вещей, как продвинутый рефакторинг, и, в целом, предоставляет среду [разработки], близкую для любого, кто придёт с отягощённых IDE средами, такими как .NET или J2EE").

Думаю, после таких рекомендаций авторитетнейших в мире Ruby людей мало у кого останется сомнение в том, что 3rd Rail - действительно хорошая среда разработки для Ruby (и в особенности для Ruby On Rails). А учитывая особенности этой технологии разработки web-приложений, можно сказать, что попробовать Ruby On Rails и 3rd Rail стоит каждому, кто разрабатывает web-приложения.

Вадим СТАНКЕВИЧ


1 Если перевести словосочетание Ruby On Rails с английского языка дословно, то получится "рубин на рельсах"

2 Некоторые интересные материалы по Ruby On Rails:

Версия для печатиВерсия для печати

Номер: 

39 за 2007 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!
 

Комментарии

Страницы

Аватар пользователя LX
перл -- си-подобный язык?????? вы сами-то поняли, о чем сказали?
Аватар пользователя Инкогнито
Наверное он имел ввиду семантически слегка подобный, таким же образом как и PHP тоже "похож" на C.
Аватар пользователя Инкогнито
Если технология старая, это вовсе не значит что она плохая. А в некоторых случаях, если сравнивать по скорости выполнения, получается даже наоборот - лучше чем любая новая.
Аватар пользователя SF
Ещё раз повторюсь: сейчас скорость выполнения кода МЕНЕЕ важна, чем скорость разработки. Качество кода, кстати, тоже после скорости разработки уже :(.
Аватар пользователя Инкогнито
FastCGI - забытое сокровище

http://cryp.to/publications/fastcgi/

Аватар пользователя Volot
Не хочу прослыть ретроградом, но мне почему-то кажется, что если бы все это время все продолжали бы писать на С (даже не С++), то

(а) Все бы не просто работало в 50 раз быстрее, а летало на современных процессорах,

(б) Никто бы не тратил свое дорогое время (и деньги работодателя) на endless освоение (а до действительного освоения -- делания вида, что уже освоил, уже совсем крутой и выдает на гора продукт, а не тыркается втихаря) всех новых приколов и выкрутасов в инструменте программирования,

(в) Как индивидуальный работник, так и его контора и даже вся индустрия имели бы бенефиты от своих предыдущих наработок.

Аватар пользователя SF
>>(б) Никто бы не тратил свое дорогое время (и деньги работодателя) на endless освоение (а до действительного освоения -- делания вида, что уже освоил, уже совсем крутой и выдает на гора продукт, а не тыркается втихаря) всех новых приколов и выкрутасов в инструменте программирования,

Приколы и выкрутасы - это удобные новые функции? Да их проще освоить и повысить свою скорость, чем всю жизнь писать на асме в блокноте.

Аватар пользователя Инкогнито
При чем тут ASM ? Standard С++ это очень удобный инструмент, и это далеко не асм. Написать консольные программы, и потом откомпилировать код на FreeBSD или на Red Hat Linux - довольно просто.

Но индустрия разработки веб сайтов почему-то слабо ориентирована на бинарные приложения.

Как выяснилось, FastCGI глючит/или вообще не запускается на новых версиях Apache и ставить его не безопасно. Нормальной поддержки FastCGI - нет. Апдейтами занимается 1 человек и часто опаздывает. Кроме этого, непонятно будет ли вообще поддержка 64 битных процессоров.

Короче, приехали... всё так запущено, что аж просто не верится. Похоже, что кроме FastCGI, стабильной и эффективной платформы для запуска бинарных приложений на серверах вообще не существует ?

Аватар пользователя SF
А она нужна?
Аватар пользователя Инкогнито
Кстати, пользователи Ruby активно используют FastCGI.

Недавно даже на shared hosting'aх люди начинали замечать "FastCGI enabled" для полноценной поддержки Ruby.

Ирония судьбы. Возможно именно благодаря Ruby, FastCGI получит шансы развиваться и "выжить". :)

Страницы