ობიექტზე ორიენტირებული პროგრამირება პროცედურული პროგრამირების წინააღმდეგ
ობიექტზე ორიენტირებული პროგრამირება (OOP) და პროცედურული პროგრამირება არის პროგრამირების ორი პარადიგმა. პროგრამირების პარადიგმა არის კომპიუტერული პროგრამირების ფუნდამენტური სტილი და ისინი განსხვავდებიან პროგრამის სხვადასხვა ელემენტების წარმოდგენით და პრობლემის გადაჭრის ნაბიჯების განსაზღვრით. როგორც სახელი გვთავაზობს, OOP ყურადღებას ამახვილებს პრობლემების წარმოდგენაზე რეალურ სამყაროში არსებული ობიექტების და მათი ქცევის გამოყენებით, ხოლო პროცედურული პროგრამირება ეხება პრობლემების გადაჭრის წარმოდგენას პროცედურების გამოყენებით, რომლებიც არის კოდის კრებული, რომელიც მუშაობს კონკრეტული თანმიმდევრობით.არსებობს პროგრამირების ენები, რომლებიც მხარს უჭერენ OOP-ის (ე.წ. OOP ენები), პროცედურული (ე.წ. პროცედურული ენები) და ორივეს ძირითად ასპექტებს. მაგრამ ერთი მნიშვნელოვანი რამ უნდა აღინიშნოს, რომ OOP და Procedural არის გადასაჭრელი პრობლემების წარმოდგენის ორი გზა და არ აქვს მნიშვნელობა რომელი ენა გამოიყენება. სხვა სიტყვებით რომ ვთქვათ, OOP ენები შეიძლება გამოყენებულ იქნას პროცედურული პროგრამირებისთვის, ხოლო პროცედურული ენები ზოგჯერ შეიძლება გამოყენებულ იქნას OOP-ისთვის, გარკვეული ძალისხმევით.
პროცედურული პროგრამირება არის პროგრამირების გზა გარკვეული პრობლემის გადასაჭრელად საფეხურების ნაკრების იდენტიფიცირებით და ზუსტი თანმიმდევრობით, რომლითაც ისინი უნდა შესრულდეს სასურველი შედეგის ან მდგომარეობის მისაღწევად. მაგალითად, თუ გსურთ გამოთვალოთ საბანკო ანგარიშის თვის ბოლოს დახურული ბალანსი, მაშინ საჭირო ნაბიჯები იქნება შემდეგი. ჯერ იძენთ ანგარიშის საწყის ბალანსს და შემდეგ ამცირებთ თვის განმავლობაში წარმოქმნილ ყველა სადებეტო თანხას. ამის შემდეგ, თქვენ ამატებთ ყველა საკრედიტო თანხას, რომელიც მოხდა თვის განმავლობაში. პროცესის დასასრულს თქვენ მიიღებთ ანგარიშის თვის ბოლოს დახურვის ბალანსს.პროცედურული პროგრამირების ერთ-ერთი მთავარი კონცეფციაა Procedure call. პროცედურა, რომელიც ასევე ცნობილია როგორც ქვეპროგრამა, მეთოდი ან ფუნქცია, შეიცავს შესასრულებელი ინსტრუქციების შეკვეთილ ჩამონათვალს. პროცედურა შეიძლება გამოიძახოთ შესრულების დროს ნებისმიერ დროს ნებისმიერი სხვა პროცედურის საშუალებით ან თავისთავად. პროცედურული პროგრამირების ენების მაგალითებია C და Pascal.
OOP-ში ყურადღება გამახვილებულია გადასაჭრელ პრობლემაზე ფიქრზე რეალური სამყაროს ელემენტების თვალსაზრისით და პრობლემის წარმოჩენაზე ობიექტებისა და მათი ქცევის თვალსაზრისით. ობიექტი არის მონაცემთა სტრუქტურა, რომელიც ძალიან ჰგავს რეალურ სამყაროში არსებულ ობიექტს. ობიექტები შეიცავს მონაცემთა ველებს და მეთოდებს, რომლებიც წარმოადგენენ რეალურ სამყაროში არსებული ობიექტების ატრიბუტებსა და ქცევას. არსებობს რამდენიმე მნიშვნელოვანი OOP კონცეფცია, როგორიცაა მონაცემთა აბსტრაქცია, ინკაფსულაცია, პოლიმორფიზმი, შეტყობინებები, მოდულურობა და მემკვიდრეობა. ზოგიერთი პოპულარული OOP ენაა Java და C. თუმცა, მათი გამოყენება შესაძლებელია პროცედურული პროგრამირების შესასრულებლადაც.
OOP-სა და პროცედურულ პროგრამირებას შორის მთავარი განსხვავება ისაა, რომ პროცედურული პროგრამირების ფოკუსი არის პროგრამირების ამოცანის დაშლა ცვლადებისა და ქვეპროგრამების კრებულში, ხოლო OOP-ის ფოკუსი არის პროგრამირების ამოცანის დაშლა. ობიექტები, რომლებიც აერთიანებს მონაცემებსა და მეთოდებს.ყველაზე შესამჩნევი განსხვავება შეიძლება იყოს ის, რომ სანამ საპროცესო პროგრამირება იყენებს პროცედურებს მონაცემთა სტრუქტურებზე უშუალოდ მუშაობისთვის, OOP შეაგროვებს მონაცემებსა და მეთოდებს ერთად ისე, რომ ობიექტი იმუშავებს საკუთარ მონაცემებზე. რაც შეეხება ნომენკლატურას, პროცედურას, მოდულს, პროცედურის გამოძახებას და ცვლადს პროცედურულ პროგრამირებაში ხშირად მოიხსენიებენ, როგორც მეთოდს, ობიექტს, შეტყობინებას და ატრიბუტს OOP-ში..