Karel Minařík: Ruby On Rails se snaží prosazovat doporučené postupy webového vývoje

David Šmehlík, 05.06.2009, 10:58, 13,644 přečtení

Karel Minařík

Pozice: Informační architekt, art director, Ruby programátor
Profil: blog, osobní stránky

Karel Minařík je webový designér a vývojář na volné noze. Vytváří grafická rozhraní webových stránek a aplikací, kód v HTML/CSS, Ruby a Javascriptu. Pravidelně publikuje open source projekty na serveru Github a nepravidelně pak články na blogu Restafari. Konzultuje a školí v oblasti interaktivity, vývoje v Ruby a používání verzovacího nástroje Git. Přednášel o webdesignu na Institutu Digitálních Médií a přednáší úvod do programování na FF UK. Žije v Praze – Podolí se ženou a dvěma dcerami.

První část rozhovoru s Karlem Minaříkem o Ruby on Rails a programátorských přístupech.

Jak představíš Ruby on Rails lidem, kteří o nich nikdy neslyšeli?

Je to framework na vytváření webových aplikací a stránek, který je zaměřený na efektivitu práce. Snaží se usnadňovat rutinní činnosti, které je programátor nucen dělat – manipulace s obsahem v databázi, zobrazování a zpracování formulářů, Ajax, atp. Důležité je, že se snaží implementovat ta nejlepší doporučení webového vývoje. Lidé postupně přicházejí na to, co funguje a co ne. Rails se snaží tyhle postupy protlačovat a udržovat.

Kde a kdy ROR vzniklo?

Vzniklo v roce 2004. Napsal ho dánský programátor David Heinemeier Hansson, který tehdy dostal zakázku od firmy 37signals (tvůrci Basecamp, pozn. redakce) na vytvoření nástroje pro projektové řízení. Po zkoumání dostupných platforem zjistil, že nic není tak dobré, aby na tom takovou aplikaci postavil. Začal psát Basecamp a z něj postupně extrahoval tenhle framework.

Důležitá vlastnost Rails je tedy právě v tom, že nejsou napsané na zelené louce. Vznikly přímo „z praxe“. David H. Hansson extrahoval z projektu Basecamp framework, vydal ho v nějaké 0.x verzi, která je oproti té současné samozřejmě legrační, spousta věcí nefunguje tak hladce, jako dnes. Poté se vcelku úspěšně vydal na takovou „křižáckou výpravu“ protlačit Rails do povědomí. Někdy na přelomu let 2005/2006 došlo podle mého názoru k největšímu návalu zájmu.

Máš představu o tom, jak vznikl název Ruby on Rails?

To vůbec nemám. Myslím, že to vychází z fráze „put something on rails“, tedy něco jako:„dát tomu švih“ nebo „něco rozjet“.

Jak jsi se k Rails dostal?

V době, kdy jsem objevil Rails, jsem už nějaký ten rok skoro vůbec neprogramoval. Pracoval jsem ve webové agentuře jako informační architekt a art director. Objevil jsem, stejně jako téměř každý, Rails na základě 15 minutového screencastu „Udělejte si blog“. Když jsem tohle viděl, řekl jsem si, že tímhle způsobem bych chtěl dělat weby a aplikace, že takhle je to správně. Začal jsem se Rails více zabývat, zkusil si v nich nějaký projekt a dnes mě nejvíc živí právě Ruby a Rails.

Vyvíjel si už předtím v Ruby?

Ne, k Ruby jsem se dostal přes Rails. Dlouhou dobu jsem pracoval jako PHP vývojář na volné noze a předtím jsem dělal třebas ActionScript ve Flashi, apod. Nejprve jsem objevil Rails a teprve poté Ruby, musel jsem se s ním nějak poprat. Dnes bych raději asi neprogramoval vůbec, než programoval v něčem jiném než v Ruby (smích).

Četl jsem, že přednášíš Ruby na Filozofické fakultě UK. V rámci jakého oboru a proč zrovna tam?

Je to v rámci oboru „Studium nových médií“, což je obor pod Informační vědou. Když jsme upravovali osnovy předmětu, říkal jsem si, že je nesmysl učit lidi o něčem jako jsou „nová média“, pokud nemají žádnou představu o tom, jak to funguje „uvnitř počítačů“. Tento kurz slouží jako základní úvod do programování, architektury a historie výpočetní techniky a programovacích jazyků, co to je objektově orientované programování, proč je to důležité paradigma, atd.

Rails se přednášejí i na Unicorn College. Nemáš představu, jak tato výuka probíhá u nich?

Unicorn učí jednak přímo Ruby, jednak Rails. Jejich kurz je daleko intenzivnější a rozsáhlejší. Především se snaží vychovávat z lidí programátory. Já se snažím studentům spíš ukázat, co je to kód a že zvládnou napsat jednoduchý program sami, že v tom není tolik „zaříkávání“, jak si myslí.

