1.1 NASTANAK JAVE

 

 

 

 
Javu su prvobitno, 1991. godine, koncipirali James Gosling, Patrick Naughton, Chris Warth, Ed Frank i Mike Sheridan, iz korporacije Sun Microsystems, Inc. Trebalo je 18 mjeseci rada da bi se došlo do prve radne verzije. Ovaj jezik je prvobitno dobio ime "Oak", ali je ono 1995. godine promenjeno u "Java".

 U periodu od prve realizacije Oaka s jeseni 1992. i zvaničnog najavljivanja Jave u proleće 1995, još mnogo osoba je doprinjelo uobličavanju i razvijanju ovog jezika. Bill Joy, Arthur van Hoff, Jonathan Payne, Frank Yellin i Tim Lindholm bili su glavni saradnici na usavršavanju prvobitnog prototipa.

Pomalo neobično, ali glavni pokretač za razvoj Jave nije bio Internet! Osnovni motiv je bila potreba za jezikom nezavisnim od računarske platforme (tj. indiferentnim prema arhitekturi), koji bi se mogao koristiti za pravljenje softvera namjenjenog različitim elektronskim uređajima u domaćinstvu, kao što su mikrotalasne pećnice i daljinske kontrole. Problem sa jezicima C i C++ (kao i sa većinom drugih jezika), sastoji se u tome što se pri prevođenju u binarni oblik oni moraju usmjeriti na određeni procesor. Iako se program pisan na jeziku C++ može prevesti za bilo koji procesor, uvek je potrebno da se prevodilac potpuno usmjeri na konkretan procesor. Teškoća je u tome što su prevodioci skupi i sporo se prave. Očigledno je bilo potrebno lakše i jeftinije rešenje. U pokušaju da dođu do njega, Gosling i ostali su počeli da rade na prenosivom jeziku koji ne zavisi od platforme i čiji bi kôd mogao da se izvršava na različitim procesorima i u različitim okruženjima. Ovi napori su konačno doveli do rađanja Jave.

Otprilike u vreme kada su razrađivani detalji novog programskog jezika, pojavio se drugi, bez sumnje značajniji uticaj koji je odigrao ključnu ulogu u budućnosti Jave. Ovaj činilac bio je, naravno, World Wide Web. Da se Web nije uobličio približno u isto vreme kada i Java, ovaj programski jezik - upotrebljiv ali složen - možda bi se koristio samo za programiranje kućne elektronike. Međutim, sa pojavom World Wide Weba, Java se probila u prvi plan računarskih jezika, jer su i za Web bili potrebni prenosivi programi.

Većina programera vrlo rano nauči da su prenosivi programi, iako poželjni, prilično neostvarljivi. Iako je potraga za efikasnim, prenosivim (platformski nezavisnim) programima stara gotovo koliko i samo programiranje, potisnuli su je u drugi plan preči problemi. Štaviše, pošto se većina korisnika računara svrstala u tri konkurentska tabora: Intel, Macintosh i UNIX, najveći broj programera se zadržao unutar svojih utvrđenih granica i potreba za prenosivim kodom izgubila je svoj primarni značaj. Međutim, sa razvojem Interneta i Weba, stari problem prenosivosti ponovo se pojavio u punoj snazi. Na kraju krajeva, Internet predstavlja raznolik, distribuiran univerzum ispunjen mnogim vrstama računara, operativnih sistema i procesora. Iako su na Internet priključene mnoge različite platforme, korisnici bi želeli da na svima može da se izvršava isti program. Ono što je jednom bilo neugodan ali beznačajan problem, postalo je problem koji je pod hitno trebalo rješiti.

Godine 1993. članovima tima za razvoj Jave postalo je jasno da se problem prenosivosti, sa kojim su se često sretali pri programiranju koda za kontrolere elektronskih uređaja, pojavljuje i pri pravljenju koda za Internet. U stvari, isti problem zbog koga je Java prvobitno smišljena, pojavio se i na Internetu - samo u velikom obimu. To je prouzrokovalo da se fokus primene Jave premesti sa kućne elektronike na programiranje za Internet. Na taj način, premda je želja za ostvarenjem programskog jezika koji ne zavisi od platforme bila početni motiv, za uspeh Jave na visokom nivou zaslužniji je Internet.

Pomenuli smo ranije da Java većinu svojih osobina duguje jezicima C i C++. To nije slučajno. Autori Jave su dobro znali da će poznata sintaksa jezika C i prizvuk objektno orijentisanih osobina jezika C++ privući mnoge iskusne C/C++ programere. Osim očiglednih sličnosti, Java sa jezicima C i C++ ima zajedničke i one osobine koji su ova dva jezika učinili uspešnim.

Kao prvo, Javu su oblikovali, isprobavali i poboljšavali profesionalni programeri. To je jezik utemeljen na potrebama i iskustvu osoba koje su ga stvorile. Zbog toga je Java i jezik programera. Drugo, Java je harmoničan i logički dosledan jezik. Treće, izuzev ograničenja koje postavlja okruženje Interneta, Java omogućuje programeru potpunu kontrolu. Ako programirate na pravi način, to će se pokazati u vašem programu. A pokazaće se i ako ste loš programer. Ukratko, Java nije jezik rastegljivih pravila. To je jezik za profesionalne programere.

Zbog sličnosti između Jave i jezika C++, nameće se misao da je Java samo "C++ u verziji za Internet".Java se od jezika C++ znatno razlikuje i praktično i po filozofiji. Mada je tačno da je Java nastala pod uticajem jezika C++, ona nije njegova poboljšana verzija.Na primjer, Java nije ni uzlazno ni silazno kompatibilna sa jezikom C++. Naravno, sličnosti sa jezikom C++ su znatne i, ako ste programirali u jeziku C++, osećate se kao "kod kuće" i sa Javom. Još nešto: Java nije napravljena da zameni C++ već da reši određen skup problema. C++ je stvoren da reši drugačiji skup problema. Oboje će uporedo postojati još mnogo godina.

Programski jezici se razvijaju iz dva razloga: da bi se prilagodili promenama okruženja i da bi prihvatili novine na polju programiranja. Promena okruženja koja je izazvala pojavu Jave bila je potreba za programima koji rade nezavisno od platforme, namenjenim za distribuciju širom Interneta. Međutim, Java utjelovljuje i nov način na koji ljudi pristupaju pisanju programa. Konkretno, Java njeguje i unapređuje koncepciju objektne orijentisanosti koju je koristio i C++. Na taj način, Java nije jezik koji postoji sam za sebe, već predstavlja sadašnji izraz jednog procesa koji je započeo pre mnogo godina. Sama ova činjenica dovoljna je da Javi obezbedi mesto u istoriji računarskih jezika. Za programiranje na Internetu, Java predstavlja ono što je bio C za sistemsko programiranje: revolucionarnu snagu koja će izmjeniti svjet.