Ovatko oliot objekteja?

Lauri Laitinen,
Nokia Research Center

Olio- ja kohde-sanojen käyttö atk-suomessa on eräs esimerkki siitä, miten oleellisen ymmärtävä käännös on alkukielistä ilmausta täsmällisempi.

Object and entity

Sanakirjan mukaan entity on olevainen, itsenäinen kokonaisuus eli tosioleva. Suomenkielessä hahmoltaan epämääräistä, mutta kuitenkin itsenäisesti olemassa olevaa kohdetta sanotaan olioksi. Entity sanan suomenkielinen vastine on siten olevainen tai olio.

Object tarkoittaa sanakirjan mukaan yleisen englantilaisen sanastoperiaatteen mukaan vähän kaikkea kuten esinettä, kohdetta, tarkoitusta, päämäärää ja objektia. Havaintojeni mukaan englannin kielisen sanan voi ymmärtää vain jos onnistuu kiteyttämään sanan lukemattomista merkityksistä sen semanttisen perusidean. Object:in perusideana on toiminnan tai tekemisen kohteena oleminen. Tieteellisessä kielenkäytössä objekti on vakiintunut käytettäväksi subjektin vastakohtana. Nykyisin objektin käsite ei oikein ole edes ymmärrettävissä ilman subjektin ideaa. Object on siten suomen kielessä lähinnä tekemisen kohde.

Atk-sana kirja antaa oliolle kaksi käännöstä:

Mitä ovat atk-oliot?

Mitä on sitten esimerkiksi object oriented design? Sananmukaisesti käännettynä se on kohdesuuntautunutta suunnittelua. Nykysuomeksi lyhyesti oliosuunnittelua. Kuka vaihtoi objektit eli tekemisen kohteet olioiksi? Mistä ne kohteet sitten löytyvät?

Kohteet löytyvät tietokantasuunnittelusta. Esimerkiksi käsiteanalyysissä käytetään kuvausmenetelmänä yleisesti kohdekaavioita eli entity-relationship diagrammeja. Entity eli olio tai olevainen on tietokantapuolella käännetty kohteeksi.

Kuka teki virheen?

Virheen tai lähinnä epätäsmällisyyden aiheuttivat englannin kieliset atk-pioneerit.

Tässä toistuu se yleinen ilmiö, että useimpien asioiden suomenkieliset termit ovat huomattavasti kuvaavampia ja täsmällisempiä kuin alkuperäiset englanninkieliset.

Kun aika tulee kypsäksi, jonkin uuden asian oivaltamiseen, keksitään perusideat tai löydökset eri puolilla maailmaa riippumattomasti. Tieteen historian alaviitteistä voidaan havaita tämän tapahtuvan yleensä vähintäin kolmesti. Keksijäksi katsotaan se, joka ehti tehdä ideansa perusteet riittävän tunnetuksi englanninkielellä yleensä muutamaa kuukautta toisia aikaisemmin. Tosin atk:ssa menetelmät nimetään niiden mukaan, jotka kirjoittavat myydyimmät oppikirjat. Joka tapauksessa maailman kulttuurivuorovaikutuksen suunta on nykyisin se, että englanninkielisessä maailmassa syntynyt tai englannin kielellä tarpeeksi tehokkaasti dokumentoitu kehityslinja omaksutaan automaattisesti maailman standardiksi.

Alan perusterminologiaksi vakiintuu sitten yleensä alkuperäisen julkaisun keskeiset englanninkieliset sanat. Useinkaan keksijä eli guru ei itse kuitenkaan ole loppuun asti tajunnut, mistä hänen keksinnöstään on pohjimmiltaan kysymys. Hän on vain pyrkinyt nopeasti löytämään ideaansa jotenkin kuvaavia englanninkielisiä yleissanoja, jotka eivät vielä ole liian varattuja hänen omalla erikoisalallaan. Tämän periaatteen mukaisesti ekonomit ovat voineet huoletta uusiokäyttää insinöörien re- engineering terminkin.

Yleensä nämä englantilaiset sanat elävät suomenkielessä muutaman vuoden yliopistollisten ja konsulttien tarjoamien kurssien nimissä. Jossakin vaiheessa saavutaan suomenkielellä yhteisymmärrys siitä, mistä pohjimmiltaan on kysymys. Vasta tämän oivalluksen jälkeen vakiintuvat suomenkieliset termit.

