Prvi OOP programski jezik i kako su nastali objekti u programiranju


Kada su softverske kompanije zaključile da sa postojećim tehnikama ne mogu na optimalan način razvijati i unapređivati svoja rješenja, i kada su shvatili da će projekti kasniti i neće zadovoljavati sve viši standard koje su kupci zahtijevali, počelo se razmišljati oko takve tehnike programiranja koja bi u mnogome olakšala razvoj novih i održavanje postojećih rješenja. Uvidjelo se da postojeći programski jezici moraju pretrpjeti promjene u koliko se želi da izvorni kôd bude lakši za razumijevanje, jednostavniji za izmjene nakon isporuke, sigurniji za upravljanje podacima korisnika, a prije svega žečjelo se postići veća efektivnost softverskih timova koji su redundantnim poslovima umanjivali svoju efikasnosti, što je dovodilo u pitanje u većini slučajeva likvidnost kompanija.

Desetak godina ranije, tačnije sredinom šezdesetih godina prošlog stoljeća NASA je ekperimentirala sa objektno orijentisanim osobinama programskog jezika SIMULA [11]. Ove aktivnosti ostale su u okviru istraživanja i nisu dobile potreban publicitet, da bi nešto kasnije bio objavljen prvi objektno orijentisani programski jezik nazvan Smalltalk. Smalltalk je objavljen 1970. godine od strane kompanije Xerox PARC, a što se smatra prvim objektno orijentisanim programskim jezikom. Smaltallk bio je djelo grupe inženjera koji su radili u Learning Research Group (LRG), a među poznatim licima koji se vežu za Smalltalk su: Alan Kay, Dan Ingalls, Adele Goldberg i drugi. Prva verzija ovog jezika bila je Smalltalk-71 urađena 1971 godine. Odmah nakon ove verzije uslijedile su modifikacije jezika, koje su između ostalog pronađene i u programskom jeziku SIMULA. Nakon više godina unapređenja ovog programskog jezika konačno je uslijedila i prva javno dostupna verzija prvog objektno orijentisanog jezika 1980. godine, dok je 1983 objavljen je prvi priručnik za korištenje ovog jezika [12].

beyond_java_i_2_tt7

S druge strane 1979. godine mladi inžinjer iz Bell (sada AT&T) Laboratorija, Bjarne Stroustrup, počeo je eksperimentirati sa dodacima za C programski jezik. Njegova namjera je bila da pronađe bolji alat za implementaciju velikih projekata, koji su u tom periodu imali velike probleme u samom održavanju i kompleksnosti rješenja. U tom vremenu, prosječan projekat sastojao se od 10.000 linija kôda (LOC). Da se zadovolje zahtjevi velikih projekata i tima programera Bjarne nastoji u C programski jezik unijeti osobine objektno orjentisanog programiranja viđene kroz Simula i Smalltalk. Nekoliko godina rada na dodacima Bjarne 1983. godine objavljuje novi programski jezik nazvan prvo C sa klasama a kasnije C++, a koji je bio nadogradnja C programskog jezika. Kako ga je njegov tvorac zamislio, C++ u sebi sadržava klase kao osnovne tipove objektno orjentisanog programskog jezika.

I pored toga što je Simula, a zatim nešto kasnije Smalltalk prvi objektno orjentisani programski jezici, ipak OOP koncept se nije masovno proširio sve dok programski jezici poput C++, Pascal i Delphi nisu evoluirali u OOP jezike. Masovna upotreba OOP koncepta veže se za drugu polovinu 80-tih godina prošlog vijeka. I danas možemo kazati da su ovi jezici najrasprostranjeniji i najviše u upotrebi. Osim toga značajan datum u evoluciji programskih jezika u OOP jezike jeste i 1995. godina kada se pojavljuje Java programski jezik. Nekoliko godina kasnije, odnosno 2001. godine [13] Microsoft obznanjuje svoj .NET Framework i novi programski jezik C# koji po svojoj strukturi spada u grupu OO programskih jezika.

Danas mnogo godina kasnije možemo kazati da su C++, Java i C# najrasprostranjeniji objektno orijentisani programski jezici u kojim se piše skoro 90% svih današnjih velikih softverskih projekata.

Reference

[11]  R. W. Sebesta, Concepts of Programming Languages, New York: Addison-Wesley, 2012.
[12]  A. Goldberg, Smalltalk-80 THe Interactive Programming Environment, London: Addison-Wesley, 1983.

[13] http://www.microsoft.com

About Bahrudin Hrnjica

PhD in Mechanical Engineering, Microsoft MVP for .NET. Likes .NET, Math, Mechanical Engineering, Evolutionary Algorithms, Blogging.

Posted on 23/04/2016, in .NET, C#, C/C++, Knjige and tagged , , . Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s