?

Log in

No account? Create an account
Main

Флейм дня. Итоги.

Ну что же, Jamie Flournoy весьма удачно резюмировал статью и комментарии к 7 reasons I switched back to PHP after 2 years on Rails.


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

Рельсы -- правильное решение для сайта CDBaby, независимо от того, что думают основатель/дизайнер/разработчик проекта.

Если ты не согласен с дизайном, диктуемым рельсами, то ты не прав, тебе нужно изменить дизайн, если не весь бизнес в соответствии с рельсами

PHP отвратителен и хорошего кода на нем не бывает. И наоборот Ruby хорош и в любом случае точно лучше PHP.

Объекты лучше, чем SQL и таблицы. Язык предметной области хорош, если это Руби, использование SQL в качестве такого языка и языка манипуляции данными -- ошибочно, поскольку это не Руби. Также факт того, что один человек может написать за два месяца на PHP то, работает вместо разработки двумя программистами на Рельсах в течение двух лет совсем не делает чести PHP+SQL. Поскольку объекты более продуктивны.

То что ты владелец и разработчик успешного он-лайн магазина, сделанного с нуля, ведешь колонку O’Reilly, нанял разработчика из Rails core team, который сейчас работает там же в той же компании, совсем не значит, что перед нами люди с достаточным интеллектом для разработки на руби. И ты еще должен доказать миру, что то, что ты хотел сделать было невозможно сделать на Рельсах, перед тем, как мы дадим тебе право судить о принятых технических решениях.

Если тебе не понравились Рельсы -- это потому, что они слишком хороши для тебя. Вместо опыта реального бизнеса и работающего он-лайн магазина, и написания ПО для этого бизнеса. Вместо найма одного из лучших специалистов по Руби, сходил бы ты поучиться и получить диплом Computer Science.

Лучший комментарий на статью от разработчика из рубинового лагеря:
Immature developer attitudes revealed in flames regarding CDBaby

Я к тому, что пора бы остыть с евангелизмом, ага :)

Comments

Domain Specific Language — язык предметной области, а не доменной.
Спасибо. поправлю сейчас.
Вообще, PHP не сильно хуже любого другого скриптового языка. Как минимум, не сильно хуже. И объекты там тоже есть. И кодовая база огромная. Те же библиотеки темплейтов, форумы, блоги и вики... Вполне очевидно, что PHP = Rubby +- все остальное, действительно, Евангелизм
Ой нет - совсем не равно! Просто сошлись-таки в одном типе приложений. Нет, они разные конечно и Руби сильно красив, и рельсы штука отличная и научиться можно многому из Рельсов, чего в ПХП не было. И в руби действительно есть динамические моменты, которых нет в ПХП.

Евангелизм однако излишний имеет место быть.
Бросай пых-пых, 
    вставай на рельсы,
Даешь 
    программный 
         тезис 
             апрельский!

Шым тыкыдым вау-вау :)
А вот серебрянная пуля так и осталась в сказке. :)
Ну да. Учитывая тот факт, что основная грёбля приходится на HTML/CSS/Jscript/Ajax, которое ужоснах и везде разное, язык написания сервлетов отходит на второй план.
Тут я тоже не соглашусь. Современные сайты имеют более лаконичный дизайн, а браузеры более стандартную поддержку css и javascript. Есть, наконец, прототайп+скриптакулос и extjs поверх него. Как раз эта работа делается за обозримый период времени. И повышенному вниманию JS обязан AJAX взаимодействием с бэкэндом.

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

И все из-за подхода -- на скриптовом языке пишем скрипты.

Просто как оно во времени развивалось -- сначала писалось что-то простое на перл -- гостевухи, форумы да и все. Потом пришел пхп и форумы с гостевухами стало писать легче. Веб развивался и потребовались системы посложнее -- и оказалось, что выбора особо нет -- либо дешево и сердито на скриптах, либо довольно дорого, неуклюже, но солидно на JAVA. На джаве программеры плевались от громоздкости приложения из 2-3-5 формочек, на перле и на пхп -- что как только кода много приложение становится неуправляемым.

Что там делали с джава я не знаю, но насколько слышал -- появлялись облегченные фреймворки. Появился более объектный пых. И на пхп же тоже стали засматриваться на джаву --стали появляться фреймворки WACT, Mojavi что-то еще. Язык-то не очень был предназначен для хардкорного девелопмента, но что делать? Джава -- это совсем другой мир.

Плюс разработчики самого пыха недолюбливали ООП практики и некий сдвиг пошел только сейчас, когда они свой фреймворк стали делать. Итак на скриптовом языке есть MVC, ORM и прочие убогие относительо старших братьев реализации. Народ резко понимает, что разработка больше не скриптинг, а процесс требующий знаний. Возникает интерес к паттернам (любимый набор пхп девелопера -- Refactoring, GoF, PoEAA -- совсем не про пхп книги).

И вот тут приходят рельсы. Джава девелоперам они дает легкость и простоту, предоставляя изящный ORM Active Record и изящный язык Руби. PHP девелоперам они дают ORM, который пока красиво на PHP не реализовать, плюс организацию проекта, и инструметы вроде Capistrano для развертывания.

Язык, что там говорить, более гибкий, чем пых: iterators and closures (based on passing blocks of code), operator overloading, cooperative multi-threading on all platforms using Green threads, introspection, reflection and metaprogramming -- все это в ПХП проблема так или иначе.

Плюс агрессивный маркетинг. Естественно с обоих сторон туда перешло довольно много людей. И им там нравится :) Но зачем-то они пинают тех, кто остался :)

А перейти не всегда удобно -- и переписывать неохота, и что-то из хороших идей и переписать можно, может быть и не так красиво. Да и потом этот php в большинстве случаев just works. Опять же, как говорили на agiledev.ru -- сегодня руби на рельсах, а завтра хаскел с холма и опять все заново :)

Надо ли на скриптовом языке писать вот такие вещи, как Symfony, Doctrine, Propel, Phing (или более изящный вариант -- pake, но сейчас это часть Symfony)? может и не надо, Java это весьма непростой переход, а значит будем писать пока не начнутся виртуальные машины и прочая мутация, которая в Руби кажется уже имеет место, да что там, есть JRuby.
Под агрессивным маркетингом я имел в виду вот это:
http://www.railsenvy.com/tags/Commercials

Ссылки забыл поставить в конце:
Symfony
ORM Propel
Phing
Никак не прощу симфонийцам, что убили pake, как отдельный проект
ORM Doctrine