Začal jsi psát evangelizační blog o ROR. Proč si po pár příspěvcích přestal?

Formát, který jsem pro blog zvolil, byl dost náročný. Ty články jsou velice rozsáhlé a intenzivní co se týče hloubky informací. Dalo to dost práce. Ale určitě to splnilo svůj účel prezentovat do hloubky možnosti Rails. Chtěl jsem popsat, proč je to zajímavé a důležité. Kdybych tenhle formát dodržel, napsal bych během chvíle knížku…

Tím jsi mi nahrál na mou další otázku. V jednom svém zápisu tvrdíš, že jediná kniha v Čechách o Rails je v podstatě paskvil. Nepřemýšlel jsi napsat publikaci sám?

Samozřejmě přemýšlel, i s kamarádem Jirkou Kubíčkem, s kterým se propagaci Rails u nás věnujeme. Nejsem si jist, jestli je to projekt, do kterého má smysl investovat energii a čas. Ze strany nakladatelů zatím žádný zájem nebyl. Když se Computer Press snažil vydat knihu o Rails, některé jsem jim doporučoval. Oni si nakonec vybrali asi tu nejhorší, kterou mohli.

Proč se o Rails v Čechách tolik nemluví?

To je zajímavá otázka, která v sobě skrývá víc podotázek. Ve světovém kontextu jsou Rails známy velice dobře. Existuje dokonce i určitá forma averze vůči počáteční propagaci Rails.

Asi před 3 lety se objevila vlna „Jsou tu Rails a jsou nejlepší!“…

Je to pravda, byla to ta doba, kdy vzniklo najednou více věcí. Kolegové z Ostravy zorganizovali konferenci „Ostrava on Rails“, kam pozvali hodně zajímavé zahraniční přednášející. Já jsem začal psát na blogu, Honza Molič vydal nedávno předtím seriál článků na Rootu apod. Ten ústup je možná dán i tím, že my sami už to nadále tak aktivně neděláme a nenašel se nikdo nový, kdo by to stimuloval místo nás.

Není to tak trochu otiskem užitelnosti tohohle frameworku?

Myslím si, že ty důvody jsou dva. Tím prvním je, že se ho lidi bojí a funguje tu český konzervatismus. Hodně lidí se nechce učit nic nového a budou všechno dělat tak, jak jsou zvyklí, dokud udrží myš v ruce. Ten druhý je to, že se bojí, že svůj projekt nebudou mít kde nainstalovat, protože tu není dostatečná podpora u hosterů.

Přesně tyhle dva mýty jsem se snažil vyvrátit v přednášce na WebExpu. Co se týče deploymentu Rails aplikací, Jirka Kubíček provozuje Railshosting.cz, což je podle mě hosting se světovými parametry pro Rails aplikace, srovnatelný s tím co poskytuje Engine Yard nebo Brightbox, ale za zlomek ceny. Dokonce má i mod_rails hosting zdarma. Každý, kdo chce Rails vyzkoušet a dodrží doporučený postup, si může aplikaci vystavit. Nikdo mu nebude bránit ani v tom, provozovat si tam v rozumné míře „komerční“ Rails aplikace. Bylo by pro mě hodně zajímavé slyšet, co lidi od Rails odrazuje.

Myslíš, že má u nás Rails budoucnost z hlediska masivního rozšíření?

Myslím, že ano. Když se člověk dnes podívá na krajinu webových frameworků, Rails je jedna z jejích velmi důležitých součástí. Je to důležitá platforma pro různé start-upy, které si chtějí udělat „vlastní Twitter“.

Pak je tu například Django, které jde na webový vývoj z trochu jiné strany (vzniklo v téměř stejné době jako Rails). Zabývá se spíše obsahovými věcmi, má integrované administrační rozhraní. Je ideální pro „časopisecké“ weby.

Pak je tu Zend a v českém kontextu Nette, které se snaží myšlenky těchto pionýrů protlačit i na PHP platformu. A to úspěšně, jelikož je lidé používají.

A konečně Microsoft nyní přichází s frameworkem ASP.NET MVC, který otevřeně přiznává inspiraci Rails a mně osobně z povrchního studia připadá trochu jako „Rails z roku 2007“.

Všechny tyhle technologie spojují podobné myšlenky: jsou radikálně pragmatické a ne „akademické“, snaží se co nejvíce usnadnit rutinní činnosti, aktivně prosazují doporučené postupy. A Rails je z mého subjektivního pohledu největší inovátor mezi nimi.

