Programarea orientata pe obiect se concentreaza pe obiecte care sunt entitati independente, fiecare cu propriul comportament si proprietati, iar logica proiectarii software-ului se bazeaza pe interactiunea si colaborarea acestor obiecte. Programarea procedurala, pe de alta parte, este concentrata pe scrierea de operatiuni si de proceduri, care sunt apoi apelate din main. Programarea orientata pe obiect este considerata mai flexibila si mai usoara de mentinut, deoarece toate functiile si datele sunt encapsulate intr-un obiect, in timp ce programarea procedurala poate fi mai greoaie in ceea ce priveste managementul functiilor si a datelor.