- Подписка на печатную версию:
- Подписка на электронную версию:
- Подшивки старых номеров журнала (печатные версии)
LXF83:Ruby on Rails
Материал из Linuxformat.
Содержание |
Новые рельсы Linux
Правда ли, что Ruby + Rails + Linux – магическое уравнение, революционизирующее мир web-разработки? Пол Хадсон проводит собственное расследование…
«Мощные web-приложения, разработка которых раньше занимала недели или месяцы, теперь создаются за дни.» – Тим О’Рейли.
Все мы знаем, что концепция открытого кода приносит компьютерным технологиям свободу, но также и пренебрежительное отношение к рыночным мифам, столь распространенным в мире закрытого ПО. Если что-то и вправду быстрее или обладает большими возможностями или легче в использовании, то мы хотим увидеть это своими глазами. Пусть вы с осторожностью воспринимаете похвалы, возносимые Ruby on Rails – ничто не мешает взять его из CVS и попробовать: это не будет стоить вам ничего, кроме затрат на web-соединение.
Проект начинался весьма скромно. Сам по себе язык программирования Ruby появился в 1995-м году как очередной скриптовый язык, позаимствовавший некоторые идеи из Perl, Eiffel, Smalltalk и Python. Однако его создатель Юкихиро Мацумото [Yukihiro Matsumoto] ввел в язык собственный синтаксис, настоящую объектную ориентированность и продвинутую функциональность, редко встречающуюся в других языках. Несмотря на это, Ruby не стяжал большого числа поклонников и рассматривался как легковесный конкурент для известного триумвирата парадигмы LAMP – PHP, Python и Perl.
С появлением Ruby on Rails ситуация в корне изменилась. Пару лет назад Давид Хайнемайер Ханссон [David Heinemeier Hansson] использовал Ruby в разработке приложений для своей фирмы 37 signals, занимающейся web-дизайном. Все они имели одну общую черту – им нужен был быстрый и легкий в использовании интерфейс, не требующий больших усилий в изучении, но предоставляющий мощную функциональность. После работы над этими приложениями Хансон решил выделить свои наработки в отдельный пакет Rails и выпустить его под свободной лицензией. С этого момента Rails и сам язык Ruby быстро приобрели известность как новый способ быстрой разработки web-сайтов с базой данных.
Сквозь мифы
Хотя Rails несомненно предоставляет новый интересный способ web-разработки, но этот проект создал вокруг себя густое облако маркетинговой пыли. Отчасти это объясняется относительной молодостью Rails (его релиз состоялся в прошлом году), отчасти связано с самой природой Сети, а отчасти с ощущением «крутости», созданным вокруг проекта элегантным сообществом Rails.
Если вам нравится, как звучит фраза: «инфраструктура, оптимизированная для счастья программиста», то Rails, возможно, для вас. Ваш дистрибутив, наверно, содержит элементы Rails, как то: сам Ruby и менеджер пакетов RubyGems. Установить Rails можно с помощью RubyGems. Некоторые дистрибутивы (их не много) предлагают Ruby on Rails прямо в основном списке пакетов, но проще всего использовать RubyGems, это позволит вам отслеживать обновления.
Конечно, не всякий рекламный миф обязательно неправда, но все же заявления требуют тщательной проверки. Как, например, в случае с фразой Тима О’Рейли – правда ли, что теперь проекты, разработка которых занимала недели (или месяцы), можно создавать за считанные дни? Возможно; однако реальная длительность может быть разной. Например, один из авторов официального блога Rails сказал о недавнем проекте на базе Rails: «Кстати, двое программистов написали это на Ruby on Rails всего за шесть недель!». Звучит так, как будто бы при использовании обычного стека LAMP эта работа заняла бы годы, но какой же проект-мастодонт требует столько времени? Как выясняется, этим новым проектом был Интернет-магазин. Корзина очень приятная, ничего не скажешь, но должна ли реализация какой бы то ни было корзины двумя спецами на любом языке программирования занимать шесть недель?
Rails – это, конечно, не серебряная пуля для web-программирования, но мы обнаружили, что там сделан ряд шагов, на которых можно кое-чему научиться и применить это знание в своей работе. Если, как и большинство дальновидных фирм, вы предпочитаете не замыкать свой бизнес на единственную web-технологию, мы рекомендуем вам предоставлять решения на базе Rails наряду с PHP, Perl и JSP. Работая с Rails, вы не только получаете доступ к модной технологии (некоторые заказчики даже просят именно Ruby on Rails), но ваши инженеры заодно получают шанс увидеть, в чем, собственно, Rails лучше, и воспользоваться этим в других проектах.
Выбирая P***
Большинству web-разработчиков хорошо знакомы основы стека LAMP. L-часть (Linux) позволяет вам выбирать из широкого спектра дистрибутивов – Red Hat, SUSE, Gentoo и сотни других. P-часть также довольно гибка; здесь свою популярность доказали языки PHP, Perl, Python, но и для Ruby место найдется.
Однако части A (Apache) и M (MySQL) уже не так гибки, поэтому опасения, что Ruby on Rails является конкурентом LAMP, видимо, беспочвенны. Если убрать Apache и Microsoft IIS, то на оставшуюся часть рынка придется менее чем 10% web-серверов: несущественная доля. Что касается MySQL, то он стал стандартом де-факто для баз данных web-сайтов, несмотря на то, что его конкурент PostgreSQL имеет больше возможностей и более надежен. Так что Rails вряд ли сможет раскачать корабль LAMP. К тому же Хайнемайер Ханссон дал понять, что он предпочитает использовать базы данных в качестве не более чем пассивного хранилища, а бизнес-логику держать на уровне Rails. Этот принцип дал преимущество MySQL над PostgreSQL, но также привел к потере масштабируемости многих сайтов. И, чтобы облегчить существование в стеке LAMP/R, примите основную рекомендацию – запускать Rails на платформе Unix, это на худой конец обезопасит вложения в ваш сервер.
При всем при том на сайте Rails гордо заявляют, что вся основная команда разработчиков ведет разработку в OS X при помощи инструмента с закрытым кодом – редактора TextMate. TextMate – потрясающий текстовый редактор, и нам стыдно признать, что у нас нет его эквивалента с открытым кодом для людей, собирающихся использовать Rails.
Где Rails действительно выигрывает, так это в философии «не болтай, а покажи». Идея здесь в том, что читать чужой код – занятие довольно скучное. Вместо этого разработчики Rails создали несколько видеороликов, показывающих как они вживую создают web-страницы – печатают код, делают изменения, просматривают результаты и т.п. (www.rubyonrails.org/screencasts). Скорострельный цикл разработки кода Rails отлично подошел для видео – можно и вправду наблюдать, как приложение создается прямо у вас на глазах.
Переход
Сравнивать языки программирования непросто, поскольку такое сравнение во многом зависит от вашего прошлого опыта. Некоторые языки, например, PHP, хотя бы имеют сходство с уже привычными, например, Java и C. Но Ruby выглядит совершенно уникально, поэтому вам придется изучать его с нуля. Утешает только тот факт, что в Rails объем кода, который вам придется писать, сведен к минимуму.
Некоторые опытные разработчики предают анафеме «закулисную» магию – они любят иметь явный контроль над всем. Но сколько раз вы готовы писать один и тот же цикл для печати строки таблицы? Сколько раз вы готовы писать HTML для вставки дат? Это небольшие нюансы, которые Rails может убрать из вашей повседневной работы, позволив вам сфокусироваться на более высокоуровневых вещах: заставить ваш код работать, и работать хорошо. Кое-кто уже считает Rails серьезным сдвигом парадигмы, но для этого Rails должен сделать побольше, чем отвести от себя подозрения в чрезмерности рекламы. Лучше думать о Rails как о еще одном ярком кусочке в мозаике программных инструментов web-разработки и еще одной причине выбрать свободное ПО вместо продуктов Microsoft.