Kratka istorija Jave
1990-ih godina rođeni su jednočipski računarski sistemi. Oni ne samo da su jeftini (prethodni računari su bili vrlo glomazni i skupi), već su i moćni, i mogu znatno da podignu nivo pameti potrošačke elektronike.
Kako bi prvi zauzeli tržište, kompanija Sun je 1991. godine formirala projektni tim pod nazivom „Green", na čelu sa Džejmsom Goslingom (James Gosling), sa ciljem da razvije arhitekturu programa koja bi mogla da radi na raznim potrošačkim elektronskim uređajima.
Projektni tim je prvo razmišljao o pisanju programa u C++-u, ali C++ je previše složen i obiman, a uz to i ugrađeni procesorski čipovi u potrošačkoj elektronici su raznoliki, tako da napisati program koji radi na različitim platformama nije lako — C++ se ne snalazi najbolje kada je reč o višeplatformskosti.
Nakon dugog razmišljanja, tim se konačno odlučio da na temelju C++-a stvori novi programski jezik koji bi istovremeno odbacio složene pokazivače i upravljanje memorijom iz C++-a i bio kompatibilan sa raznim uređajima. Ovaj jezik se prvobitno zvao Greentalk, sa ekstenzijom fajla .gt. Ime je prilično proizvoljno — nastalo je samo zato što se tim zvao Green, bez posebnog značenja.
Oak je drugo ime za „Javu", i ovog puta ima neko značenje. Oak (hrast) je simbol snage, a mnoge evropske i američke države, među kojima SAD, Francuska i Nemačka, izabrale su ga za svoje nacionalno drvo. Hrast izgleda ovako.

godine pojavio se prototip Oaka, ali kada je tim održao prezentaciju proizvođačima hardvera, nije dobio priznanje, pa je Oak ostavljen po strani.
godine tim je otkrio da je Java pogodnija za internet programiranje. Nakon toga je, koristeći jezik Oak, razradio tehnologiju koja omogućava ugrađivanje malih programa u veb stranice radi izvršenja — Applet. Applet nije samo mogao da se ugradi u veb stranicu, već je mogao i da se prenosi preko mreže zajedno sa stranicom.
Moram da primetim kako se tehnologija zaista brzo menja — Applet je spasio Oak i pretvorio ga u moćnu Javu, a ipak je i sam Applet još davno nemilosrdno zbrisao sa scene. Nije li to okrutno?
- godine Oak je preimenovan u „Javu", pošto je ime Oak već registrovala druga kompanija. Najbolje bi bilo da novo ime izrazi suštinu tehnologije: dynamic (dinamičan), revolutionary (revolucionaran), Silk (mekan poput svile), Cool (fancy) i tako dalje. Uz to, ime mora biti lako za pisanje i zanimljivo za izgovor.
Posle mnogo biranja, tim se konačno odlučio za „Javu". Pažljiviji čitaoci mogu primetiti da u samoj reči „Java" postoji jedna osetljiva reč, pa je WeChat (u delu za nazive albuma članaka) neko vreme, u okviru filtera osetljivih reči, zabranio i samu reč Java — tada sam morao da koristim „Džava" umesto Java (uz kecku).
„Java" je englesko ime za ostrvo Java u Indoneziji, poznato po proizvodnji kafe, pa ste mogli primetiti da se reč Java često pojavljuje uz šoljicu kafe iz koje se dimi.

