10 GOTO ObjectOrientation;

Perinteinen, proseduraalinen ohjelmointi on kuin muovailuvahalla askartelua: kun olet päättänyt mitä ohjelmasi pitäisi tehdä, alat vain muovailla sellaisia ominaisuuksia kuin tarvitset.

Kuva 2.0. Perinteinen ohjelmointi

Kuva 2.1. Olio-ohjelmointi

Kuva 2.2. Cocoa

Objektiorientoitunut ohjelmointi – jonka joku valopää aikoinaan keksi lanseerata Suomeen nimellä ”olio-ohjelmointi” – on taas pikemminkin kuin Legoilla rakentelua:  kokonaisuus muodostuu yhdistelemällä tarkkaan standardoituja palikoita, joista kukin on vastuussa jostakin ohjelmasi osa-alueesta.

Sitten on Cocoa, siis Applen ohjelmistokehitysrunko, jonka varaan kaikki Mac- ja iPhone-ohjelmat on rakennettu. Jatkaaksemme vertausta, Cocoan voisi hahmottaa jättiläismäiseksi legosiiloksi, joka sisältää lukemattoman määrän palikoita Duploista Lego Technic -sähkömoottoreihin ja hydrauliikkapumppuihin.

Älä siis yritä tehdä Apple-softaa muovailuvahasta – usko pois, siitä ei tule mitään. Muovailuun tottuneen ohjelmoijan voi olla vaikea uskoa, että legoilla voisi mitenkään saada aikaan yhtä fiiniä jälkeä. Ja totta onkin, että varsinkin jos tavoitteesi on pieni ohjelma joka tekee jotain täysin omalaatuista lähellä hardware-rajapintaa – kuten vaikkapa demo – olio-orientoituneisuus teettää aika lailla lisävaivaa.

Kuva 2.3. Legoland: kyllä. Vahalandia: ei.

Vaikka tällaisella vanhan koulun oppeihin nojaavalla harrastelijakoodarilla  kului joku tovi tämän myöntämiseen, Cocoa ei kuitenkaan perustu oliofilosofialle silkasta brassailun halusta. Legopalikoista vaan on helpompi tehdä isoja, täsmällisesti toimivia kokonaisuuksia kuin muovailuvahasta. Vai oletteko ikinä kuulleet Vahalandiasta?

Okei, nöyrryn, kumarran Oliota ja myönnän että se on ainoa oikea tie valaistumiseen. Jäljelle jää enää yksi kysymys: mitä tämä Cocoa oikein minusta haluaa?

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out / Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out / Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out / Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out / Muuta )

Muodostetaan yhteyttä palveluun %s

%d bloggers like this: