Java – šta, kako i zašto

26. 05. 2014 | uredio | software

May

Kada neko kaže “Java”, vrlo verovatno pomislite na programski jezik Java. No, Java je mnogo više od programskog jezika. To je i softverska platforma koja vam omogućuje pokretanje aplikacija baziranih na Javi i pokretanje appleta unutar web browsera. No, nije sve ni tako idealno…
Zasigurno ste se mnogo puta susreli sa Javom i ako nemate nikakve veze sa programiranjem. Verovatno onda kada ste prvi puta instalirali web browser ili kada ste je morali iz nekog razloga ažurirati. Ponavljamo, ako nemate veze sa programiranjem, tada vrlo verovatno niste dublje ulazili u priču oko Jave niti vas je zanimalo zašto morate imati Javu na svom računaru. Bitno je bilo da sve radi, da je Java ažurirana i da vam se pri svakom pokretanju računara ne pojavi prozor sa obavesti kako imate staru verziju iste i kako biste mogli imati sigurnosnih problema. Ako vas zanima zašto vam treba java, za što se koristi i slično, na pravom ste mjestu.

Što je Java?

Krenimo od osnova. Java je moderan programski jezik koji se koristi u praksi i jedan je od najpopularnijih jezika na svetu. Baziran je na klasama, odnosno objektima pa ga možemo svrstati u objektno-orijentisane programske jezike. Prvo je napravljen sa jednim ciljem, a to je da sa što manje dodataka, omogući programerima razvoj aplikacija, ali bilo koje vrste. Java je programski jezik u kojem možete isprogramirati gotovo sve. Usudili bi se reći da je u C# najkompletniji jezik na svijetu. I prije nego počnete spominjati Python, Mathematicu, C, C++ i slične jezike, setite se da su oni ograničeni. Možda su brži od Jave, u određenim poljima su svakako i lakši za korištenje, no Java ima najširi spektar mogućnosti i definitivno je programski jezik koji je programerima broj jedan. Ako ne verujete nama, proguglajte statistiku pa ćete videti. Od četiri programera na svetu, jedan programira u ovom jeziku. Samo jedna napomena – nemojte Javu miješati sa JavaScriptom. To su dve odvojene tehnologije, odnosno dva različita jezika sa različitim funkcijama.
Vratimo se na Javu. Javu programeri koriste i za izradu raznih appleta (manjih aplikacija) koje vi pokrećete na računaru ili u web browseru i velika je šansa da Javu imate instaliranu na računaru. Ako je nemate, onda ste primetili da vam, recimo, web browser ne radi dobro i da vas stalno upozorava da skinete Java plugin ili Java Development Kit (JDK) da bi sve radilo kako treba. Mi vam preporučujemo da to učinite. Javu možete instalirati na svim operativnim sistemima što nas vodi do sledeće tačke. Java je „cross-platform“ i jedna od najvećih prednosti Jave je što se na svim računarima isto koristi. Tačnije, samo jednom možete napisati kôd, a možete ga pokrenuti na bilo kojem softveru i hardveru, uz minimalne preduslove. To možete zahvaljujući Java bytecodeu. Java se ne kompajlira na najnižoj razini (u mašinskom jeziku), nego u bytecodeu, ali pri tome na računaru morate imati instaliranu Javu s kojom dolazi Java VM (Virtual Machine) i Java Runtime Environment (JRE). Ti detalji vam nisu previše bitni trenutačno, ali želimo da vidite da je Java svestran jezik koji se pokreće na gotovo svim uređajima u svetu. Za par godina ćemo ga vrlo verovatno imati i u ostalim kućanskim aparatima. Šalimo se, no Java je toliko otvorena da nas to ne bi previše začudilo.
Cilj same Jave (iza koje stoji velika kompanija Oracle koja je Javu kupila od Sun Microsystemsa) je prilagoditi se svim mogućim uređajima te postati najkorištenija tehnologija na svetu. To i nije veliki problem jer već sada pokreću preko milijardu uređaja na svetu, a brojka je svakim danom sve veća i veća.
Naravno, to ima i svojih negativnih strana. Java je prilično spora, odnosno samo kompajliranje i pokretanje kôda je mnogo sporije nego kod nekih konkurentskih jezika i tehnologija, ali to je cena koju morate platiti kada imate još jedan sloj kod kompajliranja (op.a. to je ona virtualna mašina koju smo spomenuli malopre). Programerima ta brzina i nije toliko presudna kod samog programiranja, no korisnicima jest kod korištenja aplikacija, ali o tome nekom drugom prilikom.

Java – Softverska platforma

