PROGRAMSKI JEZIK JAVA
Što je Java ?
Činjenica koja nam otežava jednostavno definiranje ovog pojma je ta da
je Java u biti puno različitih stvari. Osim toga, pravi potencijal Jave
u mnogome ovisi o kojoj Javi u biti govorimo.
Za Javu danas možemo reći da je:
1. specifikacija programskog jezika i standardni zbir klasa
2. implementacija navedenog programskog jezika i njegovih pratećih datoteka
(libraries) u okolici prevođenja i izvođenja (compile and run time enviroment)
za izradu i izvršavanje aplikacija
3. implementacija navedenog programskog jezika kao podskup ugrađenog koda
u HTML stranicama (applet)
4. implementacija navedenog programskog jezika kao dodatak animaciji i
interakciji kod 3D objekata i scena (VRML 2.0)
Možemo tvrditi da svaku od danih podstavaka prezentira drugačija implementacija
Jave. Svaka od njih ima svojih prednosti kao i ograničenja. Važno je u
ovom trenu razumjeti iako Java programski jezik podržava neke vrste manifestacija,
to ne znači da će pojedina manifestacija biti dopuštena ili čak moguća
u svim implementacijama. Gledano s praktične strane, performansa i sigurnost
nam ograničavaju što danas možemo napraviti unutar Java programskog okruženja.
2. The Java Virtual Machine – JVM
Projektanti Jave su se odlučili na korištenje kombinacije kompilacije
i interpretiranja. Programi pisani u Javi se prevode u strojni jezik,
ali u strojni jezik računala koje zapravo ne postoji. Ovo takozvano prividno
(virtual) računalo se zove "Java Virtual Machine".
Strojni jezik za Java Virtual Machine se zove Java bytecode. Nema razloga
zbog kojega Java bajt kod ne bi mogao biti korišten kao strojni jezik
i nekog stvarnog računala, osim ovog prividnog. Zapravo, Sun Mycrosystems,
začetnik Jave, razvio je CPU-ove koji izvršavaju Java bajt kod kao svoj
strojni jezik.
Ipak, jedna od glavnih prednosti Jave je da zapravo može biti korištena
na bilo kojem računalu. Sve što je na tom računalu potrebno je interpreter
za Java bajt kod. Takav interpreter oponaša Java virtual machine na isti
način kao što prividno računalo oponaša osobno računalo.
Naravno, Java interpreter je potreban za svaku vrstu računala, ali nakon
što računalo dobije Java bajt kod interpreter, može izvršavati bilo koji
Java bajt kod program. A isti taj Java bajt kod program može biti izvršen
na bilo kojem računalu koje ima takav interpreter. Ovo je jedna od glavnih
osobina Jave: isti kompilirani program se može izvršavati na više različitih
vrsta računala.
Postavlja se pitanje zašto uopće koristiti prijelazni Java bajt kod?
Zašto se ne bi isporučivao izvorni Java program pa da ga svako kompilira
za sebe u strojni jezik računala na kojem ga želi koristiti? Prvi od mnogo
razloga je da kompiler mora razumijeti Javu, složeni jezik više razine.
Kompiler, sam po sebi, vrlo je složen program, dok je, za razliku od njega,
Java interpreter prilično mali, jednostavan program. Zbog toga je jednostavnije
napisati interpreter za novu vrstu računala, a jednom kad je urađeno,
to računalo može pokretati bilo koji kompilirani Java program. Sa druge
strane, bilo bi mnogo složenije napisati Java kompiler za isto računalo.
Osim toga, mnogi Java programi su namijenjeni dohvaćanju preko mreže.
Ovo vodi do očitih sigurnosnih pitanja: korisnik ne želi spustiti i pokrenuti
program koji bi mogao nanijeti štetu njegovom računalu ili podacima. Java
interpreter služi kao međuspremnik između korisnika i spuštenog programa.
Korisnik zapravo pokreće interpreter koji neizravno izvršava dohvaćeni
program. Interpreter može zaštititi korisnika i računalo od moguće opasnih
radnji tog programa.
3. Java-kao jezik za pisanje aplikacija
Mnogo ljudi misli da Javu koristimo samo kao dodatak vlastitim Web HTML
stranicama tako da rade interesantne efekte sa slikama ili računaju koliko
ste dana ili minuta stari. Međutim, Javu možemo koristiti isto kao C++
za pisanje stand-alone aplikacija. Postupak je sljedeći:
1. prevodimo Java izvorni kod u tzv. bajtni kod
2. izvršavamo bajtni kod interpretiranjem unutar JVM (Javine Virtualne
Mašine)
Vidimo da je po strukturi implementacije programskog jezika Java negdje
na prijelazu između dosad kristalno jasnih definicija pojmova kompajler
i interpreter. Ona spada u obje klasifikacije dok uistinu nije potpuno
niti jedna od njih.
Sâm bajtni kod je dosta manji od ekvivalentnog izvršnog koda, recimo,
C-a, ali brzina njegovog interpretiranja daleko zaostaje naspram brzine
izvršavanja ekvivalentnih programa pisanih u C-u. Alternativno rješenje
je u korištenju tzv. just-in-time interpretiranja, gdje Javina Virtuelna
Mašina prebacuje bajtni kod u native kod prije samog izvršavanja. To za
manje aplikacije pruža razumnu performansu uz zadržanu prenosivost izvršnog
koda.
Međutim, čak i toliko naglašavana prenosivost možda ne počiva na čvrstim
temeljima. Iole veće aplikacije će vjerojatno uslijed ograničenja nametnutih
standardnim Java okruženjem biti prisiljene koristiti vlastita korisnička
sučelja u vidu native library datoteka (JNI) čijim se funkcijama proširuju
mogućnosti Jave. U tom slučaju mada je osnovna aplikacija prenosiva, morat
će se prilagođavati od operativnog sistema do različitih arhitektura računala
library datoteke pisane u C/C++-u bez kojih osnovna aplikacija neće moći
raditi.
4. Osnovna građa programa
Dva su osnovna dijela programiranja: podaci i naredbe. Za rad s podacima
potrebno je razumijevanje varijabli i tipova, a za rad s naredbama potrebno
je razumjeti upravljačke strukture (control structures) i podprograme
(subroutines). Velik dio ovih predavanja posvećen je usvajanju ovih modela.
Varijabla je samo lokacija u memoriji (ili nekoliko lokacija promatranih
kao jedinica) kojemu je dodijeljeno ime da ga se u programu može lako
pozivati i koristiti. Programer treba voditi računa samo o imenu, vođenje
računa o memorijskom mjestu dužnost je kompilera. Programer ne smije gubiti
iz vida da ime upućuje na neku vrstu mjesta u memoriji koje može spremiti
podatke, čak i ako ne mora znati gdje je to točno u memoriji.
U Javi i većini ostalih jezika varijabla ima tip (type) koji ukazuje
na vrstu podataka koje može spremiti. Jedna vrsta varijabli može sadržavati
integer - cjelobrojne vrijednosti, dok druga sadrži floating point - brojeve
s decimalnim mjestima. Računalo pravi razliku između integer 17 i floating
point 17.0, zapravo u računalu izgledaju sasvim različito. Također postoje
i tipovi za pojedinačne znakove, nizove znakova, kao i za manje uobičajene
tipove kao što su datumi, boje, zvukovi ili bilo koji drugi tip podataka
koje bi program mogao spremiti.
Programski jezici uvijek imaju naredbe za stavljanje i vađenje podataka
u i iz varijabli i za obradu tih podataka. Na primjer, sljedeća "izjava
dodjeljivanja", koja se može pojaviti u Java programu, kaže računalu
da uzme podatak iz varijable "glavnica", pomnoži taj broj sa
0.07 i spremi rezultat u varijablu "kamata":
kamata = glavnica * 0.07;
Također postoje i ulazne naredbe za uzimanje podataka od korisnika ili
iz datoteka na diskovima računala i izlazne naredbe za slanje podataka
u suprotnom smjeru. Ove osnovne naredbe - za pomicanje podataka s mjesta
na mjesto i za obradu podataka su dijelovi za izradu svih programa. Ovi
dijelovi su složeni u složene programe korištenjem upravljačkih struktura
i podprograma.
Program je niz naredbi. U običnom odvijanju računalo izvodi ove naredbe
redom kako se pojavljuju jednu za drugom. Ovo je očito vrlo ograničen
način jer bi računalo vrlo brzo ostalo bez naredbi koje treba izvršiti.
Upravljačke strukture su posebne naredbe koje mogu izmijeniti tok odvijanja
programa.
Postoje dvije osnovne vrste upravljačkih struktura: petlje, koje omogućavaju
ponavljanje niza naredbi i grananja koja omogućuju računalu da odluči
između više različitih postupaka ispitivanjem uvjeta koji se javljaju
za vrijeme izvršavanja programa.
Na primjer, moguće je da ako je vrijednost varijable "glavnica"
veća od 10000, tada se "kamata" računa množenjem sa 0.05; a
ako nije tada se kamata računa množenjem glavnice sa 0.04. Program treba
neki način zapisa ove odluke. U Javi to je moguće ostvariti korištenjem
sljedeće "if" naredbe:
if (glavnica > 10000)
kamata = glavnica * 0.05;
else
kamata = glavnica * 0.04;
Detalji za sada nisu bitni, važno je zapamtiti da računalo može ispitati
uvjet i odlučiti na osnovu toga što dalje)
Petlje se koriste kad istu radnju treba izvršiti više od jednom.
Na primjer, ako se želi ispisati natpise s imenom za svako ime u adresaru
moglo bi se napisati "Uzmi prvo ime i adresu i ispiši natpis; uzmi
drugo ime i adresu i" što vrlo brzo postaje jako smiješno i moglo
bi uopće ni ne raditi ako unaprijed nije poznato koliko imena zapravo
ima. Ono što bi zapravo htjeli reći je nešto kao: "Dok god ima imena
za obradu, uzmi slijedeće ime i adresu i ispiši natpis." Ovakvo ponavljanje
se u programu izražava petljom.
Veliki programi su tako složeni da bi ih bilo gotovo nemoguće napisati
bez da ih se "razbije" u lakše ostvarive dijelove. Podprogrami
su jedan od načina ostvarivanja tog "razbijanja". Podprogram
se sastoji od naredbi za izvršavanje nekog zadatka okupljenih u cjelinu
s imenom. Ime se kasnije koristi kao zamjena za čitav niz naredbi. Na
primjer, ako je jedan od zadataka koje program mora izvršiti crtanje kuće
na ekranu, potrebno je naredbe okupiti u podprogram i dati mu prikladno
ime, npr. "nacrtajKucu()". Nakon toga, na bilo kojem mjestu
u programu gdje je potrebno nacrtati kuću dovoljno je napisati jednu naredbu:
nacrtajKucu();
Ovo će imati učinak jednak kao ponavljanje svih naredbi za crtanje kuće
na svakom mjestu. Prednost nije samo u tome da je manje kucanja. Organiziranje
programa u podprograme također pomaže organiziranju razmišljanja i napora
u razvoju programa. Za vrijeme pisanja podprograma za crtanje kuće moguće
se koncentrirati isključivo na problem crtanja kuće, bez razmišljanja
o ostatku programa. Jednom kad je podprogram gotov, može se zaboraviti
na detalje crtanja kuća - taj problem je riješen. Podprogram postaje kao
ugrađeni dio jezika koji je moguće koristiti bez razmišljanja o tome što
se događa unutar podprograma.
Varijable, tipovi, petlje, grananja i podprogrami su osnova onog što bi
se moglo nazvati tradicionalnim programiranjem. Osim toga, kako programi
rastu javlja se potreba za dodatnim strukturama za rješavanje njihove
složenosti. Jedno od najučinkovitijih sredstava je objektno orijentirano
programiranje.
5. Osnovni Java program
Program je niz naredbi koje računalo izvršava da bi obavilo neku zadaću.
Da bi računalo moglo izvršavati naredbe, one moraju biti pisane na računalu
razumljiv način, tj. u programskom jeziku. Programski jezici se razlikuju
od ljudskog po svojoj jasnoći i strogosti što je u programu dozvoljeno,
a što nije. Pravila koja određuju što je dozvoljeno zovu se sintaksa jezika.
Sintaksna pravila određuju osnovni rječnik jezika i način na koji se programi
mogu stvarati koristeći petlje, grananja i podprograme. Sintaksno ispravan
program je onaj koji je moguće kompilirati ili izvršiti. Programi koji
sadržavaju sintaksne greške će biti odbačeni uz poruku o grešci. Dakle,
za postati uspješan programer potrebno je detaljno poznavati sintaksu
korištenog programskog jezika.
Sintaksa je, ipak, samo dio priče. Naime, nije dovoljno samo napisati
program koji radi, potreban je program koji daje ispravan rezultat, dakle
program mora imati smisao. Smisao programa se zove semantika. Semantički
ispravan program je onaj koji radi točno ono što programer traži od njega.
Pri uvođenju novih jezičnih elemenata bit će objašnjena i sintaksa i
semantika elementa. Zapamtite sintaksu i pokušajte steći osjećaj za semantiku
iz razumijevanja danih primjera. Pokušajte napisati i svoje kratke programe
da bi provjerili svoje razumijevanje.
Naravno, čak i kad se upoznate sa svim pojedinačnim elementima jezika
niste postali programer. Još uvijek morate naučiti kako stvarati složene
programe za rješavanje određenih problema. Za to su potrebni i iskustvo
i vještina.
Objašnjavanje Jave ćemo početi na uobičajen način: pisanjem programa
koji ispisuje poruku "Hello World!". Naizgled jednostavan problem,
ali ipak vrlo važan korak u svladavanju novog programskog jezika (pogotovo
ako vam je to prvi jezik). Potrebno je da razumijete osnovne postupke:
1. unos programskog teksta u računalo
2. kompiliranje programa i
3. izvršavanje kompiliranog programa.
Ovi koraci su različiti za razna računala i Java programerska okružja.
U osnovi se taj postupak svodi na pisanje programa u nekom tekstualnom
editoru i snimanje programa u neku datoteku. Nakon toga određenom naredbom
se program kompilira, nakon čega dobivate poruku o sintaksnim greškama
ili kompilirani program. U slučaju Jave program se kompilira u bajt kod,
umjesto u strojni jezik. Na kraju pokrećete program odgovarajućom naredbom.
Vaše programsko okruženje može obaviti neke od ovih koraka za vas, ali
se u pozadini zasigurno odvijaju ista tri koraka.
Slijedi program "Hello World!". Ne očekujte da ćete sve razumijeti
- neke dijelove ćete razumijeti tek nakon nekoliko lekcija.
/**
* HelloWorldApp klasa implementira aplikaciju koja
* ispisuje "Hello World!" na standardni izlaz.
*/
public class HelloWorldApp {
public static void main(String[] args) {
// Ispiši "Hello World!"
System.out.println("Hello World!");
}
}
Kada pokrenete ovaj program poruka "Hello world!" (bez navodnika)
će biti ispisana na ekranu.
Naredba koja zapravo ispisuje poruku je:
System.out.println("Hello
World!");
Ova naredba je primjer poziva podprograma. Koristi "ugrađeni"
podprogram imena System.out.println da bi obavio zadatak. Prisjetite se
da se podprogrami sastoje od naredbi za izvršavanje nekog zadatka, okupljenih
i sa određenim imenom. Ime se koristi da bi mogli taj podprogram pozvati
kad god treba izvršiti taj zadatak. Ugrađeni podprogram je već definiran
kao dio jezika i time dostupan u bilo kojem programu.
Znatiželja vas mora voditi kroz ostatak programa. Dio programa su komentari.
Računalo u potpunosti zanemaruje komentare u programu, oni su samo za
ljude. Unatoč tome, komentari su vrlo važni, bez njih razumijevanje programa
može biti jako teško. Java ima dvije vrste komentara. Prva vrsta počinje
s: // i proteže se do kraja reda. Računalo zanemaruje // i sve nakon toga
u istom redu. Druga vrsta komentara započinje s /* i završava s */ i može
se protezati preko više redova.
Sve ostalo u programu je neophodno prema sintaksnim pravilima Jave. Svo
programiranje u Javi se obavlja u klasama. Prva linija u programu kaže
da se klasa zove HelloWorld. Ime klase HelloWorld ujedno služi i kao ime
programa. Klasa nije program sama po sebi, da bi mogla postati program
klasa mora sadržavati podprogram imena main oblika:
public
static void main(String[] args)
izrazi
Kad naredite Java interpreteru da izvrši program, on poziva main() podprogram
i izvršava naredbe unutar njega. Ove naredbe tvore skriptu koja govori
računalu što točno treba raditi dok se program izvršava. Main() podprogram
može pozivati podprograme definirane unutar iste, pa čak i drugih klasa,
ali main() podprogram određuje kako i kojim redom će se koristiti drugi
podprogrami.
Ime u prvoj liniji je ime programa, i ujedno ime klase. Ako se klasa
zove HelloWorld, treba biti snimljena u datoteci HelloWorld.java, koja
dakle sadrži source kod programa. Kada se ova datoteka kompilira, nastat
će datoteka HelloWorld.class koja sadrži Java bajt kod. Java intrepreter
izvršava Java bajt kod i za pokretanje programa ne trebate source kod.
6. Postupak razvoja programa
1. Točno odrediti problem koji se želi riješiti.
Programi se obično pišu da bi izvršili određeni zadatak, ali zadatak
ne mora biti uvijek jasan sam po sebi. Potrebno je prikupiti dodatne
podatke da bi se zadatak mogao točno odrediti. Jasno određivanje problema
otklanja mogućnosti nesporazuma i olakšava postupak razvoja programa.
2. Odrediti ulaze koje će program tražiti i izlaze koje će program
stvarati.
Ulazi i izlazi programa moraju biti određeni da bi se program dobro
uklopio s drugim djelovima razvojnog postupka u jedinstvenu cjelinu.
3. Rastaviti program na klase i pripadajuće metode.
Odrediti jednu ili više klasa i njihovo djelovanje, međusobno i sa vanjskim
svijetom. Za svako međudjelovanje odrediti zasebnu metodu.
4. Razviti algoritme koji će biti primjenjeni u pojedinim metodama.
Algoritam je opis postupka korak po korak do konačnog rješenja problema.
Potrebno je pronaći logičan način za podjelu većih problema na manje
sve dok se čitav zadatak ne podijeli na niz malih, jednostavnih i lako
razumljivih zadataka. Nakon toga, ti mali zadaci se ponovo rastavljaju
dok se ne dođe dijelova koji se mogu iskazati Java naredbama. Ovaj postupak
se najčešće izvodi korištenjem pseudokoda.
5. Prevođenje algoritma u Java naredbe.
Ako je rastavljanje problema dobro obavljeno, ovaj korak se svodi na
jednostavno zamjenjivanje pseudokoda odgovarajućim Java naredbama.
6. Testiranje konačnog Java programa.
Najduži i najvažniji dio razvojnog postupka. Dijelove programa je potrebno,
ako je moguće, prvo testirati pojedinačno, a zatim i program u cjelini.
Potrebno je provjeriti da program ispravno radi sa svim dozvoljenim
vrstama ulaznih podataka. Često se događa da se program pisan i testiran
samo na uobičajenom ulaznom skupu ruši ili daje netočne rezultate samo
zbog korištenja različitog ulaznog skupa. Ako program sadrži grananja
potrebno je provjeriti sva moguća grananja da bi se provjerilo ispravnost
rada programa u svim mogućim uvjetima.
7. Osnovni Java Aplet
Java apleti su mali programi namijenjeni izvršavanju kroz HTML stranicu
u mrežnom pretraživaču. Točnije, aplet je objekt koji pripada klasi java.applet.Applet
ili jednoj od podklasa te klase.
Aplet je dio grafičkog sučelja, prikazuje se u prozoru (bilo mrežnog
pretraživača ili nekog drugog programa), čini ga pravokutno područje u
kojem su sadržani drugi elementi poput tipki ili tekstualnih polja. Može
prikazivati grafičke elemente kao što su slike, pravokutnici ili linije,
te može odgovarati na određene događaje (na primjer kad korisnik klikne
negdje u apletu).
Klasa Applet, definirana u paketu java.applet, služi samo kao osnova
za izradu podklasa. Objekt tipa Applet ima neka osnovna svojstva, ali
zapravo ne radi ništa korisno, to je prazno područje na ekranu koje ne
odgovara ni na kakve događaje. Da bi dobio upotrebljiv aplet, programer
mora definirati podklasu koja nasljeđuje klasu Applet. U klasi Applet
je definirano nekoliko metoda tako da ne rade baš ništa, pa programer
mora nadjačati bar neke od ovih metoda i dati im neko značenje.
Apletu nije potrebna main() metoda jer on i nije samostalni program, iako
više metoda u apletu podsjećaju na main() time što je zamišljeno da ih
poziva sistem, a programer treba definirati odgovor na te pozive.
8. Programiranje u Javi :
Svakome tko je imao prilike usporediti C++ i Java izvorne kodove bit
će odmah jasno da je Java bazirana na programskom jeziku C++. Tvorci Jave
su željeli napraviti programski jezik koji bi bio jednostavniji za naučiti
i koristiti nego C++. Iz tog razloga bili su prisiljeni odustati od dosta
pristupa i idejnih rješenja koje programeri generalno smatraju zbunjujućima
(znate li nekog tko koristi templateove u C++-u) te dodati nove mogućnosti
kao što je primjerice garbage collection. Krajnji rezultat je novi programski
jezik koji je uistinu lakši za savladati od C++-a. Ugrađenim mogućnostima
poput garbage collection i eliminiranjem pointerske aritmetike uspjeli
su odstraniti najčešći izvor grešaka koje bi se javljale prilikom programiranja
u C ili C++ programskim jezicima. No, kako ćemo vidjeti u daljnjem tekstu,
ova poboljšanja nisu prošla besplatno...
C++ je trebao biti poboljšani C. Njegove mogućnosti korištenja objektno
orijentiranih tehnika otvarale su mogućnost razvoja puno većih i bolje
organiziranih programa. Pri njegovoj izradi tvorci su se pridržavali sljedećeg:
• C++ izvorni kod mora podržavati istu sintaksno/semantičku strukturu
C-a te koliko je god moguće nadograditi se na sam C i podržavati tehnike
programiranja korištene od strane C-programera
• Izvršni kodovi pisani u C++-u moraju biti barem isto toliko efikasni
i brzi kao C izvršni kodovi kako bi se omogućila njegova primjena i
u vremenski kritičnim rješenjima
Nadalje, programirajući u Javi ograničeni ste na korištenje već definiranih
sučelja (interface). Java je u tom dijelu dosta slaba. Postojeće klase
daju mogućnost Java programu izvršavanje samo sljedećih operacija:
• čitanje i pisanje datoteka
• crtanje točaka i drugih primitivnih 2D objekata u boji
• čitanje i manipulaciju slika
• kreiranje korisničkih sučelja (npr. korištenje više prozora na desktopu)
• komuniciranje preko mrežnih servisa (ne samo HTTP)
• audio-prikaz zvučnih datoteka
9. Popularnost Jave
Postoji puno drugačijih programskih jezika koji se koriste ili se tek
razmatraju moguće upotrebe glede Internet pretražioca. Ono što daje velik
korak prednosti Javi pred ostalim programskim jezicima je njena podržanost
(postoji na svim operativnim sistemima gdje postoji Netscape program,
što znači mnogo operativnih sistema), besplatnost za nekomercijalnu upotrebu
(barem do ovog časa) te prenosivost izvršnog tj. bajtnog koda uz garantirano
izvršavanje bez obzira na arhitekturu ili operativni sistem računala (naravno,
ako se radi o istoj verziji Java prevodioca i interpretera te uz uvjet
da ne koristimo native metode proširivanja standardnog zbira Javinih instrukcija).
Po primjerima iz prakse, dosad je programiranje HTML-baziranih servisa
činila papazjanija sačinjena od FORM oznake i forme unutar HTML stranice,
perl i sh skripti ili C-programa za obradu podataka pribavljenih sa forme,
te driver programa za pristup bazi podataka pisanog najčešće u C-u. Ako
ste se željeli baviti programiranjem mrežnih HTML-baziranih servisa, obično
je preporuka glasila da pored osnovnog znanja barem HTML 2.0 specifikacija
naučite programirati u C-u i perl-u a koristiti i pisati sh skripte ćete
ionako "usput" naučiti.
Sada je nužno i dovoljno znati da vam od HTML specifikacija treba
<html><body><applet code="MyApplet.class"
width=XXX
height=YYYY></applet></body></html>
.. te znanje programiranja u Javi.
Sama Java je daleko od savršenog programskog jezika. Zabilježene su duge
rasprave o tome kako bi bilo izvedivo napisati drugačiji compiler ili
točnije cross-compiler program koji bi prevodio neki drugi, jednostavniji
i bolji izvorni kod u postojeći Javin bajtni kod. Na taj način se ne bi
izgubilo apsolutno ništa od trenutnih dobrih karakteristika kao što je
prenosivost bajtnog koda i njegovo izvršavanje na svim podržanim platformama
računala.
Osim toga, veliki dijelovi Jave kao programskog jezika su već odbačeni
kao neadekvatni, gledajući unatrag prema nižim verzijama. Izvrstan primjer
toga je AWT (Abstract Window Toolkit -- zbir grafičkih alata)
za koji sami tvorci Jave tvrde da je hack (na brzinu napravljen samo da
proradi) i za to optužuju Netscape koji ih je manirama robo vlasnika tjerao
na pridržavanje rokova te da što ranije završe sa projektom.
Zaključak
Java je vrlo dobar novi programski jezik i velika vijest među programerima.
Informatički časopisi još uvijek ne prestaju pisati o i oko Jave te kako
će upravo Java promijeniti dosadašnje poimanje kratice WWW
(World Wide Web), korisnik/poslužitelj modela razvoja aplikacija
te ekonomskog modela prezentacije i korištenja programa počevši od tabličnih
kalkulatora pa sve do video-igrica. Činjenice da se danas već udomaćio
pojam NC (Network Computer), te da SUN tvrtka već naveliko prodaje svoje
Java radne stanice bazirane na Java procesoru samo govore u prilog prijašnjoj
tvrdnji. Postoji već uvriježeno mišljenje da će Java naslijediti C++
kao jezik izbora glede programiranja generalno te da je Java
u stvari ono što je trebao biti C++.
Literatura
1. Herbert Schildt, JAVA J2SE 5, MIKRO KNJIGA, ZAGREB, 2006
2.Joshua Bloch, EFIKASNO PROGRAMIRANJE NA JAVI, MIKRO KNJIGA, ZAGREB,2004
3 .Stephen J. Chapman: Java for Engineers and Scientist, Prentice Hall,
NJ, 2000.
4. on-line tutorial na web adresi http://java.sun.com/docs/books/tutorial/
PROCITAJ
/ PREUZMI I DRUGE SEMINARSKE RADOVE IZ OBLASTI:
|
|
preuzmi seminarski
rad u wordu » » »
Besplatni Seminarski
Radovi
SEMINARSKI RAD
|