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