Nemáš pocit, že se vývojáři častěji pouští do vývoje spíše na PHP frameworku, jelikož jsou schopni najít mnohem více kolegů, kteří jsou jim schopni s vývojem pomoct?

Určitě ano. To je podle mě dokonce jeden z hlavních důvodů. Já tenhle tlak necítím, protože pokud potřebuju něco najít na Google, najdu to snadno – těch zdrojů je opravdu hodně. Komunita lidí kolem Rails je opravdu silná a pravidelně publikuje. Pochopitelně je pro někoho problém jazyková bariéra. Ale to je pak lepší učit se nejdřív jazyk anglický a pak až jazyk programovací (smích).

Dostal jsi se někdy k vývoji v Djangu?

Zkoušel jsem si ho lokálně, abych zjistil, jak se v něm pracuje. Je postaven na podobných principech jako Rails. Myslím, že je to silný a dobrý nástroj spíše na „obsahově orientované“ věci. Django jde zajímavou cestou, a to především v modularizaci celého vývoje a architektury. Snaží se o to, aby se jakákoliv komponenta typu „komentáře k článkům“ nebo „hodnocení fotografií“ dala snadno najít a bylo jednoduché ji včlenit do své aplikace. Chtějí narušit tu představu, že aplikace je monolitická věc, která má všechno „uvnitř“. A myslím, že se jim to daří…

Existují v tuto chvíli nástroje napsané čistě v Rails? Blogovací systémy? CMS systémy v open source podobě?

Existuje toho dost, ale kvalita není vždycky zaručená. Například blogovací nástroje na Rails se dnes už v podstatě nevyvíjejí. Ty nejzajímavější dva, Mephisto a Typo, jsou trochu opuštěny. Ale na serveru Open Source Rails můžete najít obrovské množství Rails aplikací, včetně kompletního „social website“ s uživateli, komentáři, sdílením fotografií, apod.

V Ruby komunitě je nyní „v módě“, že když potřebuji blog, napíšu si ho přece sám, například ve frameworku Sinatra, nebo jako generátor a „uploader“ statických stránek. Je vidět i určitý ústup od Rails přímo k Ruby a k menším aplikacím, které si spolu povídají přes webové služby, fungují jako „middleware“, apod. Zájemce bych odkázal na přednášku In a World of Middleware, Who Needs Monolithic Applications?

Petr Mára ve včerejším rozhovoru tvrdí, že je paradoxní psát si spoustu funkcionalit znovu, namísto využití hotových řešení. Proč se programátoři snaží si veškeré aplikace vytvářet sami po tisící znovu?

To je složité. Petr Mára má samozřejmě pravdu, ale ne úplně. Asi nejzjevnější odpověď je, že programátory baví vymýšlet nové věci a baví je „programovat“. Každý projektový manažer ví, že si musí dávat pozor na to, aby mu lidé nezačali „programovat“. Začnou vymýšlet, programovat a implementovat vlastní fotogalerii a budovat vlastní framework.

Na druhé straně, každý, kdo někdy programoval, ví, že si to manažeři představují jednoduše. Mají pocit, že existují moduly, které programátor jen zapojí a bude to fungovat. Platí ovšem pravidlo, že nám na těchto modulech třeba 10 až 20% věcí nevyhovuje a potřebujeme je jinak. Tohle je ta „stopka“.

Důležitá otázka je ale právě to, jestli těch 10, 20% věcí „jinak“ potřebujeme. Necitlivě nebo nekompetentně specifikované požadavky na projekt pak mohou zásadně limitovat použití produktů třetí strany.

Proč psát čtečku PDF, když můžu používat API webových služeb a jejich výstupy si zpracovat na vlastní straně jak potřebuji?

Tohle říkáš správně a myslím si, že tomu hodně lidí nerozumí nebo si to neuvědomují. V těchto službách je obrovské množství základní funkcionality, kterou můžu využít a stavět teprve na ní. Pokud jsem šikovný, můžu se postavit jakoby nad ně a pokrývat si své specifické potřeby. Myslím, že kooperace těchto služeb je budoucnost webu a webových aplikací. S kolegy jsme nedávno přesně takto využili služby Flickru místo přístupu „pojďme postopadesáté implementovat file upload“ pro web Pražského Jara.

Vím o tobě, že si přednášel na Institutu digitálních médií. Co se s ním vlastně stalo?

Přednášel jsem úvod do webdesignu a byl to takový pohled z výšky na to, co to znamená být webdesigner. Když o sobě řekneš, že si webdesigner, co vlastně děláš? Kreslíš ve Photoshopu rozhraní? Implementuješ rozhraní do HTML a CSS? Kreslíš wireframy?