Näin juuri tapahtui Suomessa entity/kohde- ja object/olio-sanojen suhteen.

Mitä ovat oliosuunnittelun oliot?

Olioajattelussa olioita ei mieletä tekemisen kohteiksi eli objekteiksi vaan pikemminkin tekijöiksi eli subjekteiksi, jotka pyytelevät toisilta palveluja. Itse asiassa kyse on subject oriented - metodologioista.

Oliot voidaan tosin mieltään myös käsiteanalyysinäkökulman mukaisesti tarkastelun kohteina olevien reaalimaailman todellisten toimijoiden edustajiksi.

Ensimmäistä mielikuvaa käytetään luotaessa teko-olioita kuten käyttöliittymäolioita. Jälkimmäinen mielikuva sopii reaalimaailman fyysisen ja sosiaalisen (yritykset, valtio) todellisuuden kuvaamiseen olioilla.

Oliotermi on kohdetta parempi valinta oliosuunnittelun perusalkion nimeksi. Olio ei ota kantaa siihen mistä kulloinen abstraktiolio on muodostettu. Kohdetermin (object) käyttö sitoisi oliomenetelmät liikaa reaalimaailman olioiden edustajien (kuvien) käsittelyyn.

Objekti- eli kohdetermin käyttö oliosta rajoittaa ajatukset herkästi pelkästään todellisiksi koettujen asioiden mallintamiseen. Suomalainen termi olio helpottaa itsenäisten toimijoiden luomiseen perustuvan suunnittelumenetelmän omaksumista ja sen uusien mahdollisuuksien hyväksikäyttöä. Suomalainen ei siten niinkään mallita kohteita vaan luo itsenäisesti uusia toimintaolioita. Toimintomallituksesta lähtevä oliosuunnittelu traditio voi siten olla Suomessa luonnollisempi kuin anglosaksisessa maailmassa.

Mitä ovat käsiteanalyysin kohteet?

Onneksi tietokantojen ja käsiteanalyysin tutkijat ja kouluttajat tekivät Suomessa hyvää työtä ja valitsivat huolella englannin entity-sanan suomalaiseksi vastineeksi kohteen sananmukaisen käännöksen - olio - sijasta. Sanan valinta korostaa hienosti tietokantojen todellisuutta kuvaavaa luonnetta.

Varaamalla kohde-termin käsiteanalyysin käyttöön tietokantaihmiset estivät myös myöhemmin levinneen olio-ohjelmoinnin harrastajia käyttämästä object:in sananmukaista käännöstä kohde. Atk-kulttuuri on Suomessa ainakin vielä sen verran yhtenäinen, ettei samojen sanojen päällekkäinen käyttö ole yleensä mahdollista.

Olio-ohjelmoijat joutuivat ajattelemaan ja huomasivat objektien olevankin pohjimmiltaan epämääräisiä mutta itsenäisen olemassaolon omaavia kohteita eli suomeksi olioita.

Sananmukainen kääntäminen olisi johtanut englanninkielen mukaisesti suoraan kohdeohjelmointiin, kohdesuunnitteluun jne. Tämänkin numeron teemana olisi luultavasti kohdemenetelmät.

Sitä vastoin relaatiotietokantojen seuraajaksi ennustettujen oliotietokantojen suorakäännetty nimi - kohdetietokanta - ei tunnu lainkaan oudolta. Vakiintuneen käytännön mukaan tietokantatyyppien tarkennin ilmoittaa tapaa millä tiedot on organisoitu tietokannassa. Sovelluskohtaisesti tietokantoja nimetään myös sovelluksen pääkohteen mukaan esimerkiksi henkilökannoiksi, vakuutuskannoiksi jne.

Kohdetietokanta-nimitys olisi kuitenkin jälleen kerran suomessa, kuten on luultavasti englannissakin, hämäävä. Nimitys ei toisi esille oliotietokantojen oleellista eroa muista tietokantamalleista, sillä kaikki tietokannat tallettavat enemmän tai vähemmän tarkoituksenmukaisesti mallitettuna tietoja tarkastelun kohteista. Ainakin suomalainen selkeä kielenkäyttö on saanut minut näin ajattelemaan. Oliokannoissa tarkastelun kohteet on vain organisoitu olioiksi.

Entäpä sitten kohdeoliot?

