Vlákno názorů k článku
Začínáme s Ruby: Od nováčka k profesionálovi od polymorpheus - Ta kniha je dobra, ale __nekompletni__. Tzn. jazyk...

  • Článek je starý, nové názory již nelze přidávat.
  • 24. 4. 2007 18:23

    polymorpheus (neregistrovaný)
    Ta kniha je dobra, ale __nekompletni__. Tzn. jazyk Ruby vas nenauci, pouze vam jej predstavi, i kdyz i to stoji za to ($20 za pdf-ko, napr. na apress.com).

    Pro pochopeni Ruby je dobra spis 'The Ruby Way', a pak i 'The Ruby Cookbook'. Doporucuji zacit kapitolami o blocich a objektovem modelu, protoze to jsou koncepty, kterymi se Ruby od ostatnich bezne pouzivanych (ceckoidnich) jazyku nejvice lisi (objekty ala Smalltalk).

    No a samozrejme, ze nelze nezminit klasiku 'Programming Ruby'. I kdyz i tato kniha je nekompletni a tak trochu chaoticka, ale zase jsou v ni vysvetleni, ktera jinde nenajdete (napr. jak funguji metaclasses).

    Celkove lze rict, ze Ruby uz je dnes zdokumentovany pomerne dost slusne. A urcite stoji za pozornost, coz ovsem plati i o jinych 'modernich' jazycich (napr. Erlang).
  • 24. 4. 2007 20:08

    bez přezdívky
    Ruby je teď docela IN, takže kdo nemá problémy s angličtinou pro to sežene obrovské množství zdrojů. Klasika je asi Ruby on Rails od Pragmatic Programmers, které bych přirovnal třeba k PHP od Jirky Koska :-)
  • 24. 4. 2007 20:51

    polymorpheus (neregistrovaný)
    Rekl bych, ze fakt, ze je ted Ruby docela in urcite neni jen diky schopnosti vyvojaru Ruby on Rails (a pragmatic programmers) vyvolat patricny hype, ale hlavne a predevsim tim, ze Ruby je proste fakt dobre vymysleny/sestaveny jazyk. Proste plati, ze Rails je tak dobry, protoze... Ruby (viz jeho objektovy model a reflection/metaprogramming schopnosti).

    Ano, anglicky psane dokumentace o Ruby/Ruby on Rails je fakt spousta. Agile Web Development with Rails vyslo uz dokonce ve druhem vydani.

    Me ale posledni dobou neda spat Erlang...
  • 24. 4. 2007 21:00

    bez přezdívky
    Ach ano, já taky netvrdím, že jde o hype :-) Dávám teď dohromady třetí projekt v Rails, takže už jsem se dostal přes prvotní tápání a docela si práci užívám. Tedy užívám, není to takový porod jako PHP (no flame), navíc kombinace Rails + jQuery se ukazuje jako extrémně produktivní.
  • 24. 4. 2007 21:50

    polymorpheus (neregistrovaný)
    jasne, ja svoji poznamkou nechtel vyvolat flame (i kdyz o PHP bych si klidne zaflamoval, no problem).

    Myslim si, ze nez se rovnou vrhnout na Rails, tak je lepsi se nejdrive (aspon trochu) obeznamit s Ruby. RoR se vsude prezentuje jako uplna brnkacka, ale dokazu si predstavit ten porod, kdyz je treba neco 'ohnout' a clovek nezna poradne Ruby (no flame, please). On totiz Ruby je prekvapive velice bohaty, general-purpose jazyk, ktery sam o sobe stoji za pozornost (a vedle RoR rostou i jine frameworky, viz treba Nitro. Ovsem je fakt, ze RoR je nejdal). Napriklad jeho objektova cast je pokrocilejsi nez treba v Jave (viz instancni promenne, singleton methods, 'class is object, object is class', mixins, atd, proste parada.).

    Mohu-li se pozeptat, o jake projekty se jedna? Jak mate setaven 'web stack' (apache nebo lighttpd, mongrel, jaka databaze). Jak je to s rychlosti (pry je Rails pomaly), atd.?
  • 24. 4. 2007 21:58

    polymorpheus (neregistrovaný)
    jeste dodatek. Mnou vyse prezentovane nazory vnimejte prosim spise v obecne rovine.

    Vase zkusenost s RoR me ale velice zajima, a myslim si, ze v tomto nejsem sam. Kdyz uz jste to nakousl...
  • 24. 4. 2007 23:29

    bez přezdívky
    To ano, je to porod, bohužel jsem už takový, do všeho po hlavě :-) A jinak mi vůbec nevadí, když mi lidi v diskuzích tykají ;-)

    Projekty rád uvedu, jenom z pár důvodů nechci uvádět odkazy, snad se to snese:
    - První je web pro cestovní kancelář, klasický první projekt v čemkoliv, kdy po dokončení je skvělá chvíle to zahodit a začít znova. Ale na svojí obranu musím říct, že to funguje velice dobře a cena byla dumpingová :-) Pouze jsem ani zdaleka nevyužil všechny možnosti, které Rails nabízí, protože jsem je neznal a byl jsem až moc zdegenerovaný PHP. Použito Apache a FastCGI, které se moc neosvědčilo, hlavně zbytečně složitá konfigurace.
    - Druhý je menší portál, který se teď bude předělávat, ale z podnětu zákazníka, kde zkrátka původní návrh byl dost daleko k současným požadavkům. Opět Apache a FastCGI, ale bude se měnit.
    - Třetí je naopak poměrně velká webová aplikace, zaměřená na poskytování specializovaného obsahu (omlouvám se za to mlžení). Bude prakticky celá v AJAXu, protože ten rozdíl je na pohodlí práce znát :-) Nepoužil jsem ale Prototype a Script.aculo.us z Rails, ale přidali jsme jQuery, které pro mě bylo podstatně srozumitelnější a hlavně obsahuje množství různých rozšíření. Rails navíc přidávají každému objektu metodu to_json, a díky téhle kombinaci je programování opravdu lahůdka, oproti PHP mizí asi 50% kódu. Součástí je i přenos dat z původních tří databází do jedné nové, na který jsou použité Rails migrace. Poběží to už na Mongrelu, ale ještě nevím, co bude sedět před ním... Doporučovaný mod_proxy_balancer je až v Apachi 2.2, takže další možnost je kombinace Apache + xxx + Mongrel, kde xxx by byl třeba Pound jako load balancer.
    Databáze ve všech případech MySQL, ale díky ActiveRecord prakticky není potřeba na ní sáhnout a je jedno co všechno umí nebo neumí.

    Jinak kdybych měl bleskově shrnout, co se mi na Rails líbilo/nelíbilo:
    - Ruby je opravdu skvělý jazyk a má určitě dost velký podíl na úspěchy Rails.
    - Super jsou pluginy, Rails komunita je aktivní a dost věcí už vytvořila.
    - Stejně tak super jsou i gemy pro Ruby obecně :-)
    - Díky přístupu "convention over configuration" odpadá množství otravného psaní
    - Ruby i Rails vyznávají přístup nejmenšího překvapení a je to znát. Není potřeba moc hledat v dokumentaci, semtam jsem třeba potřeboval něco nového, představil si ideální postup jak to udělat a byl příjemně překvapený, že fungoval.
    - Otrava je naopak absence podpory Unicode. V Rails 1.2 se to vylepšilo rozšířením třídy String o vlastnost chars, což je záchrana.
    - Rychlost je klasicky "fast enough", jako všechno v Ruby. Díky propracovanému cachování se dá všechno dost urychlit, u webových aplikací je ostatně většinou největší brzdou databáze.
    - Problémem může být, když někdo použije ActiveRecord způsobem, na který není stavěný, třeba získání tisíců řádků z databáze. Tam jde výkon dolů dost rychle, protože pro každý řádek se vytváří nový objekt.
    - Každá instance Mongrelu nebo FastCGI zabírá dost paměti (v porovnání třeba s PHP). Navíc třeba FastCGI se spouští několik sekund, což může být neúnosný a je potom potřeba, aby běželo pořád.

    Ok, už jsem se trochu moc rozpovídal, dlouhé romány většinou nikoho nebaví :-)
  • 25. 4. 2007 9:33

    polymorpheus (neregistrovaný)
    Fakt dik za odpoved. Sdilenych zkusenosti o Rails u nas mnoho neni.
  • 25. 4. 2007 9:30

    polymorpheus (neregistrovaný)
    previous_post_as_string.sub!(/instancni promenne/, 'instancni promenne tridy (class instance variables)')