Chtěl jsem lidem, kteří institut studovali, dát do života silnější orientaci v tom, jak vlastně vývoj webu probíhá. Někdo píše texty, někdo to musí naprogramovat a někdo to „zlomí“. Klidně to může být jeden člověk, ale ta rozprostřenost je veliká. Snažil jsem se taky jim ukázat, že půlka webdesignu je psychologie a ta druhá marketing. Zbytek je typografie (smích).

No a co se s institutem stalo? To se zeptejte spíš Radky nebo Honzy Tippmanových, ti vám toho poví mnohem víc.

Druhá čst rozhovoru vyjde na 30minut.cz příští týden.
Přidej článek do své sociální sítě:
  • Facebook
  • TwitThis

Zaujal vás rozhovor? Přidejte si RSS 30minut.cz do své čtečky.

Komentářů: 10

Michal Valoušek

05.06.2009

> Pak je tu například Django, které jde na webový vývoj z trochu jiné strany (vzniklo v téměř stejné době jako Rails). Zabývá se spíše obsahovými věcmi, má integrované administrační rozhraní. Je ideální pro „časopisecké“ weby.

Podobně jako Railsy vznikly při psaní Basecampu, Django se zrodilo ve společnosti World Online při tvorbě online novin Lawrence.com. „Obsahová sudička“ tedy u něj opravdu stála…

Neznamená to ale, že by Django nešlo použít na „aplikační“ weby – např. BitBucket, alternativa k GitHubu, je postavená právě na Djangu. Před dvěmi lety jsem se stejnými kolegy, které Karel zmiňuje v odstavci s Pražským jarem, naprogramoval jednoduché učetnictví MaDatiDal.cz. Příkladů by se jistě dalo najít víc.

Pro mě osobně byla volba Railsy vs. Django záležitost jazyka. Ruby (narozdíl od Pythonu) mi prostě k srdci nepřirostlo.

Karel Minařík

05.06.2009

@Michal – však právě proto je tam to spíše :) Asi mělo být i v další větě. Samozřejmě, že jde Django použít i na aplikační weby, jako je třeba pionýr http://www.everyblock.com/

Adam Javůrek

05.06.2009

Zmíněný kurz náhodným kolemjdoucím neprogramátorům vřele doporučuju, byl super.

Jiri Benes

05.06.2009

RoR se mne moc libilo, zkousel jsem si ho. Pak jsem si precetl clanek jak clovek prevadel 2 roky neuspesne svuj web z PHP na ROR a vratil jsem se do reality.

Karel Minařík

05.06.2009

@Jiri: Nebyl to nahodou ten zmateny clanek http://www.oreillynet.com/…_to_p_1.html ? Ten clanek, kde neni vlastne jediny seriozni – technicky, politicky, etc – duvod proc se cdbaby.co „vratilo“ k PHP? („I dream in queries“ zni hezky, ale neni jasne, co to znamena, kuprikladu. V ActiveRecord si muze psat queries az se z nej bude kourit.) Samozrejme, ze „ne kazdemu vse vyhovuje“, ale jestli na to nekdo prichazi dva roky, tak to bych se trochu bal :) Jestli je takovy clanek zaroven duvodem, proc se „vratit do reality“, pak se bojim jeste vic :)

(Nejaky background k tomu uvadi primo Jeremy Kemper na starsim clanku z blogu 37Signals: http://www.37signals.com/…its-of-rails)

Jiri Benes

05.06.2009

@Karel: ano to je ten clanek.

Karel Minařík

05.06.2009

@Jiri: Myslel jsem si to. Ten stoji za pozornost jen jako jeden ze zpusobu demagogie a take jako dukaz, ze ani Rails nejsou ona myticka „stribrna kulka“. Navic, kdyz se nekdo pusti do „big rewrite“, jeste k tomu poradne nasnupnuty mega-cirkusem okolo Rails v roce 2007, to nemuze dobre dopadnout :)

Filosof

05.06.2009

Muhehe. „Kreslíš ve Photoshopu rozhraní? Implementuješ rozhraní do HTML a CSS? Kreslíš wireframy?“ Přesně tohle dělám. Ale když připravuju argumentaci klientovi pro redesign nějakého projektu, tak píšu JEN o psychologii, marketingu a typografii :-)

Filosof

05.06.2009

[OFFTOPIC]: provozovateli tohoto webu – odeslání komentáře hodí tento warning – a dělá to už měsíce..

Warning: is_file() [function.is-file]: open_basedir restriction in effect. File(/icon_smi­le.gif) is not within the allowed path(s): (/var/home/www/30mi­nut.cz/:/usr/sha­re/php:/tmp) in /var/home/www/30mi­nut.cz/www/wp-content/plugin­s/texy2-plugin-wordpress/texy­.compact.php on line 782

Imagir

12.06.2009

My se nebojíme :-)
KS

Vložte svůj komentář