Osim što je Java programski jezik, odnosno alat za programiranje, Java je i set nekoliko računarskih softverskih paketa i specifikacija koji zajedno omogućuju korisnicima pokretanje aplikacija zasnovanih na Javi. Platforma, kao i jezik, nije vezana uz jedan operativni sistem ili specifične hardverske komponente. Javu možemo podeliti na 4 implementacije, odnosno verzije:
– Java Card – Tehnologija koja omogućava malim aplikacijama baziranim na Javi da se pokrenu prilično sigurno (ovaj pojam uzmite s rezervom) na uređajima sa malo memorije i procesorske snage
– Java ME (Micro edition) – Set nekoliko specifičnih profila (ili „libraryja“) za uređaje sa limitiranom memorijom, kapacitetom napajanja, procesorskom snagom … Ona se koristi za razvoj aplikacija za mobilne uređaje, PDA uređaje, pametne televizore, printere …
– Java SE (Standard Edition) – Za razvoj generalnih aplikacija na računarima, serverima i sličnim uređajima
– Java EE (Enterprise Edition) – To je Java SE plus veliki broj dodanih API-ja za razvoj klijent-server aplikacija sa nekoliko razina funkcioniranja
Svaka ova edicija u sebi sadrži java Runtime Environment, Just-in-time (JIT) kompajler, JDK …
Zašto vam sve ovo pričamo? Želimo da shvatite koliko je Java zapravo moćan jezik i u prošlosti niste mogli bez Jave. Danas? Danas je situacija nešto drugačija. Danas dolaze neke nove tehnologije i Java nije bitna, odnosno može se i bez nje.

java

Mogu li bez Jave?

Odgovor na ovo pitanje nije jednostavan, odnosno ne možemo na njega odgovoriti sa „da“ ili „ne“. Zapravo, ne još. Java je jedna od onih tehnologija koja je došla u pravo vreme i svi su je koristili. Danas je možete naći instaliranu na velikoj većini računala. Ako je verovati statistici na stranici statowl, onda oko 70% korisnika ima Javu. Većinom je imaju instaliranu zbog web browsera koji su zahtevali da imate Java plugin u web browseru jer je to bio jedini način da pokrenete applete koji su se nalazili na web stranicama. Rekli smo već da je korisnici instaliraju onda kada shvate da ne mogu nešto videti na web stranici na koju su došli i pritom instaliraju plugin koji im nedostaje. U ovom slučaju je to Java. No, situacija danas je nešto drugačija. Prema stranici W3Techs, samo 4 posto web stranica koriste Javu sa serverske strane, sa samo 0.2 posto web stranica zahteva od klijenata da ju imaju instaliranu. Od tih sitnih posto stranica koji zahtijevaju Javu, 80% web stranica ne treba Javu za onu osnovnu funkcionalnost. Stoga, ako mislite da je Java krucijalan plugin koji morate imati na računaru, grdno se varate.
I sada dolazimo do jednog pitanja koje ćete si vrlo verovatno postaviti, a to je – kakve veze da li imam ili nemam instaliranu Javu? U čemu je problem ako je instalirana, a ne koristim je? Pa odgovor je u ovom slučaju vrlo jednostavan – reč je o sigurnosti.

Java i sigurnosni propusti

Jeste li se ikada pitali zašto tako često možete videti obavest da ažurirate Javu? Mnogi drugi pluginove dobivaju jednu ili dve nadogradnje godišnje, dok se Java stalno nadograđuje. Pošto se ne radi o novim mogućnostima, ostaje samo jedno objašnjenje – gašenje vatre. U punom smislu te reči. U oktobru prošle godine je bila jedna od najvećih nadogradnji Jave unazad godinu ili dvije. Java October 2013 Critical patch Update (CPU) je doneo 127 zakrpa u jednoj nadogradnji od čega je 50 bilo kako bi se sprečila udaljena kontrola računala, dok ih je 12 bilo kritičnih preko kojih su hakeri mogli dobiti potpunu kontrolu nad celim operativnim sistemom. No to nije sve – većina problema se događa na klijentskoj strani, a ne serverskoj. Što znači da nisu pogođeni serveri i web stranice koje koriste Javu, nego korisnici koji bi trebali pristupati tom sadržaju na Internetu. S druge strane, Oracle tvrdi da je sve u redu i pod kontrolom. Nažalost, realnost je drugačija i Oracle očito ima velikih problema i ne može sprečiti sigurnosne rupe koje dolaze sa njihovim proizvodom. Pomalo ironično jer Java Runtime „prisiljava“ aplikacije da se vrte u „sandboxu“ – delu memorije koji je osiguran i kojem se ne može pristupiti. Dok je u „sandbox modu“, program/aplikacija ne može učiniti određene radnje dok mu korisnik ne da dopuštenje. Zato začuđuje toliko propusta koje Java ima. Možda je jedan od razloga to što aplikacija bazirana na Javi ipak komunicira sa određenim datotekama koji su van ‘sandboxa’ i tu nastaju potencijalni problemi. Rešenje – onemogućavanje ili brisanje Jave sa računala.
Na ovu temu su nekoliko reči rekli i stručnjaci za sigurnost. Pogotovo nakon što su velike kompanije kao što su Microsoft, Apple, Facebook i Twitter imali problema zbog Jave. Zamislite kada jedan mali applet od par MB uspe da dovede u pitanje sigurnost jednog takvog IT diva. Znači da nešto nije u redu. Za sada Oracle uspeva ugasiti vatru, no stručnjaci su složni – ne još dugo. Kako je Java kompromitirala velike kompanije? U februaru su određeni inženjeri iz spomenutih kompanija imali zaražene laptope sa malwareom koji je otvorio „rupu“ u sistemu i postojala je realna šansa da neko od hakera dobije potpuni pristup i kontrolu nad tim računarima. Tačnije, nad velikim brojem računara ali i na tim određenim laptopima koje su inženjeri koristili. Stručnjaci za sigurnost kažu da bi Oracle možda trebao malo bolje revidirati svoj kôd koji pušta u produkciju, te imati interni mehanizam koji će rešavati ovakve sigurnosne probleme. Odnosno, morali bi imati mehanizam koji će probati „probiti“ svaki njihov kôd, a to će postići tako da zaposle hakere koji će se s time baviti. Na to su ljudi raznih profila upozoravali Sun, a i Oracle tokom godina, no pitanje je što se po tom pitanju poduzelo. Ako imaju mehanizme koji bi trebali otklanjati sigurnosne probleme, onda im je mehanizam jako loš. Ako nemaju – onda ignoriraju stuku i stručnjake koji im samo žele pomoći. Realno gledajući, svima je u interesu da se spomenuti problemi riješe.

