Objektisuuntautunut ohjelmointi vs. prosessiohjelmointi
Object Oriented Programming (OOP) ja Procedural Programming ovat kaksi ohjelmointiparadigmaa. Ohjelmointiparadigma on tietokoneohjelmoinnin perustyyli, ja ne eroavat toisistaan siinä, miten ohjelman eri elementit esitetään ja miten ongelmien ratkaisuvaiheet määritellään. Kuten nimestä voi päätellä, OOP keskittyy ongelmien esittämiseen käyttämällä reaalimaailman objekteja ja niiden käyttäytymistä, kun taas Proseduuriohjelmointi käsittelee ongelmien ratkaisujen esittämistä proseduureilla, jotka ovat tietyssä järjestyksessä suoritettavia koodikokoelmia. On ohjelmointikieliä, jotka tukevat OOP:n (kutsutaan OOP-kieliksi), Proceduraalin (kutsutaan menettelykieliksi) ja molempien keskeisiä näkökohtia. Mutta yksi tärkeä asia on huomata, että OOP ja Procedural ovat kaksi tapaa esittää ratkaistavia ongelmia, eikä sillä ole väliä, mitä kieltä käytetään. Toisin sanoen OOP-kieliä voidaan käyttää prosessiohjelmointiin, kun taas proseduurikieliä voidaan joskus käyttää OOP:ssa, mutta vaivattomasti.
Proseduuriohjelmointi on tapa ohjelmoida tunnistamalla vaiheet tietyn ongelman ratkaisemiseksi ja tarkka järjestys, jossa ne tulee suorittaa halutun tuloksen tai tilan saavuttamiseksi. Jos esimerkiksi haluat laskea pankkitilin kuukauden lopun loppusaldon, vaaditut vaiheet ovat seuraavat. Ensin hankit tilin alkusaldon ja sitten vähennät kaikkia kuukauden aikana tapahtuneita veloitussummia. Tämän jälkeen lisäät kaikki kuukauden aikana kertyneet luottosummat. Prosessin päätteeksi saat tilin kuukauden loppusaldon. Yksi prosessiohjelmoinnin pääkonsepteista on menettelykutsu. Proseduuri, joka tunnetaan myös nimellä alirutiini, menetelmä tai funktio, sisältää järjestetyn listan suoritettavista ohjeista. Proseduuri voidaan kutsua milloin tahansa suorituksen aikana millä tahansa muulla proseduurilla tai itsestään. Esimerkkejä proseduuriohjelmointikielistä ovat C ja Pascal.
OOP:ssa painopiste on ratkaistavan ongelman ajattelussa reaalimaailman elementtien avulla ja ongelman esittäminen esineiden ja niiden käyttäytymisen kann alta. Objekti on tietorakenne, joka muistuttaa läheisesti jotakin todellisen maailman objektia. Objektit sisältävät tietokenttiä ja menetelmiä, jotka edustavat reaalimaailman objektien attribuutteja ja käyttäytymistä. On olemassa useita tärkeitä OOP-käsitteitä, kuten tiedon abstraktio, kapselointi, polymorfismi, viestintä, modulaarisuus ja periytyminen. Jotkut suositut OOP-kielet ovat Java ja C. Niitä voidaan kuitenkin käyttää myös prosessiohjelmoinnin suorittamiseen.
Avainero OOP:n ja prosessiohjelmoinnin välillä on, että prosessiohjelmoinnin painopiste on jakaa ohjelmointitehtävä joukoksi muuttujia ja aliohjelmia, kun taas OOP:n painopiste on jakaa ohjelmointitehtävä objektit, jotka kapseloivat dataa ja menetelmiä. Merkittävin ero voi olla se, että vaikka Proseduuriohjelmointi käyttää menetelmiä suoraan tietorakenteiden käyttämiseen, OOP niputtaa tiedot ja menetelmät yhteen niin, että objekti toimii omilla tiedoillaan. Mitä tulee nimikkeistöön, proseduuriohjelmoinnin nimikkeisiin, proseduuriin, moduuliin, proseduurikutsuihin ja muuttujiin viitataan OOP:ssa usein menetelmänä, objektina, viestinä ja attribuuttina.