Објектно оријентисано програмирање вс процесно програмирање
Објектно оријентирано програмирање (ООП) и процедурално програмирање двије су парадигме програмирања. Програмска парадигма је основни стил рачунарског програмирања и разликују се у начину на који су представљени различити елементи програма и како су дефинисани кораци за решавање проблема. Као што име сугерира, ООП се фокусира на представљање проблема помоћу предмета из стварног свијета и њиховог понашања, док се Процедурално програмирање бави представљањем решења проблема помоћу процедура, које су збирке кода које се покрећу одређеним редоследом. Постоје програмски језици који подржавају кључне аспекте ООП-а (који се називају ООП језици), Процедурал (који се називају и Процедурални језици) и оба. Али једна важна ствар која се мора приметити је да су ООП и процедурална два начина представљања проблема који се решавају, и није важно који се језик користи. Другим речима, ООП језици се могу користити за Процедурално програмирање док се Процедурални језици понекад могу користити за ООП, уз одређени напор.
Процедурално програмирање је начин програмирања идентификовањем скупа корака за решавање одређеног проблема и тачним редоследом којим се требају извршити како би се постигао жељени исход или стање. На пример, ако желите да израчунате салдо за затварање на крају месеца за банковни рачун, потребни кораци би били следећи. Прво стекнете почетни салдо рачуна, а затим смањујете све износе задужења настали у току месеца. Након тога додајете све износе кредита током месеца. На крају поступка добит ћете закључни рачун на крају месеца. Један од главних концепата процедуралног програмирања је позив на процедуру. Поступак познат и као подпрограм, метод или функција садржи наређену листу упутстава која треба да се спроведу. Поступак се може позвати у било које време током извршења било којим другим поступком или самим собом. Примери процедуралних програмских језика су Ц и Пасцал.
У ООП-у се фокусира на размишљање о проблему који треба решити у смислу елемената из стварног света и представљање проблема у смислу предмета и њиховог понашања. Објект је структура података која јако подсећа на неки предмет из стварног света. Објекти садрже поља података и методе који представљају атрибуте и понашање објеката у стварном свету. Постоји неколико важних ООП концепата попут апстракције података, енкапсулације, полиморфизма, преношења порука, модуларности и наслеђивања. Неки популарни ООП језици су Јава и Ц #. Међутим, могу се користити и за обављање процедуралног програмирања.
Кључна разлика између ООП и Процедуралног програмирања је у томе што је фокус Процедуралног Програмирања на распадању програмског задатка на колекцију променљивих и подпрограма, док је фокус ООП-а на рашчлањивању програмског задатка на објекте, који капсулирају податке и методе. Најистакнутија разлика могла би бити да, док Процедурално програмирање користи поступке за директно дјеловање на структурама података, ООП ће обједињавати податке и методе заједно, тако да ће објект радити на властитим подацима. Када је у питању номенклатура, поступак, модул, позив процедуре и променљива у Процедуралном програмирању често се називају методом, објектом, поруком и атрибутом у ООП-у, односно.