Ruby on Rails – kas tai?

Trumpai: Ruby on Rails yra bylų bei Ruby programavimo kalba parašytų “bibliotekų” rinkinys skirtas www tinklapių kūrimui (angl. framework).Jį galima būtu palyginti su phpnuke arba mambo (atnaujinimas: Sergej Kurakin mano, kad “lyginti (Ruby on Rails) framework su [..] PHP-Nuke [..] yra visishkai nekorektishka“, o Jaroslav Šatkevič siūlo Ruby on Rails lyginti su eZ components bei Zend Framework’u (man pačiam neteko artimiau susipažinti su šiais produktais)) (php), zope bei quixote (python) arba spring bei struts (java).

Better web app” (atsargiai – 380MB =)) – yra vienas geriausių palyginimų kuriuos man teko matyti. Įdomiai ir su jumoru yra apžvelgiamos J2EE, Ruby on Rails, Zope/Plone, TurboGears bei JBoss “sistemos” (beje gal kas nors gali komentaruose parašyti taisyklingą žodžio “framework” vertimą =)). Pagal rezultatus parodytus filmo pabaigoje laimi Zope/Plone, nors aš su tuo niekaip ne sutikčiau. Kiek teko su juo dirbti – jis yra arba per “sunkus” (angl. overkill) paprastiems uždaviniams, arba jame per daug “magijos” kai reikia sukurti kažką sudėtingesnio ir jau nekalbu apie ZODB bei dokumentacijos gausą (yra dar kažkas be ZopeBook?). Paskutinis sakinys yra asmeninė autoriaus nuomonė ir jo tikslas nėra sukelti “ugninius karus” (angl. flame wars) (gal kažkas turi vertimą =)).

Be abejo labiausiai įtikinanti medžiaga susidomėti Ruby on Rails yra video Ruby on Rails svetainėje. Visus be išimties mano pažįstamus web programuotojus sužavėdavo ne pasakojimai apie tai koks Ruby on Rails šaunus, o video “kaip sukurti blog’ą per 15 minučių” parodymas.

Reikalingi Ruby on Rails programuotojai

Programuotojai mokantys dirbti su Ruby on Rails reikalingi ir Lietuvoje. Per paskutines 3 savaites (nuo ruby.lt atidarymo) gavau keletą pasiūlymų dirbti su Ruby on Rails. Kai kurie buvo asmeniški, o kai kurie buvo tiesiog parašyti komentaruose. Labiausiai džiugina tai, kad net du iš jų yra iš Lietuvos.

Vienas jų – www.paskambink.lt savininko:

Ieškau PHP arba Ruby on Rails programuotojo.
Darbas nepastovus, apmokėjimas priklausomai nuo darbo sudėtingumo ir atlikimo laiko.
Labai tinkamas variantas moksleiviams ar studentams kartas nuo karto užsidirbti.
Kontaktams: info@dvd.ot.lt
Atlyginimas 50-100 LTL už darbą (kurį galima atlikti per vakarą).

Kitas – Gintaro Pikelio iš “Baltijos Sprendimų”:

Ieškome Ruby/RubyOnRails programuotojo.
Specialių užduočių programavimas. Sukurtų projektų vystymas ir priežiūra. Darbas prie TVS
Miestas: nesvarbu, Klaipėda – privalumas.
Privalumai: darbo patirtis, baigti projektai, atsakingas požiūris į darbą ir savarankiškumas
Kontaktai: Gintaras Pikelis info@bsprendimai.lt

Tai nuteikia optimistiškai, nes jei yra paklausa – turi atsirasti ir pasiūla.

Ruby

Pasak WikipediosRuby – interpretuojama programavimo kalba greitam ir lengvam objektiškai orientuotam programavimui. […] Tai paprasta, mobili ir lengvai plečiama kalba.”

Mmm… “lengvas objektiškai orientuotas programavimas”. Skamba viliojančiai =)

Iš pradžių klausimai į kuriuos reikia atsakyti: taip, Ruby veikia Windows platformoje. Netgi daugiau: Ruby puikiai veikia visose pagrindinėse operacinėse sistemose: Windows, Linux (Unix), MacOs, BeOs, OS/2 ir t.t.

Ruby yra interpretuojama programavimo kalba, o tai reiškia, kad kaip ir daugelis kitų kalbų (Python, Perl, Php, *.bat bylos =)) Ruby kodas nėra kompiliuojamas ir jį paleidžia interpretatorius.

Ruby yra objektiškai-orientuota programavimo kalba: jei tokiose kalbose kaip Python’as arba Java yra objektų “pakaitalų”, tai Ruby faktiškai yra pilnai objektiškai-orientuota (objektiškumas ir buvo viena iš šios kalbos parašymo priežasčių).

Taip prieiname prie sintaksės. Čia norėčiau papasakoti trumpą istoriją:

Man asmeniškai keletą metų teko dirbti su Python’u. Dalinai to reikalavo darbdavys (pagrindinis programavimas įmonėje vyko Python kalba), dalinai tai buvo mano “programming language of choice”. Visą tą laiką lyg ir žinojau, kad egzistuoja tokia Ruby programavimo kalba, kuri yra labiau objektiškai-orientuota bei galingesnė nei Python’as, jaunesnė, šviežesnė, tačiau vis numodavau ranką, manydamas kad kalba yra pernelyg nebrandi, turi nepakankamai dokumentacijos, yra per mažai naudojama ir t.t.

Taip maniau iki tol, kol Slashdot’e ne pamačiau vis dažnėjančių įrašų apie Ruby on Rails. Tada pradėjau nagrinėti šią programavimo kalbą. Jaučiausi keistai: iš pradžių (paviršutiniškai žiūrint Ruby sintaksė yra panaši į Python’o sintaksę) nebuvo intuityviai aišku kodėl reikia visur prirašinėti “end”, bei kodėl nebūtina sąlygose rašyti “:”, tačiau palaipsniui pripratau (dabar (kartais) dirbant su Python’u keista kodėl reikia naudoti toki griežtą “whitespace’a”, bei kodėl nereikia prirašyti “end” sąlygos gale =)). Greitai priėjau “closures” (prireikė laiko perprasti šį principą), bei kitas įdomias “savybes” (bet apie jas vėliau).

Su laiku programuojant Ruby augo mano entuziazmas, ir nusprendžiau juo pasidalinti su vienu iš bendradarbiu (mano manymu labiau patyrusiu už mane programuotoju). Po kiek laiko jis man atsakė, kad jam Ruby “primena Japonų kalbą”. Būtent taip ir pasakė =).

Aš manau, jog tai geriausias apibūdinimas (kaip perkeltine taip ir tiesiogine prasme). Iš pažiūros paprasta: vienas hieroglifas – viena reikšmė (nereikia rašyti žodžio, kuris susideda iš raidžių), tačiau visgi sunki/kitokia/nesuprantama (nes Japonų =)), o po kiek laiko, įpratus, labai galinga ir produktyvi.

Tikiuosi sužadinau Jūsų apetitą bei atsakiau į kelis klausimus. Jei taip tai parsisiųskite Ruby ir išbandykite patys.

P.S. Tai mano pirmas įrašas į šį blogą. Jei turite klausymų / pageidavimų / pastabų – drąsiai rašykite komentarus.