LXF83:Ruby on Rails
(Новая: == Новые рельсы Linux == ''Правда ли, что Ruby + Rails + Linux – магическое уравнение, революционизирующее мир web-раз...) |
Версия 06:48, 10 марта 2008
|
|
|
Содержание |
Новые рельсы 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 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.