Denis.in.ua

Блог имени Меня

Маленький холиварчик: PHP VS Rails

13 comments

Holy War: PHP VS RailsПо блогосфере, в частности англоязычной, прокатилась маленькая волна холиварчика PHP VS Rails.

Всколыхнула всех статья владельца сайта CDBaby.com. Признаюсь, я даже не представлял, что такой сайт вообще существует, но судя по pagerank-у и alexarank-у — я один такой.

Для тех у кого с английским хуже, чем у меня, можете дальше наслаждаться статьей с моим корявым переводом ;) . А вот для англопонимающих прямой линк на оригинальную статью.

Я же не буду полностью публиковать перевод, а позволю себе краткий пересказ разбавленный моими мыслями.

Итак, с чего все началось?

Дерек Сиверс (Derek Sivers) — создатель, президент и разработчик, в одном лице, сайта CDBaby. Сайт был открыт в далеком 1998 году и изначально был предназначен для продажи аудио дисков. К слову, на данный момент (по статистике предоставленной самим сайтом) продано более 3 миллионов дисков.

В январе 2005, когда сайт порядочно подрос (количество строк кода достигло 100,000), Дерек объявил на блоге Орелли, что решил переписать весь сайт с нуля на Ruby On Rails. Для этого он нанял, как он сам заявляет, одного из лучших программистов на Rails — Джереми Кемпера (Jeremy Kemper).

В итоге, спустя два года, после различных неудач, оказалось, что процесс переписывания достиг только половины от начального функционала. Что-то само-собой никак не радовало Дерека, так как помимо миграции на рельсы, надо было еще и добавлять функционал, чтобы сайт соответствовал новым веяниями.

Оффтоп

Если посмотреть сейчас на сайт, то он вообще непонятно каким веяниям соответствует, дизайн отсутствует как таковой, и как кто-то отметил в комментах: «Главная страница вашего сайта похожа на спам-сайт», с чем сложно не согласиться.

Если сайт приносит своему владельцу больше 1000$/мес.
-
ему можно простить даже табличную верстку. ©

В очередной раз понимаешь, что неважно сверстан ли сайт на дивах или на таблицах, сочетаются ли на нем цвета или нет, удобные на нем шрифты или нет, юзабельная ли навигация или нет. Важно, что он открыт вовремя и приносит разработчику бабки :)

7 Причин возврата к PHP

Вернемся к нашим рельсам. Итак, Дерек резюмирует:
«Я потратил два года на то, чтобы заставить Rails делать то, что он не должен делать, затем я понял, что мой старый заброшенный язык (PHP) сделает все без проблем, если применить к нему подход, который изучен мной при работе с Rails».

И называет 7 причин возврата к PHP:

1. «Есть что-либо, что может Rails/Ruby, но не может PHP? — Нет!».

«Ruby прелестный. У Rails есть shortcuts (не знаю как одним словом сказать, готовые блоки кода, прим. переводчика), но не настолько большие, чтобы я не смог написать их за день».

Тут явно видно, что человек занимается разработкой и поддержкой одного сайта. У него нет проблемы экономии времени. Если же посмотреть со стороны программиста, который делает 10-ки сайтов в год, то такой подход не очень порадует: каждый раз писать большие блоки кода с нуля.

2. «Весь персонал на PHP: не недооценивайте интеграцию».

Произошла недооценка человеческого фактора. 85 человек пришлось переучивать, клиентов пришлось заставлять привыкать к новой системе, и т.д.

3. «Не хочу того, в чем не нуждаюсь».

«Я восхищаюсь группой разработчиков Rails, которые знают все внутренности этого фреймворка. Но я не знаю. И уверен, что не буду использовать 90% этого кода. При этом в моей самописной системе, каждая строчка 100% нужна. И это позволяет мне чувствовать себя счастливым.»

А здесь налицо особенность всех фреймворков, каждый из них предлагает избыточную функциональность, чтобы покрыть как можно больше требований. Никогда не воспринимал это настолько критично: ну не использую я сегодня этот модуль, но не факт, что завтра не буду использовать, так что пока не буду его выбрасывать.

4. «Он маленький и быстрый».

Это про PHP. «Один сервер с Lamp обрабатывает тонны траффика без особых проблем».

Это его достала пресловутая тормознутость Rails (да, что греха таить, и Zend Framework-а и других продвинутых фреймворков также). Тут палка о двух концах, экономишь на времени разработки — тратишься на железо :)

5. «Это построено по моему вкусу».

«Мне не нужно подстраиваться под Rails. Я «говорю» PHP, что я хочу сделать, как я хочу это сделать и он со мной не спорит»

6. «Я люблю SQL».

«Если говорить о вкусах: маленькая но важная вещь: я люблю SQL. Я думаю в запросах. Я думаю в таблицах. Я всегда боролся с Rails и его миграциях, которые прятали от меня мой любимый SQL».

Тут я с ним солидарен :)

7. «Языки программирования, как девушки: новая лучше, чем предыдущая потому, что Ты лучше».

«Я люблю Ruby за то, что он позволил мне действительно понять ООП. (дальше пару предложений с признанием в любви к Ruby). Но главная причина, почему программист считает, что каждый новый изучаемый язык программирования лучше, чем предыдущий — в том, что сам программист становится лучше!»

Золотые слова!

Выводы

Для себя в очередной раз делаю вывод, что неважно на каком языке ты программируешь, неважно каким фреймворком ты пользуешься, в бутсах какой фирмы ты играешь. Важно, что представляешь из себя ты сам. Правило плохого танцора никто не отменял.

Что можно сказать о случае Дерека. В большинстве его причин возврата к PHP, указаны личные предпочтения и не более того. Уверен, что возьмись он переводить свой сайт на тот же Zend Framework или, скажем, Symfony, причин вернуться на самописный движок уменьшилось бы ненамного.

Любой фреймворк накладывает пусть даже минимальные ограничения на разработчика. В случае же перехода на другой язык программирования — эффект усиливается.

Written by Денис Солошенко

Сентябрь 24th, 2007 at 9:00 дп

Posted in PHP,Rails