Rubyn vahvuudet ja heikkoudet

Posted Maaliskuu 19th, 2006 by Artti Jaakkola

Rubystä on nyt kohkattu pidemmän aikaa ja pitäähän sitä jotain mieltä asiasta olla. Siispä pidemmittä puheitta itse mielipiteisiin:

1. Dynaaminen tyypitys ei ole mieleeni

Rubyn juuret ovat Perlissä (helmestä rubiiniin..) ja ilmeisesti samaisista sukujuurista on periytynyt dynaaminen tyypitys. Jos minulta kysytään, niin Javankin tyypitys on monesti ihan liian heikkoa; XML:n tyypitys on jo riittävän tarkkaa. En tosiaan millään jaksaisi ruveta ihmettelemään, että “syököhän tämä metodi merkkijonon, numeron vai jonkun muun ölliäisen?”

Onneksi tyypitys on sentään vahva, joten esimerkiksi numeraaliarvoa ja merkkijonoa ei voi katenoida.

1 + “12″ -> käännösvirhe

2. Rubyn defaultit metodeissa ovat erittäin käteviä

def terve( kohde=’maailma!’ )
print ‘Terve #{kohde}!’
end

3. Rubyn luonnollinen kieli on oikeasti mukavaa luettavaa

3.times { print ‘hurraa!’ }

4. En pidä siitä, että metodi voi palauttaa jotain, vaikka returnia ei ole määritetty

def tosi
‘…salaista tietoa!’
end

5. En pidä siitäkään, että metodikutsun voi kirjoittaa useammalla tavalla

print ‘niin’ tai print( ‘näin’ )

6. Enkä myöskään siitä, että blokit voi kirjoittaa monella tavalla; koettakaa jo sopia se syntaksi!

do print ‘joo’ end tai { print ‘…pajoo’}

7. Closuret ovat mainio ominaisuus

[ 'tulos', 'ta' ].each { |merkkijono| print merkkijono }

…tosin notaatiossa ‘|’-merkit olisi ehkä voitu toteuttaa jotenkin siistimmin. Groovyssä tämä esimerkiksi tehdään seuraavalla syntaksilla:

[ 'tulos', 'ta' ].each { merkkijono -> print merkkijono }

8. Merkkijonojen käsittely on Rubyssä jopa kätevämpää kuin Perlissä

‘Käytetään Javaa tekstin muokkaamiseen!’.sub /Javaa/, ‘Rubyä’

9. Instanssi-, luokka- ja globaalien muuttujien esittely ihan missä sattuu hankaloittaa joissain tapauksissa koodin lukemista

10. Skriptikielellä kehityssyklistä tippuu kääntämiset ja pakettien asennusvaiheet pois, mikä yleensä nopeuttaa koodausta

Eli tuollaisia ajatuksia on kertynyt Rubystä. Itseasiassa pidän kielestä. Se on erittäin mukavaa luettavaa ja siitä on karsittu kaikki yllättävät elementit pois. Esimerkiksi numeraaliarvot toimivat defaulttina oikein, eivätkä vuoda yli tai anna vääriä likiarvoja. :-)

PHP-ohjemoijien elämää Ruby tulee varmasti helpottamaan.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

(kirjoita kuvassa näkyvät merkit, pakollinen)