Ohjelmointikielet -- Periaatteet, käsitteet, valintaperusteet (Maarit Harsu; Talentum, 2005)

Maarit Harsu on kirjoittanut hyödyllisen yleisteoksen ja oppikirjan ohjelmointikielten ominaisuuksista ja perusperiaatteista. Kirja tuo esille ohjelmointikielten historian ja valottaa nykyisin käytössä olevien ohjelmointikielten ominaisuuksia ja toteutusta.

Kirjan laaja-alaisuus tekee lukemisesta paikoitellen haastavaa. Lisäksi monen eri ohjelmointikielen käsittely yleisellä tasolla pakottaa väistämättä kompromisseihin esityksen täsmällisyyden ja yleisyyden välillä. Asiaa vaikeuttaa myös se, että ohjelmoinnin peruskäsitteistä puhutaan eri ohjelmointikielissä toisistaan poikkeavilla tavoilla, ja samalla termillä on eri kielissä toisistaan poikkeavia merkityksiä.

Aihepiirin haastavuudesta huolimatta Harsu selviää urakasta kunnialla. Lukijan on syytä osata ennestään jokin ohjelmointikieli, mielellään ehkä useampi ja toisistaan eroava. Paikoitellen laajempi taustatieto olisi hyväksi, esimerkiksi käsiteltäessä ohjelmointikielten leksikaalianalyysiä ja kielioppeja. Lähes kokonaan selittämättä jää esimerkiksi se, miten käytännössä toimii ohjelmakoodin tekstialkioiden erottelu selaajalla.

Kaikkien ohjelmointikielten osalta esitys ei ole ajan tasalla. Fortrania käsittelevät osuudet pohjautuvat kielen vanhentuneeseen Fortran 77 -standardiin, jota koskevat huomautukset esimerkiksi muuttujamäärittelyistä ja muistinkäsittelystä jättävät huomiotta uudempien standardien sisällön (Fortran 90, Fortran 95 ja Fortran 2003). 

Keskittyminen "ikivanhaan" Fortraniin on siinä mielessä perusteltua, että se valottaa ohjelmointikielissä ajan kuluessa tapahtunutta kehittymistä. Mutta Fortranin nykyiset ominaisuudet tulisi huomioida -- esimerkkeinä moduulit sekä sisäiset ja geneeriset proseduurit.

Teoksesta on iloa sekä ohjelmoinnin aloittelijoille että pidemmälle ehtineille. Oli mukava nähdä omat tutut ohjelmointikielet yleisemmässä yhteydessä. Pascal, Fortran, C, C++, Smalltalk, Prolog, Java, Perl, Python -- näitähän riittää. Teos tarjoaa pikaesittelyn myös niistä kielistä, joita ei ole aiemmin tullut käyttäneeksi.

Teos täyttää hyvin paikkansa suomenkielisessä tietotekniikan peruskirjallisuudessa. Lukija saa yleiskäsityksen monien erilaisten ohjelmointikielten mahdollisuuksista. Ehkä se oma suosikki ei olekaan kaikissa tilanteissa paras työkalu?