Jump to content

Programimi i orientuar në objekte

Nga Wikipedia, enciklopedia e lirë
(Përcjellë nga POO)

Programimi i Orientuar në Objekte (anglisht: object-oriented programming; 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.[1]

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.[2]

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.[3]

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.[4]

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.[5]

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.[6]

Koncepte thelbësore

[Redakto | Redakto nëpërmjet kodit]
  1. Klasa (ang.: Class): 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().
  2. Objekti (ang.: Object): 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.
  3. Trashëgimia (ang.: Inheritance): 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.
  4. Polimorfizmi (ang.: Polymorphism): 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.
  5. Kapsulimi (ang.: Encapsulation): Kufizon qasjen në detajet e brendshme të një objekti dhe siguron qasje vetëm përmes metodave të përcaktuara.
  6. Abstraksioni (ang.: Abstraction): Fsheh kompleksitetin dhe fokusohet vetëm në tiparet dhe funksionalitetet kryesore të një objekti.

Tendencat dhe e ardhmja

[Redakto | Redakto nëpërmjet kodit]
  1. 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.[7]
  2. 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).[8]
  3. Programimi Reaktiv (ang.: Reactive Programming): Në aplikacionet në kohë reale, OOP përdoret për të ndërtuar sisteme që trajtojnë ngjarje në mënyrë dinamike.[8]
  4. Big Data 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ë.[9]

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.

  1. ^ Larman, C. (2004). Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development. Prentice Hall.
  2. ^ Dahl, O.-J., & Nygaard, K. (1967). Simula 67 Common Base Language. Norwegian Computing Center, Oslo.
  3. ^ Goldberg, A., & Robson, D. (1983). Smalltalk-80: The Language and Its Implementation. Addison-Wesley.
  4. ^ Stroustrup, B. (1986). The C++ Programming Language. Addison-Wesley.
  5. ^ Gosling, J., Joy, B., Steele, G., & Bracha, G. (2005). The Java Language Specification. Sun Microsystems.
  6. ^ Freeman, E., & Freeman, E. (2004). Head First Design Patterns. O'Reilly Media.
  7. ^ Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.
  8. ^ a b Reactive Streams Initiative. (2013). Reactive Programming Concepts. Reactive Streams Documentation.
  9. ^ Apache Software Foundation. (2023). Apache Spark: Unified Analytics Engine. Apache Foundation.