Ruby
Mureakuha
Ruby on tulkattava ohjelmointikieli, jonka on kehittänyt japanilainen Yukihiro Matsumoto 1995. Se on uusin niin sanottu skriptikieli (kuten Perl ja Python), jolla on helppo tehdä nopeita sovelluksia erityisesti järjestelmänhallinnan tarpeisiin. Ruby on kuitenkin täysi ohjelmointikieli, jolla voi tehdä myös täysiä sovelluksia. Muita ohjelmointikieliä, josta Ruby on saanut vaikutteita ovat Clu, Eiffel, Java, Ada ja Objective C.
Ruby on puhdas oliopohjainen ohjelmointikieli. Kaikki toiminta on objekteja. Jopa numerot ovat olioita, esim.
7.times do print "+" end
Tulostaa seitsemän "+"-merkkiä.
Tärkeä konsepti Rubyssä on iteraatio. Iteraattoria käytetään do ... end -rakenteen avulla ("lohko"):
[ 3, 1, 7, 0 ].sort.reverse.each do |i| print i*i end
missä lista ensin järjestetään, käännetään ja lopuksi arvot yksi kerrallaan nimitetään i:ksi ja suoritetaan print i*i. Tuloksena on siis "49910". Käyttäjä voi itse määritellä vapaasti iteraattoreita metodissa olevan yield-lauseen avulla. Esimerkiksi seuraava lohko suoritetaan kolme kertaa:
def kolmeKertaa yield yield yield end kolmeKertaa do print "Heippa" end
Monet asiat Rubyssä näyttävät tavanomaiselta ohjelmointikieleltä, mutta todellinen implementaatio vaatii niiden muutamista oliomallin mukaiseksi sisäisesti (joissain ohjelmointikielissä tätä kutsutaan syntaktiseksi sokeroinniksi). Esimerkiksi "1+1" on vain merkintä olion "1" metodikutsulle "+" argumenttina toinen olio "1". Sama pätee Rubyssä moneen asiaan ja se voi jättää aloittelijalle hieman sekavan kuvan kielestä.
Ruby on monessa suhteessa mielenkiintoinen kieli, mutta sitä ei pidetä vielä aivan yhtä valmiina ja helppona oppia kuin Pythonia, jonka kanssa se lähinnä kilpailee.
Katso myös
Linkit
- Ruby-ohjelmointikielen viralliset sivut (englanniksi ja japaniksi)
- Ilmainen "Programming Ruby" -kirja (englanniksi)
- Why's (poignant) guide to Ruby (englanniksi)
- Selaimessa toimiva interaktiivinen tutoriaali (englanniksi)
| Tämä artikkeli on alun perin kopioitu Wikipediasta. Sen sisältö julkaistaan GDFL-lisenssin alaisena: |
Kopio lisenssistä (englanniksi) löytyy täältä.
