Objektorienteeritud programmeerimine vs protseduuriline programmeerimine
Objektorienteeritud programmeerimine (OOP) ja protseduuriline programmeerimine on kaks programmeerimise paradigmat. Programmeerimisparadigma on arvutipõhise programmeerimise põhistiil ja need erinevad programmi erinevate elementide esindatuse ja probleemide lahendamise etappide määratlemise viisil. Nagu nimigi ütleb, keskendub OOP probleemide esindamisele reaalainete objektide ja nende käitumise abil, protseduuride programmeerimine tegeleb probleemide lahenduste esindamisega protseduuride abil, mis on koodide kogumid, mis töötavad kindlas järjekorras. On programmeerimiskeeli, mis toetavad OOP (nn OOP keeled), protseduuriliste (nn protseduurikeeli) võtmeaspekte ja mõlemat. Kuid üks oluline asi, mida tuleb märkida, on see, et OOP ja protseduur on lahendatavate probleemide esindamise kaks viisi, ja pole vahet, millist keelt kasutatakse. Teisisõnu, OOP-keeli saab protseduuriliseks programmeerimiseks kasutada, samas kui protseduurilisi keeli võib mõnikord kasutada OOP-keelte kasutamist.
Protseduuriline programmeerimine on programmeerimisviis, mille abil tuvastatakse teatud probleemi lahendamiseks vajalike sammude komplekt ja täpne järjekord, kuidas need tuleks soovitud tulemuse või oleku saavutamiseks täita. Näiteks kui soovite arvutada pangakonto kuu lõpu saldo, siis on nõutavad toimingud järgmised. Esiteks saate konto algjäägi ja siis vähendate kõiki kuu jooksul tekkinud debiteerimissummasid. Pärast seda lisate kõik kuu jooksul tekkinud krediidisummad. Protsessi lõpus saate konto kuu lõpu saldo. Protseduuride programmeerimise üks peamisi kontseptsioone on protseduurikutse. Protseduur, mida nimetatakse ka alamprogrammiks, meetodiks või funktsiooniks, sisaldab täidetavate juhiste loendit. Protseduuri saab igal ajal käivitada mis tahes muu protseduuri abil või ise. Protseduuriliste programmeerimiskeelte näideteks on C ja Pascal.
OOP-is keskendutakse lahendatava probleemi mõtlemisele reaalse maailma elementide osas ning probleemi esindamisele objektide ja nende käitumise osas. Objekt on andmestruktuur, mis sarnaneb väga mõne reaalse objektiga. Objektid sisaldavad andmevälju ja meetodeid, mis tähistavad reaalse maailma objektide atribuute ja käitumist. On mitmeid olulisi OOP-kontseptsioone, näiteks andmete abstraktsioon, kapseldamine, polümorfism, sõnumside, modulaarsus ja pärimine. Mõned populaarsed OOP keeled on Java ja C #. Kuid neid saab kasutada ka protseduurilise programmeerimise teostamiseks.
Peamine erinevus OOP-i ja protseduurilise programmeerimise vahel on see, et protseduurilise programmeerimise eesmärk on jaotada programmeerimisülesanne muutujate ja alamprogrammide kogumiks, OOP-i põhifookus on aga programmeerimisülesande jaotamine objektidesse, mis sisaldavad andmeid ja meetodid. Kõige märkimisväärsem erinevus võib olla see, et kui protseduuride programmeerimine kasutab protseduure andmestruktuuride otseseks tööks, siis OOP koondab andmed ja meetodid kokku, nii et objekt töötab oma andmetega. Kui tegemist on nomenklatuuriga, nimetatakse protseduuriprogrammeerimises protseduuri, moodulit, protseduurikõnet ja muutujat OOP-s vastavalt meetodiks, objektiks, sõnumiks ja atribuudiks.