Kohde-sanan monitulkintaisuutta tilanteissa, joissa on monia hierarkkisiakin objekti-subjekti-pareja, osoittaa mm., että tässäkin lehdessä kaksi kirjoittajaa käyttää “kohdeolio”-termiä erimerkityksessä.

Anne Putkonen tarkoittaa kohdeoliolla oliomallin oliota, joka on tarkastelun eli osittamisen kohteena. Kohdeolio on siis oliomallin suunnitteluprosessin kohde.

Markku Nokso-Koivisto tarkoittaa kohdeoliolla reaalimaailman sovelluksen kohdejärjestelmän olion edustajaa riippumatta siitä, onko se tarkastelun kohteena. Kohdeolio on siis selvästi tietojärjestelmän toiminnan kohde.

Itse pitäisin Anne Putkosen tapaa käyttää “kohdeolio”-termiä luonnollisempana. On selvempää, jos sana kohde viittaa aina lähimmän prosessin eli tässä tapauksessa suunnitteluprosessin subjekti-objekti pariin. Markku Nokso-Koiviston kohdeolioita kutsuisin siten pikemminkin esimerkiksi sovellusolioiksi. Tosin olisi tietysti loogista, jos kehittämisen kohteena olevan kohdejärjestelmän olioita kutsuttaisiin kohteiksi. Sovelluspainotteinen kohdeolion merkitys on kuitenkin joka tapauksessa vain reaalimaailman tai siihen kuvitellun kohteen edustaja oliomallissa.

Sovellusolio (eli joidenkin kohdeolio) tulee varsinaisesti ymmärrettäväksi vastakohtansa, teknisen eli teko-olion, kautta.

Teko-olioista tunnetuimpia ovat graafisten käyttöliittymien mukana yleistyneet ns. käyttöliittymäoliot. Käyttöliittymäolio ei varsinaisesti ole subjekti tai objekti vaan lähinnä viestinviejä, vaikutuksen älykäs välittäjä.

Uutena oliotyyppinä ovat nyt innovatiivisissa kaavion piirto-ohjelmissa yleistymässä ns. piirto-oliot. Piirto-oliot eroavat käyttöliittymäolioista siinä, että ne ohjaavat vain itseään. Käyttöliittymäolioiden kautta ohjataan jotain kolmatta osapuolta. Piirto-olioilta pyydetään olion itsensä ulkonäköön tai kytkentöihin liittyviä palveluja. Perinteisten piirto-ohjelmien valmiit tai kopioitavat kuvaelementit ovat varsinaisia tyhmiä objekteja, joita saattoi ainoastaan käsitellä kohteina, skaalata, värittää jne..

Piirto-olioon sen sijaan voi liittyä esimerkiksi taulukkolaskentamuotoisesti kuvattu ohjelma, joka muuttaa oliota piirtäjän antamien etukäteisohjeiden mukaisesti ympäristön muuttuessa. Tulevaisuudessa kaavion piirto-ohjelmien kuvaelementit ovat todellisia ohjelmoitavia oliota eivätkä pelkästään objekteja

Erilaisia todellisuus käsityksiä

Toinen mielenkiintoinen atk-kummajainen on virtuaalinen-sanan käyttö atk-alalla. Englannin sanakirjan mukaan virtual tarkoittaa yleiskielessä tosiasiallista, todellista ja teknisenä terminä näennäistä. Esimerkiksi virtuaalimuisti käännetään Atk- sanakirjassa näennäismuistiksi.

Käännös kuvastaa ehkä kulttuurisidonnaisia eroja näkemyksessä todellisuudesta.

Yhdysvaltalaisen markkinointihenkisen näkemyksen mukaan virtuaalimuisti on todellista, koska se on se muistimäärä, jonka käyttäjä kokee subjektiivisesti laitteessaan olevan. Siis käyttäjän näkökulma on todellisuus.

Suomessa on omaksuttu ehkä saksalaisesta vaikutuksesta insinöörimäisempi objektiivisuuteen pyrkivä näkemys, jonka mukaan ainoastaan se, miten järjestelmä on todella muodostettu on todellista. Tämän näkemyksen mukaan virtuaalimuistia, jota ei todellakaan ole olemassa fyysisesti tietokoneen keskusmuistissa vaan ainoastaan loogisena osoiteavaruutena, on näennäistä.

Lauri Laitinen
lauri.laitinen@research.nokia.fi


Lauri Laitinen lauri.laitinen@research.nokia.fi

Systeemityö-lehti - Ovatko oliot Objekteja?