Jsem jediny, komu prijde, ze se z Rails posledni dobou dela strasny hype? Nerikam rozhodne, ze to je spatny framework, to rozhodne ne, ale dela se z nej posledni dobou strasny hype. Takovych frameworku jako Rails tu uz bylo a je pro ruzne jazyky - namatkou co mne napada Symphony, Java Server Faces, ASP.NET, Seam, etc.
Spis mam pocit, ze se s temi frameworky roztrhl posledni dobou pytel :-)
Samozřejmě, ale podle mě jde o hype opodstatněný. Srování s ostatními frameworky dost pokulhává, ASP.NET nebo JSF jsou někde úplně jinde a Symfony je prakticky kopie Rails pro PHP.
A že se s frameworky roztrhnul pytel znamená, že čím dál tím víc webových programátorů dostává rozum :-)
Kdyžtak ty Rails, ne ten Rails :-) Pro mě jsou zajímavé, že díky nim dokážu pracovat mnohem efektivněji a rychleji.
A jinak zajímavost/nezajímavost je subjektivní - podívej se na ně, třeba tě zaujmou, třeba ne. Pokud ne, tak ti snad nebude dělat vůbec žádný problém onen hype ignorovat :-)
Dokazte ze je Symfony kopie Rails. MVC je dostatecne zname. Jako model pouyiva Propel, ten vychazi s nejakeho Apache projektu, helpery jsou inspirovane v Rails. Existuje preci vice frameworku. Mam pocit ye posledni dobou vsichni jen probiraji RoR vs. zbytek sveta, pricemz RoR je slovo bozi.
To není moc složité, namátkou jsem kliknul na jednu kapitolu v dokumentaci Symfony http://www.symfony-project.com/book/trunk/09-Links-and-the-Routing-System a ta podobnost opravdu nebude náhodná ;-) Jinak já to nemyslel ve zlém, je mi jedno úplně jedno když se vykrádají dobré nápady, ostatně proč znovu vynalézat kolo.
Možná byla chyba, že jsem v rozhovoru více nerozvedl důvody, proč jsme nevybrali jiný MVC framework. Nebylo místo a myslel jsem, že by to ne každého zajímalo. Jen krátce: zajímali jsme se o frameworky TurboGears, Django, Symphony a Zend Framework a vycházeli jsme rovněž ze zkušeností s Java Spring.
Proč zrovna Rails:
1. Convention over configuration, viz Google. Diskutabilní, ale u mě je to jednoznačně výhoda.
2. Velmi dotažený objektový přístup - velmi pozdní vazba, zprávy, reflexivita, moduly a mixiny, closures a iterátory, striktně private atributy.
3. Efektivní a přehledná syntaxe.
4. Velká komunita. Komunity okolo PHP či Pythonu jsou příliš rozdrobené do mnoha různých frameworků.
Co se týká srovnání absolutního výkonu, někde jsem viděl benchmark, z kterého vyplynulo, že Django je o něco rychlejší než Rails, zatímco ty jsou o něco rychlejší než Symphony. Nicméně důležitější je samozřejmě škálovatelnost výkonu. Na toto téma jsem žádné seriózní měření nenašel. My jsme ověřili, že Rails škálovatelné jsou, a to dostatečně pro naši potřebu, což samozřejmě není žádná obecně použitelná informace.
No s tim kopirovanim Symfony od Rails bych to asi az tak cerne nevidel, samozrejme myslenka generovani CRUDU je prevzata, ale jinak ma symfony ponekud jine pouziti a uprimne pro programatora zvykleho pracovat s php je 10x jedodussi se naucit pracovat s frameworkem nad PHP nez se ucit syntax ruby.
A kde jinde najit pro takovou vec podporu nez u opensource (resp. linuxove) komunity. Ta prece miluje, kdyz nekdo znovuobjevuje kolo (x office baliku, x desktopovych prostredi, x prohlizecu ...).
Jeste cekam na nejakeho dobraka, ktery do tohodle vlakna napise, ze to je dobre, protoze si clovek muze vybrat. To by byla pravda, kdyby naprosta vetsina nebyla nepouzitelna. Napriklad framework, ktery musim doprogramovat (!), abych mohl zakaznikovi dodat prostou webovou aplikaci.
A kde jinde najit pro takovou vec podporu nez u opensource (resp. linuxove) komunity? Ta prece miluje, kdyz nekdo znovuobjevuje kolo. Kolikrat uz to tu bylo? Kolik jen existuje office baliku, desktopovych prostredi, prohlizecu kdeceho, linuxovych distribuci, ...
Jeste cekam na nejakeho dobraka, ktery do tohodle vlakna napise, ze to je vlastne dobre, protoze si clovek muze vybrat. To by byla pravda, kdyby naprosta vetsina nebyla nepouzitelna. Napriklad framework, ktery musim doprogramovat (!), abych mohl zakaznikovi dodat prostou webovou aplikaci.
Jeste jsem chtel dodat, ze az budu velky a budu mit opravdu hodne penez, ze zalozim firmu, ktera dela bezne webove aplikace a budu je delat na platforme s nasledujicimi parametry:
- bude ji znat pokud mozno co nejmene lidi,
- budu ji muset nejprve dodelat, abych ji mohl pouzit,
- vsechny lidi budu muset sam zaskolit,
- vsechny nove prichozi budu muset znova skolit do toho, co jsem vymyslel noveho, protoze i kdyz treba budou znat dany framework, tezko budou znat ma rozsireni,
- jediny dustupny a rozumne pouzitelny server bude za penize, ale pujde to nejak odrbat,
- jeho alterativou pak bude pasak, ktery se musi 400x denne restartovat.
Pak to cele budu opevovat a budu mluvit o "mnohem vetsi funkcionalite a stabilite". Taky nezapomenu psat rafinovane maskovane PR clanky, kde budu vtipne pouzivat terminy jako "velmi uspesne nasazeny projekt". A kdyz se najde clovek, ktery se bude umet dobre zeptat ("Mnoha opatrným lidem se stále zdá příliš riskantní ..." - jakoby to ti zpatecnici stale nechteli pochopit, co?!), bude to extaze.
napriklad? kopie RoR nad php ci python a podobne frameworky pro (jazyky jako :-)) Java (coz si myslel ze :-)) si muzes rovnout odpustit. Psat webovou aplikaci v ruby nebo v Jave je dost rozdil. Ale popravde tyhle java-based frameworky pro web apps neznam, pokud je nektery z nich tak snadny na pouzivani jako rails rad se poucim
No hype to je desny, ale nespojoval bych zrovna RoR a JSF nebo Seam... To je jak spojovat JSF a Struts... Jinak clanek je fajn, vyznelo z nej to spravne - neni to na cem rozumne provozovat v clusteru. A muj nazor je takovy, ze Ruby a RoR je jedna, velikanska bublina, ktera driv nebo pozdeji praskne...