Iste godine, kompanija Sun je na konferenciji SunWorld zvanično objavila Javu 1.0, prvi put izgovorivši slogan „Write Once, Run anywhere". Magazin Time svrstao je Javu među deset najboljih proizvoda 1995. godine.
- januara 1996. objavljen je JDK 1.0, i Java je dobila svoje prvo zvanično izvršno okruženje. JDK 1.0 je čisto interpretirajuća Java virtuelna mašina, a glavne tehnologije su: Java virtuelna mašina, AWT (grafičko okruženje) i Applet.
U aprilu je deset glavnih dobavljača operativnih sistema i računara izjavilo da će ugraditi Java tehnologiju u svoje proizvode. Do septembra je već oko 83.000 veb aplikacija koristilo Javu. Krajem maja održana je prva konferencija JavaOne u San Francisku, i od tada je JavaOne postala veliko tehnološko okupljanje za milione Java programera širom sveta.
februara 1997. objavljen je JDK 1.1, čije su glavne tehnologije: JAR format fajlova, JDBC, JavaBeans i RMI (Remote Method Invocation).
decembra 1998. objavljen je JDK 1.2, prelomna verzija. Sun je u njoj podelio Javu u tri pravca: J2SE za razvoj na radnoj površi, J2EE za razvoj u preduzećima i J2ME za razvoj na mobilnim uređajima. Glavne tehnologije: EJB i Swing.
maja 2000. objavljen je JDK 1.3, koji je znatno izmenio Java 2D.
februara 2002. objavljen je JDK 1.4, verzija kojom je Java zaista sazrela; učestvovale su poznate kompanije poput IBM-a i Fujitsua (Autor je radio tri i po godine u ovom japanskom gigantu iz Fortune 500). Glavne tehnologije: regularni izrazi i NIO.
septembra 2004. objavljen je JDK 5 — primetite da je Sun napustio šemu imenovanja „1.x". JDK 5 je znatno poboljšao upotrebljivost Java sintakse, na primer: autoboxing, generici, dinamičke anotacije, enumeracije, promenljivi broj argumenata i foreach petlja.
decembra 2006. objavljen je JDK 6: J2SE postaje Java SE 6, J2EE postaje Java EE 6, a J2ME postaje Java ME 6. JDK 6 je verovatno verzija sa najdužim životnim vekom u istoriji Jave. Glavni razlozi su: porast složenosti koda, svetska ekonomska kriza i Oracle-ovo preuzimanje Sun-a.
Poslednja nadogradnja za JDK 6 bila je Java SE 6 Update 211, objavljena 18. oktobra 2018. — raspon od čak 12 godina!
februara 2009. objavljen je JDK 7, ali sa odsečenim funkcijama. Mnoge nestrpljivo očekivane funkcije nisu završene, poput Lambda izraza. Glavni razlog je to što je Sun zapao u poslovne probleme i više nije bio u stanju da gura razvoj JDK-a 7.
aprila 2009. Oracle je otkupio kompaniju Sun, čija je tržišna kapitalizacija nekad prešla 200 milijardi dolara, za 7,4 milijarde dolara — sunce je konačno zašlo. Za Javu, kao dete, to se može shvatiti i kao dobra i kao loša stvar. Dobro je što Oracle ima novca i može uložiti sredstva u razvoj Jave; loše je što je Oracle očuh, pa mu Java sigurno nije toliko bliska kao Sun-u, i ide vrlo komercijalnim putem.
marta 2014. konačno je stigao JDK 8 — koraci su mu bili toliko nesigurni, ali je na kraju ipak došao, noseći svoje najmoćnije oružje — Lambda izraze. Iako je JDK 19 već pred objavljivanjem, fora „izdaj nove koliko god želiš, ja ostajem na Javi 8" i danas živi.
septembra 2017. objavljen je JDK 9. Otada se brzina ažuriranja JDK-a prosipa preko programera — po jedna verzija na pola godine. Iako Oracle ima dobru nameru, da izbegne rizik od kašnjenja usled dodavanja funkcija, mora se priznati da je tempo ažuriranja verzija zaista pomalo prečest.
To dovodi do problema: jedva što ažurirate na novu verziju, posle šest meseci Oracle je više ne održava. Za ovaj problem Oracle-ovo rešenje je prilično neobično — samo svaki šesti veliki JDK izdanje dobija dugoročnu podršku (Long Term Support, LTS).
JDK 8 je LTS verzija, JDK 11 objavljen 25. septembra 2018. je LTS verzija, dok JDK 10 objavljen 20. marta 2018. jedva da vredi pomena.
JDK 17, objavljen 2021. godine, trenutno je najnovija LTS verzija.
JDK 12, JDK 13, JDK 14, JDK 15, JDK 16, JDK 18 i JDK 19 su prelazna izdanja, pomalo kao eksperimentalni proizvodi, i programeri im ne pridaju previše pažnje.
Java se razvija već više od 20 godina, i kao programski jezik zaista nije obična — objektno-orijentisana ideja koju Java predstavlja donela je revolucionarne promene u inženjersku oblast, a ključno je to što Java neprestano prihvata promene.
U oblasti obrade velikih količina podataka imamo Apache Kafka, Apache Samza, Apache Storm, Apache Spark i Apache Flink — osim što je Spark napisan u Scali, funkcijskom jeziku koji radi na JVM-u, ostali su napisani u Javi.
U doba oblaka Java se suočava sa izazovom ekosistema kontejnera (poput Docker-a) koji predvodi Go jezik, ali velikih distribuiranih sistema u Javi je sve više — Java i dalje igra glavnu ulogu u oblaku i u distribuiranim sistemima, i formirala je veliki ekosistem.
Iako su Java, kao i C++ i C, postali „stari" i neprestano su izazivani od strane drugih jezika, samo jake čeka prilika da prihvate izazov, zar ne? Verujem da je budućnost Jave i dalje vrlo svetla.
