Objektorientētā programmēšana pret procesuālo programmēšanu
Objektorientētā programmēšana (OOP) un procedurālā programmēšana ir divas programmēšanas paradigmas. Programmēšanas paradigma ir datorprogrammēšanas pamatstils, un tās atšķiras ar to, kā tiek attēloti dažādi programmas elementi un kā tiek definēti problēmu risināšanas soļi. Kā norāda nosaukums, OOP koncentrējas uz problēmu attēlošanu, izmantojot reālās pasaules objektus un to uzvedību, savukārt procesuālā programmēšana nodarbojas ar problēmu risinājumu attēlošanu, izmantojot procedūras, kas ir koda kolekcijas, kas darbojas noteiktā secībā. Ir programmēšanas valodas, kas atbalsta galvenos OOP aspektus (sauktas par OOP valodām), procedural (sauktas par procedūru valodām) un abus. Taču viena svarīga lieta ir tā, ka OOP un Procedural ir divi veidi, kā attēlot risināmās problēmas, un nav svarīgi, kura valoda tiek izmantota. Citiem vārdiem sakot, OOP valodas var izmantot procesuālajai programmēšanai, savukārt procesuālās valodas dažreiz var izmantot OOP, ar nelielu piepūli.
Procedurālā programmēšana ir programmēšanas veids, identificējot darbību kopumu noteiktas problēmas risināšanai un precīzu to izpildes secību, lai sasniegtu vēlamo rezultātu vai stāvokli. Piemēram, ja vēlaties aprēķināt mēneša beigu slēguma atlikumu bankas kontam, tad nepieciešamās darbības būtu šādas. Pirmkārt, jūs iegūstat konta sākuma atlikumu un pēc tam samazinat visas mēneša laikā radušās debeta summas. Pēc tam jūs pievienojat visas mēneša laikā radušās kredīta summas. Procesa beigās jūs iegūsit konta mēneša beigu beigu atlikumu. Viens no galvenajiem procesuālās programmēšanas jēdzieniem ir procedūru izsaukums. Procedūra, kas pazīstama arī kā apakšprogramma, metode vai funkcija, satur sakārtotu izpildāmo instrukciju sarakstu. Procedūru var izsaukt jebkurā laikā izpildes laikā ar jebkuru citu procedūru vai pati par sevi. Procesuālās programmēšanas valodu piemēri ir C un Pascal.
OOP uzmanības centrā ir domāšana par risināmo problēmu reālās pasaules elementu izteiksmē un problēmas attēlošana objektu un to uzvedības izteiksmē. Objekts ir datu struktūra, kas ļoti atgādina kādu reālās pasaules objektu. Objekti satur datu laukus un metodes, kas atspoguļo reālās pasaules objektu atribūtus un uzvedību. Ir vairāki svarīgi OOP jēdzieni, piemēram, datu abstrakcija, iekapsulēšana, polimorfisms, ziņojumapmaiņa, modularitāte un mantošana. Dažas populāras OOP valodas ir Java un C. Tomēr tos var izmantot arī procesuālās programmēšanas veikšanai.
Galvenā atšķirība starp OOP un procesuālo programmēšanu ir tāda, ka procesuālās programmēšanas mērķis ir sadalīt programmēšanas uzdevumu mainīgo un apakšprogrammu kolekcijā, savukārt OOP mērķis ir sadalīt programmēšanas uzdevumu objekti, kas iekapsulē datus un metodes. Ievērojamākā atšķirība varētu būt tā, ka, lai gan procesuālā programmēšana izmanto procedūras, lai tieši darbotos ar datu struktūrām, OOP apvienos datus un metodes, lai objekts darbotos ar saviem datiem. Runājot par nomenklatūru, procedūru, moduli, procedūras izsaukumu un mainīgo procesuālajā programmēšanas programmā OOP bieži dēvē attiecīgi par metodi, objektu, ziņojumu un atribūtu.