Objektumorientált programozás vs eljárási programozás
Az objektumorientált programozás (OOP) és a procedurális programozás két programozási paradigma. A programozási paradigma a számítógépes programozás alapvető stílusa, és abban különböznek egymástól, hogy a program különböző elemeit hogyan ábrázolják, és hogyan határozzák meg a problémák megoldásának lépéseit. Ahogy a neve is sugallja, az OOP a problémák valós objektumok és viselkedésük segítségével történő megjelenítésére összpontosít, míg az eljárási programozás a problémák megoldásainak ábrázolásával foglalkozik eljárások segítségével, amelyek meghatározott sorrendben futó kódgyűjtemények. Vannak olyan programozási nyelvek, amelyek támogatják az OOP kulcsfontosságú szempontjait (úgynevezett OOP-nyelvek), az eljárási nyelvek (úgynevezett eljárási nyelvek) és mindkettő. De egy fontos dolog, amit meg kell jegyeznünk, hogy az OOP és a Procedural két módja a megoldandó problémák megjelenítésének, és nem mindegy, hogy melyik nyelvet használjuk. Más szavakkal, az OOP nyelvek használhatók eljárási programozáshoz, míg az eljárási nyelvek néha használhatók az OOP-hoz, némi erőfeszítéssel.
Az eljárási programozás egy olyan programozási mód, amely meghatározza a lépések halmazát egy bizonyos probléma megoldásához, valamint a végrehajtásuk pontos sorrendjét a kívánt eredmény vagy állapot eléréséhez. Például, ha egy bankszámla hónap végi záró egyenlegét szeretné kiszámítani, akkor a szükséges lépések a következők. Először megszerzi a számla kezdő egyenlegét, majd csökkenti a hónap során felmerülő összes terhelési összeget. Ezt követően hozzáadja a hónap során felmerült összes jóváírási összeget. A folyamat végén megkapja a számla havi záró egyenlegét. Az eljárási programozás egyik fő fogalma az eljáráshívás. A szubrutinnak, metódusnak vagy függvénynek is nevezett eljárás a végrehajtandó utasítások rendezett listáját tartalmazza. Egy eljárás a végrehajtás során bármikor meghívható bármely más eljárással vagy önmagában. Példák az eljárási programozási nyelvekre a C és a Pascal.
Az OOP-ban a középpontban a megoldandó probléma valós elemekben való gondolkodása, valamint a probléma objektumok és viselkedésük szerinti ábrázolása áll. Az objektum egy olyan adatstruktúra, amely nagyon hasonlít valamely valós objektumra. Az objektumok adatmezőket és metódusokat tartalmaznak, amelyek a valós objektumok attribútumait és viselkedését reprezentálják. Számos fontos OOP-fogalom létezik, mint például az adatabsztrakció, a beágyazás, a polimorfizmus, az üzenetkezelés, a modularitás és az öröklődés. Néhány népszerű OOP nyelv a Java és a C. Használhatók azonban eljárási programozás végrehajtására is.
A legfontosabb különbség az OOP és az eljárási programozás között az, hogy az eljárási programozás célja a programozási feladat lebontása változók és alprogramok gyűjteményére, míg az OOP célja a programozási feladat lebontása objektumok, amelyek adatokat és módszereket foglalnak magukba. A legfigyelemreméltóbb különbség az lehet, hogy míg a Procedural Programming eljárásokat használ az adatstruktúrák közvetlen működéséhez, az OOP az adatokat és a metódusokat kötegeli úgy, hogy az objektum a saját adatain fog működni. Amikor a nómenklatúráról van szó, az eljárási programozásban az eljárást, a modult, az eljáráshívást és a változót gyakran metódusnak, objektumnak, üzenetnek és attribútumnak nevezik az OOP-ban.