Esipuhe: Sirkkelin käyttöohje

Siirtyminen C-kielestä C++-kieleen käynnistyi pikkuhiljaa jo 1980-luvun loppupuolella. Olin tavattoman innostunut tästä, koska näin sen mahdollisuutena siirtää tutkimuslaboratorioissa syntyneitä oliokeskeisiin menetelmiin liittyviä asioita osaksi arkipäiväistä ohjelmistotyötä. 1990-luvun alkupuoli olikin ohjelmistoteollisuudessa olio-menetelmien käyttöönoton aikaa, ja hyvin usein käyttöönotto tapahtui juuri C++-kieleen siirtymisen kautta.

Yleinen ensivaikutelma C++-kielestä oli, että se on oliopiirteillä laajennettu C-kieli ja vain hieman C-kieltä monimutkaisempi. Jo ensimmäiset käytännön kokemukset kielestä kuitenkin osoittivat, että tämä oli näköharhaa. Käytännössä C++-kieleen lisättyjen olio-ominaisuuksien aiheuttamat implikaatiot ovat paljon laajempia kuin aluksi osattiin ennakoida. Tätä todistavat esimerkiksi yritysten ohjelmistokehitystä varten laatimat tyylioppaat: C-tyyliopas saattaa olla vain muutamien sivujen mittainen kokoelma sääntöjä, kun pisimmät C++-oppaat lähentelevät sataa sivua.

Käytäntö on osoittanut, että C++-kieli sisältää ominaisuudet, joilla olio-ohjelmoinnin lupaukset muuan muassa uudelleenkäytettävyyden ja ylläpidettävyyden osalta pystytään suurelta osin lunastamaan. Toisaalta olio-ominaisuuksien taitamattomasta käytöstä saattaa aiheutua isoja ongelmia. C++ on kuin tehokas sirkkeli ilman suojavälineitä: ammattilaisen käsissä se on tuottava ja varmatoiminen työkalu, mutta noviisin käsissä vaarallinen ase. Oman kokemukseni mukaan tehosirkkeli-noviisi-yhdistelmä ei ole tämän päivän ohjelmistotuotannossa harvinainen yhdistelmä, ja pätevälläkin ammattilaisella on vielä paljon opittavaa.

C++-kieltä käsitteleviä oppikirjoja on kasapäin. Useimmat kirjat lähestyvät aihetta esittelemällä kielen ominaisuuksia, kertomatta miten ja miksi niitä käytetään. Tässä kirjassa keskitytään kielen syntaksin sijasta juuri näihin C++-sirkkelin käyttöön liittyviin miten ja miksi -kysymyksiin. Se on antoisaa luettavaa niin noviisille kuin vähän vanhemmallekin konkarille. Harvoinpa kirjalle on olemassa näin selkeä tilaus niin oppilaitoksissa kuin teollisuudessakin.

Tampereella 3.9.2000, prof. Ilkka Haikala