От автора и предисловие:
Доброго времени суток всем постоянным и не постоянным читателям блога bitby.net. Хочу поздравить вас со сменой дизайна, по мне, так он стал лучше и текст стал более легко воспринимаемым.
Я являюсь новичком в Ruby, тем не менее я имею достаточный опыт программирования на PHP. От того, чтобы я стал php-гуру меня спас один мой друг — опытный программист на php, Python, Ruby, который и посоветовал мне Ruby. Я долго сомневался, а стоит ли браться за изучение чего-то нового, отправлять те знания и опыт, которые у меня уже имеются в топку и заниматься изучением нового языка программирования. Тем не менее аргументы в пользу Ruby и Rails были очень убедительными и вот я стал Рубистом. В помощь себе и другим людям желающим изучить Ruby и Rails я создал блог Разработка на Ruby и Ruby on Rails с нуля, надеюсь он сослужит добрую службу всем новичкам.Кстати, для желающих изучить работу в Rails я начал готовить учебник Ruby on Rails, пока что на основе переводных статей.
В этом посте я хочу познакомить вас с Ruby и Rails и рассказать, почему стоит выбрать именно этот язык программирования и этот веб-фреймворк.
Что такое Ruby и Ruby on Rails
Ruby – сверх динамический, объектно-ориентированный язык программирования, который был создан опираясь на утверждение «Язык программирования должен быть удобен для человека, а не для машины!» Таким образом, Якихиро Мацумото в 1995 году явил миру первую публичную версию Ruby. На данный момент Ruby дорос до версии 1.9.2 и имеет множество отличительных черт и достоинств, которые делают Ruby весьма мощным и удобным языком программирования, позволяющим создавать достойные приложения в разы быстрее, чем при использовании языков программирования более низкого уровня.
Ruby on Rails – великолепный веб-фреймворк написанный Девидом Хэйнемеером-Хенсcоном на Ruby, за что DHH (так прозвали Девида в Ruby-сообществе) получил в OSCON звание «Hacker of the Year». Фреймворк Rails сочетает в себе все передовые технологии, идеи и паттерны проектирования, благодаря чему разработка на нем становится в разы проще и быстрее. В конце 2008 года команда разработчиков другого мощного фреймворка на Ruby – Merb объединилась с командой Rails для совместной работы над проектом Rails 3. На данный момент уже выпущен релиз-кандидат Rails 3. Rails3, по заявлению авторов, должен был вобрать в себя все лучшие стороны Merb, например, модульность, гибкость, расширяемость. Судя по тому, что нам представляется в релиз-кандидатах Rails3, можно сказать, что авторам Rails и Merb удалось сделать Rails3 модульным и более удобным для разработчиков.
Почему стоит переходить на Ruby и Ruby on Rails
1. Агресивность рынка веб-разработки. В последнее время рынок веб-разработки очень сильно вырос, выросла и конкуренция. Rails позволяет разработчику в разы быстрее выполнять заказ, при этом экономятся человеко-часы и значительно снижается себестоимость. Благодаря этому разработчики за то же время могут выполнить большее количество работы (заказов), и снизить цену не в ущерб качеству работы.
2. Весьма большое, развивающееся сообщество. Стоит признать, что сообщество Ruby не такое большое, как у Python и тем более PHP. Однако профессионализм членов сообщества впечатляет. Не стоит бросаться туда, где больше людей, стоит идти туда, где люди лучше. Не стоит идти на поводу известной пословицы: «Миллиарды мух не могут ошибаться, в PHP все-таки что-то есть» (пословицу я немножко перефразировал).
3. Огромное количество готовых библиотек и кода. На данный момент Ruby отлично обеспечен библиотеками для работы со сторонними разработками, такими как базы данных: MySQL, PostgreSQL, MongoDB, SQLite и т.д., различные веб и не-веб сервера, библиотеки для работы с графикой, звуком, видео и т.д. Ruby не просто язык написания скриптов — это полноценный язык программирования. На данный момент сообществом создано более 900000 gem’ов (GEM – так называются расширения Ruby), которые значительно ускоряют и упрощают разработку, ведь возникшую у вас проблему, уже кто-то решил до вас, причем с 99.99% вероятностью, что решение этого человека значительно лучше того, что могли бы предложить вы. Стоит упомянуть о множестве gem’ов и плагинов созданных специально для Rails, это опять-таки позволяет вам экономить время на разработку и собственные нервы на написание велосипедов.
4. Ето же Rails! Ruby on Rails, или просто RoR – это самый популярный Ruby –фреймворк для разработки веб-приложений. Множество программистов завидуют ruby’стам за то, что те имеют такой мощный, и в тоже время, простой инструмент. Не стоит забывать о том, кто является разработчиками Rails!
5. Ruby – это не только Rails! У новичков часто слаживается впечатление о том, что Rails – это единственное преимущество Ruby над PHP, Perl, Python, Java… На самом делеэто не так! Ruby используется в администрировании, в прототипировании, в научных исследованиях, в разработке игр и различных приложений как язык написания скриптов и т.д. Ruby используют такие компании: Microsoft, HP, NASA, Cisco и т.д.
6. Ruby 1.9! Ruby не лишен недостатков и основным недостатком была крайне низкая скорость работы и большой объем потребляемых ресурсов. С каждой новой версией Ruby оптимизировался и боролся со своими недостатками, и в версии 1.9 мы видем много значительных улучшений. Например, Ruby 1.9 обогнал по производительности PHP, Perl, Python3 (из доклада Ехуды Каца), оставив впереди лишь Python 2. Ruby 1.9 более удобен, разумен и быстр.
Так уж сложилось, что большая часть веб-проектов разработывается на PHP, именно по этой причине я хочу раскрыть вам несколько причин того, почему стоит переходить c PHP на Ruby.
Почему PHP sucks, а Ruby — мечь Дао веб-разработки
1. Ruby язык общего назначения, а PHP – нет! Ruby используется во множестве областей разработки и научных исследований, моделировании и т.д., а PHP годится лишь для разработки веб-приложений. PHP написан, если не ошибаюсь, на Си, а Ruby по-большей части на Ruby… PHP работает под различными вебсерверами от сторонних разработчиков типа Apache и nginx, а Ruby имеет несколько веб-серверов написанных на самом Ruby, но отлично работает и на Apache, и на nginx, и на LightHTTPd.
2. Ruby более легкий, чем PHP и имеет более понятный синтаксис, обладает множеством встроенных в сам язык паттернов программирования и различными удобными конструкциями, как, например итераторы, которые не доступны разработчикам на PHP.
3. У Ruby очень быстрые темпы развития, у PHP – нет… Новые версии Ruby имеют заметные преимущества над предыдущими, а в PHP 5.3 был добавлен никому не нужный GOTO=)))
4. Создатели Ruby – опытные программисты со всего мира, а создатели PHP – опытные программисты из Zend. Zend нацелены на получение прибыли с PHP (дорогущая ZendStudio и т.д., странно, как это ZendFramework не стал платным, но думаю, это дело времени), разработчики Ruby – безумные фанатики занятые разработкой оружия порабощения всего мира!=)
5. Ruby on Rails vs ZendFramework. Сами понимаете … CakePHP, Lithium Framework – жалкие попытки создать Rails на PHP. CI, Kohana, Yii – недоZendFramework.
6. Сообщество Ruby – в большинстве своем опытные программисты с желанием и возможностью помочь новичкам. Сообщество PHP – 80% школота, 19% — программисты среднего уровня из мелких и среднего размера студий. Коду на Ruby можно доверять, код на PHP необходимо тщательно проверять.
7. PHP –разработчики аргументируют то, что PHP лучше тем, что на PHP написано множество огромных проектов с чуть-ли не миллиардными аудиториями. На самом деле стоит понимать, что при разработке таких проектов используется целый зоопарк языков программирования. Vkontakte и Facebook можно было бы написать на Ruby в несколько раз быстрее, а узкие места также оптимизировать на Си, Erlang’е и т.д.
Кстати, на Ruby были разработаны: Twitter, Scribd, YellowPages, Groupon, а из русского: серверная часть приложения Вконтакте – ЛицеМер, которое находится на 2м месте по популярности, соцcеть LookAtMe и многое другое. Стоит упомянуть, что ориентировочно, каждый 2й стартап в США создается на Ruby on Rails, здесь Ruby и PHP идут практически вровень.
Недостатки Ruby по сравнению с PHP: малое количество документации на русском языке и маленькое русскоязычное сообщество. Тем не менее, существует русский перевод отличной книги «Programming Ruby», а также перевод книги «The Ruby Way» — “Программирование на языке Ruby” авторства Хэла Фултона. Еще один перевод замечательной книги, но уже совсем для новичков, доступен онлайн: «Learn to Program«. Учите английский и читайте мой блог Разработка на Ruby и Ruby on Rails с нуля =)
Ответить | Цитировать
Попытался перейти с Симфони на Рейлз.. так в Рейлзе нет и половины того что есть в Симфони ))
Руби и Рейлз не ругаю — для меня это всего лишь другой инструмент. Для разных гвоздей — разные молотки.
Ответить | Цитировать
Я чиатал что PHP появился и развивался на начальных стадиях в большей степени из за того, что не хватало производительности Perl. Эпоха расцвета Perl в сети прошла как таковая. Это были 90, начало 2000 когда достойной конкуренции данному языку не было.
Теперь насчёт производительности. Поищите в интернете » нагрузочное тестирование» и другое тестирование крупных компаний и авторитетных источников. По производительности выходит следующее:
Наименее производительный PHP.
Потом идёт Ruby on Rails.
Самый производительный Django.
При этом стоит брать в расчёт что на Ruby on Rails обычно выстаиваются различные ограничения для стабильности работы, и по «дефолту» они включены. На конкурсах по программированию опытные программисты переконфигурировают Ruby и RoR для определённых задач. Таким образом производительность некоторых важных операций повышается, тогда как другие операции (к примеру не задействованные данной в программе) будут выполняться относительно долго и возможно с ошибками.
Работу PHP также можно увеличивать различными способами, даже сторонними продуктами.
Ответить | Цитировать
Пусть говорят! =D
Ответить | Цитировать
Ответить | Цитировать
Фрилансеру стоит переходить с пхп на руби?
Ответить | Цитировать
Ответить | Цитировать