Programimi i orientuar në objekte

Programimi i orientuar në objekte (anglisht: ; shkurt: OOP) është një paradigmë programimi që fokusohet në organizimin e programeve përmes objekteve (objects) dhe ndërveprimeve mes tyre. Objektet përfaqësojnë entitete reale ose konceptuale dhe kombinojnë të dhënat (atributet - attributes) dhe funksionalitetet (metodat - methods) në një strukturë të vetme.

OOP ka revolucionarizuar mënyrën e zhvillimit të softuerit duke siguruar modularitet, ripërdorshmëri dhe fleksibilitet. Duke ofruar një mënyrë më intuitive për të modeluar sisteme komplekse, kjo paradigmë është një ndër më të përdorurat në zhvillimin e teknologjisë moderne, duke përfshirë fusha si inteligjenca artificiale (AI), zhvillimi i uebit dhe Big Data.Larman, C. (2004). Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development. Prentice Hall.
 Përmbledhje 

Origjina e Programimit të Orientuar në Objekte daton në vitet 1960, kur u krijua gjuha programuese Simula 67. E zhvilluar nga Ole-Johan Dahl dhe Kristen Nygaard, Simula 67 u krijua për simulime komplekse dhe prezantoi konceptet revolucionare të klasave dhe instancave. Këto koncepte mundësuan modelimin e sjelljeve të entiteteve reale në softuer dhe krijuan bazën për zhvillimin e OOP.Dahl, O.-J., & Nygaard, K. (1967). Simula 67 Common Base Language. Norwegian Computing Center, Oslo.

Në vitet 1970, gjuha Smalltalk, e zhvilluar në Xerox PARC, përforcoi këto koncepte duke futur një qasje dinamike për krijimin dhe menaxhimin e objekteve. Smalltalk u bë gjuha që vendosi termat “programimi i orientuar në objekte” dhe përdori mesazhet si mënyrë për ndërveprim midis objekteve.Goldberg, A., & Robson, D. (1983). Smalltalk-80: The Language and Its Implementation. Addison-Wesley.

Në vitet 1980, gjuha C++, e cila integroi fuqinë e programimit procedural me konceptet e OOP, ndihmoi në popullarizimin e paradigmës. C++ u bë e njohur për zhvillimin e sistemeve të mëdha dhe aplikacioneve komerciale.Stroustrup, B. (1986). The C++ Programming Language. Addison-Wesley.

Në vitin 1995, gjuha programuese Java prezantoi një epokë të re të OOP duke futur konceptin e makinës virtuale (Java Virtual Machine), që mundësoi ekzekutimin ndër-platformik. Java u bë një nga gjuhët më të përdorura për zhvillimin e aplikacioneve të ndërmarrjeve dhe ndërfaqeve grafike.Gosling, J., Joy, B., Steele, G., & Bracha, G. (2005). The Java Language Specification. Sun Microsystems.

Në vitet e mëvonshme, gjuhë si Python dhe Ruby e zgjeruan konceptin e OOP, duke e kombinuar me fleksibilitetin e qasjeve procedurale. Python u bë shumë i përdorur për aplikacione shkencore, ndërsa Ruby theksoi produktivitetin dhe thjeshtësinë për zhvilluesit.

Sot, OOP është një paradigmë kryesore në zhvillimin e softuerit dhe ndikon në gjuhët moderne për të ndërtuar sisteme komplekse dhe aplikacione bashkëkohore.Freeman, E., & Freeman, E. (2004). Head First Design Patterns. O'Reilly Media.
 Koncepte thelbësore 

 Klasa (ang.: ): Një strukturë që përcakton atributet dhe metodat që një objekt do të ketë. P.sh., klasa Makina mund të përmbajë atributet marka dhe viti, dhe metodat ec() ose ndalo().
 Objekti (ang.: ): Një ekzemplar i një klase. P.sh., një objekt i klasës Makina mund të jetë një BMW, me atributet specifike marka = BMW dhe viti = 2023.
 Trashëgimia (ang.: ): Lejon që një klasë të trashëgojë tiparet dhe sjelljet e një klase tjetër. P.sh., klasa Automjet mund të ketë nënklasa si Makina dhe Motori.
 Polimorfizmi (ang.: ): Ky koncept lejon përdorimin e metodave me të njëjtin emër në klasa të ndryshme, duke u përshtatur me tipin e klasës. P.sh., metoda pershendet() mund të shfaqë "Përshëndetje!" për një Shqiptar dhe "Hello!" për një anglez.
 Kapsulimi (ang.: ): Kufizon qasjen në detajet e brendshme të një objekti dhe siguron qasje vetëm përmes metodave të përcaktuara.
 Abstraksioni (ang.: ): Fsheh kompleksitetin dhe fokusohet vetëm në tiparet dhe funksionalitetet kryesore të një objekti.

 Tendencat dhe e ardhmja 

 Integrimi me Inteligjencën Artificiale (AI): Në aplikimet e IA-së, OOP përdoret për të ndërtuar struktura komplekse si rrjetet neuronale artificiale, ku çdo nyje trajtohet si një objekt. Biblioteka si TensorFlow dhe PyTorch janë ndërtuar mbi parimet e OOP.Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.
 Programimi i Bazuar në Komponentë: Në sistemet moderne, OOP po kombinohet me qasjen e bazuar në komponentë, duke ndihmuar në zhvillimin e aplikacioneve të ndërlikuara si ato të bazuara në mikroshërbime (microservices).Reactive Streams Initiative. (2013). Reactive Programming Concepts. Reactive Streams Documentation.
 Programimi Reaktiv (ang.: ): Në aplikacionet në kohë reale, OOP përdoret për të ndërtuar sisteme që trajtojnë ngjarje në mënyrë dinamike.
  dhe Analiza e Avancuar: Në fushën e të dhënave, OOP përdoret për të menaxhuar struktura të mëdha dhe komplekse, duke ndihmuar në përpunimin dhe analizimin e të dhënave në shkallë të gjerë.Apache Software Foundation. (2023). Apache Spark: Unified Analytics Engine. Apache Foundation.

 Përfundim 
Programimi i Orientuar në Objekte ka revolucionarizuar mënyrën e zhvillimit të softuerit, duke ofruar modularitet, fleksibilitet dhe ripërdorshmëri. Me rritjen e kërkesave për aplikacione të ndërlikuara dhe shkallëzueshmëri të lartë, OOP është bërë një shtyllë kryesore në teknologji.

Ndërthurja e tij me fusha si inteligjenca artificiale, Big Data dhe sistemet reaktive tregon se kjo paradigmë jo vetëm që është thelbësore për zhvillimin e teknologjisë së sotme, por edhe për të ardhmen e saj.

 Referime 

Kategoria:Programim kompjuterik
Kategoria:Gjuhë programimi