Objektno orijentirano programiranje vs procesno programiranje
Objektno orijentirano programiranje (OOP) i procesno programiranje dvije su paradigme programiranja. Programska paradigma je temeljni stil računalnog programiranja, a razlikuju se u načinu na koji su predstavljeni različiti elementi programa i kako su definirani koraci za rješavanje problema. Kao što ime sugerira, OOP se fokusira na predstavljanje problema pomoću predmeta iz stvarnog svijeta i njihovog ponašanja, dok se Proceduralno programiranje bavi predstavljanjem rješenja problema pomoću postupaka, koji su zbirka koda koja se odvija određenim redoslijedom. Postoje programski jezici koji podržavaju ključne aspekte OOP-a (koji se nazivaju OOP jezici), proceduralni (koji se nazivaju procesni jezici) i oba. Ali važno je napomenuti da su OOP i proceduralna dva načina predstavljanja problema koje treba riješiti, a nije važno koji se jezik koristi. Drugim riječima, jezici OOP-a mogu se koristiti za procesno programiranje dok se procesni jezici ponekad mogu koristiti za OOP, uz određeni napor.
Proceduralno programiranje je način programiranja identificiranjem skupa koraka za rješavanje određenog problema i točnim redoslijedom kojim se trebaju izvesti kako bi se postigao željeni ishod ili stanje. Na primjer, ako želite izračunati saldo za zatvaranje na kraju mjeseca za bankovni račun, potrebni koraci bit će sljedeći. Prvo stječete početni saldo računa, a zatim smanjujete sve iznose zaduženja u toku mjeseca. Nakon toga dodajete sve iznose kredita koji su se dogodili tijekom mjeseca. Na kraju postupka dobit ćete završni saldo računa krajem mjeseca. Jedan od glavnih koncepata proceduralnog programiranja je postupak postupka. Postupak poznat i kao podprogram, metoda ili funkcija sadrži naručeni popis uputa koje je potrebno provesti. Postupak se može pozvati u bilo koje vrijeme tijekom izvršenja bilo kojim drugim postupkom ili samim sobom. Primjeri procesnih programskih jezika su C i Pascal.
U OOP-u se fokusira na razmišljanje o problemu koji se treba riješiti u stvarnim elementima i predstavlja problem u smislu predmeta i njihovog ponašanja. Objekt je struktura podataka koja vrlo nalikuje nekom stvarnom objektu. Objekti sadrže polja podataka i metode koji predstavljaju atribute i ponašanje objekata u stvarnom svijetu. Postoji nekoliko važnih OOP koncepata poput apstrakcije podataka, enkapsulacije, polimorfizma, razmjene poruka, modularnosti i nasljeđivanja. Neki popularni OOP jezici su Java i C #. Međutim, oni se mogu koristiti za obavljanje proceduralnog programiranja.
Ključna razlika između OOP-a i Proceduralnog programiranja je u tome što je fokus Proceduralnog Programiranja raščlanjivanje programskog zadatka na kolekciju varijabli i podprograma, dok je OOP fokusiranje programskog zadatka razbiti u objekte koji objedinjuju podatke i metode. Najistaknutija razlika mogla bi biti u tome što dok Proceduralno programiranje koristi postupke za izravno djelovanje na podatkovnim strukturama, OOP će objedinjavati podatke i metode zajedno tako da će objekt raditi na vlastitim podacima. Kada je u pitanju nomenklatura, postupak, modul, poziv postupka i varijabla u Proceduralnom programiranju često se u OOP-u nazivaju metoda, objekt, poruka i atribut.