Artikkeli

Olen kokeillut ruby-ohjelmointikieltä vähän Rails for Zombies-oppaan parissa. Siinä ei juuri oppinut, koska ei tarvinnut paljoa ajatella, vaan opas näytti suoraan mitä pitää kirjoittaa. Nyt olen kolmena iltana opetellut rubya Project Eulerin tehtäviä ratkomalla. Pari tuntia illassa ja 26 tehtävää on tähän mennessä ratkottu (1-25, 28). Project Euler on ollut ihan hyvä tapa opetella uutta ohjelmointikieltä… ainakin alkupään tehtävien kanssa. Syntaksi ja perusrakenteet tulevat kyllä tutuiksi. Valitettavasti tehtävät ovat melko matemaattisia, mikä on ainakin minulle ollut hidaste, koska ratkaisuihin olisi varmasti voinut käyttää jotain kaavoja, joista minulla ei ole hajuakaan. Suurin osa tehtävistä onkin mennyt bruteforcella.

Ratkaisuni bitbucketissa

Ruby on ollut syntaksiltaan helppo oppia. Perusrakenteet tulivat sujuvasti jo toisena iltana. Olen käyttänyt pelkkää notepad++:aa ja ajanut koodit komentoriviltä. Koodit ovat pääsääntöisesti olleet syntaksiltaan valideja ensimmäisellä yrityksellä. Toistaiseksi Googlella on löytynyt apu kaikkiin ongelmiin parissa minuutissa. Eniten pähkimistä on tullut muuttuja++ aiheuttamasta syntaksivirheestä. Rubyssa ei ilmeisesti ole tuota operaattoria. C#:n piirteet ovat myös lihasmuistissa ja siitä johtuen tulee usein lisättyä puolipisteitä rivien loppuun ja sulkeita iffien ja luuppien ehtoihin. Ruby näyttäisi olevan täynnä pieniä apumetodeita ja vastaavia mm. merkkijonojen ja taulukoiden käsittelyyn, jotka C#:ssa joutuu tekemään itse. Huonona puolena näistä apujutuista on vaikea valita se paras ja ainakin minun mielestäni ne eivät ole kovin hyvin nimettyjä.

Näiden kokemusten mukaan rubyn perusteet on helppo oppia päivässä-kahdessa, mutta kuten kaikkien kielten kanssa, suurin haaste on oppia tuntemaan parhaat käytännöt ja riittävän suuri määrä kirjastoja, jotta osaa tehdä hommat tehokkaasti. Rubyssa ei ole turhaa boilerplate-koodia ja pienten koodipätkien testailu on sillä mukavaa, koska ei tarvitse käynnistää IDEä. Suuremmissa projekteissa tuo etu varmaan menetetään verrattuna esim. C#:iin, koska useamman tiedoston pyörittely notepadilla ei ole mielekästä. Lisäksi silloin tulee jo tarvetta ainakin autocompletelle ja debuggaukselle. Tulen varmaan jatkossa opettelemaan lisää ja ruby lienee valintani suhteellisen simppeleiden skriptien tekemiseen.

8s54oox0

Navigointi

Social Media