Uklanjanje Jave

Kao što smo rekli, teško je reći nekome da instalira ili ukloni Javu sa svog računala. Ako programirate u Javi, onda nema šanse da maknete Javu. Najbolje rešenje u tom slučaju je korištenje Linuxa i programiranje na tom operativnom sustavu. Šanse da „preživite“ su vam veće iako je Java cross-platform tehnologija i propusti se mogu iskoristiti i na jednom i na drugom operativnom sistemu.
No, ako vam je Java nepotrebna, tj. Ne sećate se kad ste je zadnji puta trebali ili posećujete web stranice koje ne koriste Javu, slobodno ju uklonite. Uklonite ju sa računara i uklonite pluginove za web browsere. To je jedini način da budete potpuno sigurni kako niko ne može iskoristiti rupe koje je Java napravila. Mnogi misle da im ništa neće biti ako imaju Javu ili ako imaju instaliranu stariju verziju, pa kasnije požale. Zato je naš savet – uklonite ili u krajnjem slučaju onemogućite Javu dok ju ne trebate. Kad ju zatrebate, upalite ju, no svakako ju opet ugasite kasnije.

Kako onemogućiti ili izbrisati Javu?

Ako je želite izbrisati sa računara, odite u Control Panel, nađite instalirane aplikacije, potražite Javu i uklonite ju. Ako imate više stavki, uklonite ih sve. Nakon toga resetujte računar i provjerite da ste sve uklonili. Također, napravite detaljnu pretragu računara i uklonite sve datoteke koje imaju ikakve veze sa Javom, a ostale su i nakon što ste je uklonili. Nakon toga bi bilo korisno sa aplikacijom kao što je CCleaner očistiti računar i registry. Osim na računaru, Javu treba ukloniti i iz web browsera. Tu ste najranjiviji i najlakše je dobiti kontrolu nad računarom preko web preglednika. Kad-tad ćete posetiti neku web stranicu i imati ćete upaljenu Javu, a stranica će vas preko Jave „zaraziti“. Kako ju ukloniti iz preglednika?
– Google Chrome – U URL traku upišite „chrome://plugins“ (bez navodnika) i stisnite . Locirajte sve instance Jave i kliknite disable ili delete.
– Mozilla Firefox – U URL traku upišite „about:addons“ (također bez navodnika), stisnite i napravite isto ko i za Chrome.
– Opera – Postupak je isti kao i za prethodna dva web preglednika, samo što u URL traku morate upisati „opera:plugins“.
– Internet Explorer – Uklanjanje Jave iz IE je malo komplikovannije jer IE ne dolazi sa sistemom za modifikovanje pluginova. Morati ćete ručno u registryju promeniti određenu vrednost kako bi onemogućili Javu.

Stisnite kombinaciju tipki . To nam otvara Registry Editor. Locirajte HKEY_CURRENT_USERSoftwareMicrosoftCurrentVersionInternet Settingsones3 i promenite vrednost ključa iz 1C00 u 0. Resetujte računar i to je to.

Problemi sa kompatibilnošću

U zadnje vreme postoji jako puno problema sa kompatibilnošću, a jedan od razloga je mnogo verzija Jave na računalima širom sveta, a često te verzije nisu kompatibilne. Odnosno, Java je kompatibilna, no kada se promijeni jedan mali segment Jave, postoji šansa da to smeta jednoj od prijašnjih verzija. I onda nastanu komplikacije. Sve je povezano sa sigurnošću, kao što smo rekli, i izmjene su vrlo česte, pa je jedno od rešenja da svi uvek imaju istu verziju Jave. Naravno, to je teško za očekivati, no tokom marta bi trebala doći Java 8 (1.8), i svi će biti na istoj razini nakon ažuriranja i nadamo se da će biti malo drugačije nego sa verzijom 7.