Programimi i orientuar nga objekti kundrejt programimit procedural
Programimi i Orientuar në Objekt (OOP) dhe Programimi Procedural janë dy paradigma programimi. Një paradigmë programimi është një stil themelor i programimit kompjuterik, dhe ato ndryshojnë në mënyrën se si përfaqësohen elementët e ndryshëm të programit dhe si përcaktohen hapat për zgjidhjen e problemeve. Siç sugjeron emri, OOP fokusohet në përfaqësimin e problemeve duke përdorur objekte të botës reale dhe sjelljen e tyre ndërsa, Programimi Procedural merret me përfaqësimin e zgjidhjeve të problemeve duke përdorur procedura, të cilat janë koleksione kodesh që ekzekutohen në një rend të caktuar. Ka gjuhë programimi që mbështesin aspektet kryesore të OOP (të quajtura gjuhët OOP), procedurale (të quajtura gjuhë procedurale) dhe të dyja. Por një gjë e rëndësishme për t'u theksuar është se OOP dhe Procedural janë dy mënyra për të paraqitur problemet që duhen zgjidhur, dhe nuk ka rëndësi se cila gjuhë përdoret. Me fjalë të tjera, gjuhët OOP mund të përdoren për programim procedural ndërsa gjuhët procedurale ndonjëherë mund të përdoren për OOP, me disa përpjekje.
Programimi procedural është një mënyrë programimi duke identifikuar grupin e hapave për të zgjidhur një problem të caktuar dhe rendin e saktë që ato duhet të ekzekutohen për të arritur rezultatin ose gjendjen e dëshiruar. Për shembull, nëse dëshironi të llogaritni bilancin e mbylljes së fund muajit për një llogari bankare, atëherë hapat e kërkuar do të jenë si më poshtë. Fillimisht, ju merrni bilancin fillestar të llogarisë dhe më pas zvogëloni të gjitha shumat e debitit të ndodhura gjatë muajit. Pas kësaj, ju shtoni të gjitha shumat e kreditit të ndodhura gjatë muajit. Në fund të procesit, do të merrni bilancin e mbylljes së llogarisë në fund të muajit. Një nga konceptet kryesore të Programimit Procedural është thirrja e Procedurës. Një procedurë e njohur gjithashtu si një nënprogram, metodë ose funksion përmban një listë të porositur të udhëzimeve që duhen kryer. Një procedurë mund të thirret në çdo kohë gjatë ekzekutimit nga ndonjë procedurë tjetër ose nga vetvetja. Shembuj të gjuhëve të programimit procedural janë C dhe Pascal.
Në OOP, fokusi është në të menduarit për problemin që duhet zgjidhur në terma të elementeve të botës reale dhe përfaqësimi i problemit për sa i përket objekteve dhe sjelljes së tyre. Objekti është një strukturë të dhënash që i ngjan shumë një objekti të botës reale. Objektet përmbajnë fusha të dhënash dhe metoda që përfaqësojnë atributet dhe sjelljen e objekteve të botës reale. Ekzistojnë disa koncepte të rëndësishme OOP si Abstraksioni i të dhënave, Enkapsulimi, Polimorfizmi, Mesazhimi, Modulariteti dhe Trashëgimia. Disa gjuhë të njohura OOP janë Java dhe C. Megjithatë, ato mund të përdoren edhe për të kryer Programim Procedural.
Dallimi kryesor midis OOP dhe Programimit Procedural është se fokusi i Programimit Procedural është të zbërthejë detyrën e programimit në një koleksion variablash dhe nënprogramesh ndërsa fokusi i OOP është të zbërthejë detyrën e programimit në objekte, të cilat përmbledhin të dhëna dhe metoda. Dallimi më i dukshëm mund të jetë se ndërsa Programimi Procedural përdor procedura për të operuar drejtpërdrejt në strukturat e të dhënave, OOP do t'i bashkojë të dhënat dhe metodat së bashku në mënyrë që një objekt të funksionojë në të dhënat e veta. Kur bëhet fjalë për nomenklaturën, procedura, moduli, thirrja e procedurës dhe ndryshorja në Programimin Procedural shpesh referohen si metodë, objekt, mesazh dhe atribut në OOP, respektivisht.