Lausunto Matti Rintalan ja Jyke Jokisen kirjasta ''Olioiden ohjelmointi C++:lla''

Olen keväällä käynyt perusteellisesti läpi kirjan yhden käsikirjoitusversion ja antanut siitä myös kommentteja tekijöille. Lopullisessa kirjassa on joitakin varsin huomattavia lisäyksiä tuohon aikaisempaan versioon nähden, varsinkin luvussa 8.

Suomeksi on viime aikoina ilmestynyt jonkin verran alkuperäisiä ja englannista käännettyjä kirjoja sekä olio­ohjelmoinnista (ja yleisemminkin oliomenetelmistä) että C++:sta. En tunne läheskään kaikkia käännettyjä C++­oppikirjoja, mutta hyviä kirjoja ovat ainakin Koskimiehen ''Oliokirja'', Hietasen ''C++ ja olio­ohjelmointi'' sekä Stroustrupin ''C++­ohjelmointi'' (suomennos). Rintalan ja Jokisen kirja (jatkossa ''R&J'') poikkeaa niin paljon näistä kolmesta, että se on tervetullut lisä oppikirjatarjontaan:

Koskimiehen kirjassa pääkielenä on Java (vaikka C++:stakin kerrotaan jotain) ja se on muutenkin laaja­alaisempi. Siksi R&J pystyy esittelemään C++:aa paljon perusteellisemmin.

Hietasen kirja on tarkoitettu ensi sijassa ammattikorkeakoulutasolle ja pyrkii selittämään asiat hyvin perusteellisesti. R&J on tiiviimpi ja soveltuu tyyliltään selvästi paremmin yliopisto­oppikirjaksi, varsinkin tietoteknisten aineiden pääaineopiskelijoille. Siinä on myös kohtuullisesti kirjallisuusviitteitä, jotka puuttuvat Hietaselta.

Stroustrupin kirja on hyvin laaja, koska siinä käsitellään kaikki C++:n yksityiskohdat. R&J ei pyrikään korvaamaan varsinaista kielen referenssikirjaa. Toisaalta siinä kerrotaan muutamista C++:n uusimman standardin piirteistä, joita Stroustrupilla ei ole, koska alkuteos on ilmestynyt jo 1997.

Hietasen ja Stroustrupin kirjat eivät kerro mitään muista oliokielistä kuin C++:sta, ja ne suhtautuvat C++:aan varsin kritiikittömästi. R&J:ssä esitetään monissa kohdin hyödyllisiä vertailuja muihin kieliin ja varsin railakastakin C++:n kritiikkiä.

Rintalan ja Jokisen kirja vaikuttaa minusta hyvältä ja innostavalta oppikirjalta yliopistokäyttöön. Se soveltuu varmasti myös itseopiskeluun, mutta varsinkin siihen tarkoitukseen kirjassa pitäisi mielellään olla harjoitustehtäviä. Ne puuttuvat tästä kirjasta kokonaan. Sen sijaan koodiesimerkkejä on jaksettu laatia havainnollistamaan kirjan jokaista kohtaa. Esimerkit vaikuttavat myös hyvin laadituilta ja sopivankokoisilta.

Kirja on sisällöltään selvästi asiantunteva ­­ vaikka en olekaan ennättänyt tutkia lopullista versiota perusteellisesti ja etsiä siitä mahdollisia virheitä. Sen rakenne sekä mukaanotettujen asioiden valinta ja niiden käsittelyn laajuus vaikuttavat hyviltä.

Erityisen arvokkaana pidän sitä, että tekijät ovat selvästi nähneet vaivaa myös kunnollisen suomenkielen hyväksi. Tiedän omastakin kokemuksestani, että olio­ohjelmoinnin suomenkielinen terminologia on ongelmallista; englanninkielisessäkin kirjallisuudessa on paljon variaatiota, varsinkin C++­sanaston ja yleisemmän kielenkäytön välillä. Tämän kirjan termit on valittu hyvin ja niitä on käytetty johdonmukaisesti ­­ vaikka itse suosinkin useissa tapauksissa jotain muuta vaihtoehtoa.

Kaiken kaikkiaan voin suositella Rintalan ja Jokisen kirjaa lämpimästi.

Markku Sakkinen
Professori
Tietojenkäsittelytieteiden laitos, Jyväskylän yliopisto