Ruby on Rails – strma krivka uceni

Casto muzete kolem sebe slyset, jake je to jednoduche psat web aplikace pomoci ruby frameworku Ruby on Rails (RoR). Ono tomu tak skutecne vetsinou je, ovsem nez-li se dostanete k vlastnimu psani kodu, nezbyde vam nic jineho, nez se obrnet trpelivosti a vzit si na par mesicu dovolenou na uceni.

Na RoR je dobre videt, jak dvojsecnou zbrani je dynamicnost jazyka (ve smyslu typu i objektoveho modelu). Na jedne strane se jazyk krasne ohyba a vznikaji hlavne diky podpore closures a volne syntaxi elegantni a temer neprustrelna API, na strane druhe moznosti techto API nezjistite jen pouhym pohledem na signaturu (jako vetsinou v Jave), ale az zevrubnym proctenim dokumentace (rdoc). Navic nalezeni odpovidajici dokumentace nemusi byt v pripade dynamicky generovanych API za behu (v RoR vetsi cast) uplne jednoduche a proto jste odkazani na literaturu popr. zdrojovy kod. V RoR je na zacatku temer nezbytny funkcni debugger (mel jsem problem s NetBeans 6 na Mac OS, jehoz reseni naleznete zde (NetBeans 6 and RoR Fast Debugger ).

No konec narku, uceni nikomu neuskodilo. RoR za to stoji, zejmena pokud mate jiz nejakou ruby znalost. Oproti Merbu ma vyhodu vyzralosti a tudiz i vice literatury, jezto je jak bylo popsano vyse, skutecnosti esencialni :). Ovsem, i kdyz to nerad priznavam, pro javistu je prave kvuli prikre krivce uceni na zacatku lepsi posunout se smerem Groovy/Grails.

4 thoughts on “Ruby on Rails – strma krivka uceni

  1. Jindra

    Dovolil bych si nesouhlasit. Na zvladnuti jazyka mi stacili 3 vecery nad pokusama udelat neco slozitejsiho nez CRUD stranky (+ procitani navodu). Po tejdnu vecerniho programovani uz me toho moc neprekvapilo (a uz nebylo co programovat, mel jsem hotovy prepsani aplikace ktery mi puvodne trvalo 3 tydny vecerniho programovani v Apache Turbine).
    Debugger jsem ani nepotreboval najit, natoz pouzit.
    Z myho pohledu cloveka kterej delsi dobu dela v Jave a psal uz v nejakym MVC frameworku bych rek ze mesic uceni je hovadina.

  2. Botanicus

    “V RoR je na zacatku temer nezbytny funkcni debugger.”

    Kupodivu prevazna vetsina Rubystu si to nemysli. Osobne to nechavam bez komentare, pouze bych rad na tento jiste zajimavy fakt poukazal.

    Rails nejsou slozite, jedine, co je treba, je pochopit jejich filosofii, tu Rails-way a pak uz jde vsechno samo.

    BTW dalsi Ruby webovy framework ktery stoji za zminku je Merb, strucne seznameni zde: http://botablog.cz/clanek/merb-rails-po-odtucnovaci-kure O nem pomerne casto na svem blogu pisu, BTW.

  3. Tomas Petricek

    Dovolim si nesouhlasit s tim, ze vami uvedene “klady dynamickych jazyku” jsou zpusobene tim, ze jazyk je dynamicky. Jak closures tak volna syntaxe jsou zakladni vlastnosti jazyku funkcionalnich (ikdyz ten nazev je do jiste miry spis matouci) a ty samozrejme mohou byt jak dynamicke (jako castecne fukcionalni Ruby nebo napr. Scheme/LISP) ale take staticky typovane (takze navic vse ma svuj typ a signaturu, ktera velmi pomaha pri psani kodu – to je napr. Haskell, OCaml, nebo moje oblibene F# :-)).

  4. filemon Post author

    ad Jindra: ano, take me pribyva aplikace jako po masle, proto ostatne RoR pouzivam. Principy si myslim, ze jsem dal take pomerne rychle (alespon Agile Web Development with Rails jsem prelousknul za cca 10 dni). Ale stejne mam obcas problem – naposledy napriklad joiny pres vice tabulek a ActiveRecord, kde mi poradil Honza Sterba (plugin nested has many nebo tak nejak). Jak vite, co vam ActiveRecord vygeneruje do vaseho kodu? – to je i odpoved na Botanica – k tomuhle potrebuju Debugger, protoze mi pomaha prostudovat RoR. Ano, druhou moznosti je dokumentace. Je mozny, ze jsem exot. 🙂

    ad Botanicus: na Merb uz mi nejak nezbyva kdy, vim ze jsi jeho zastance. Bohuzel jsem se nedostal na tematickou prednasku zacatkem cervence 🙁

    at Tomas Petricek: videl jsem, jak vypadaly navrhy Closures v Jave. Na Haskell uz mam dlouho policeno, tak jsem zvedav jak to tam vypada. Dik za osviceni.

Comments are closed.