Poglavje 1
Java

1.1 Kaj je to java

Java je sodoben programski jezik, katerega prvi začetki segajo v leto 1991. Interpreter, iz katerega je kasneje nastala java, se je imenoval Oak (hrast).

PIC

Ko so programerji odkrili, da programski jezik s tem imenom že obstaja, so nastajajoči programski jezik preimenovali v java, saj se je tako imenovala njihova najljubša znamka kave (Java je izredno gosto poseljen otok v Indoneziji – eden najbolj gosto naseljenih krajev na svetu – na katerem izredno dobro uspeva kava; beseda java je zato tudi sinonim za kavo). Kot večina programerjev, so tudi snovalci jave popili ogromno kave, zato je bila izbira imena skoraj sama po sebi umevna.

Hkrati z izbiro imena je programski jezik dobil tudi svoj zaščitni znak (logo) - skodelico kave.

1.2 Lepe lastnosti programskega jezika java

Java je sorazmerno mlad jezik – razvili so ga leta 1991 v Sun Microsystems, predvsem za uporabo v manjših napravah (mikrovalovna pečica, varnostni sistemi in podobno). Kasneje je java zaradi izredno dobre zasnove prerasla v enega najpomembnejših sodobnih programskih jezikov. In kaj so največje odlike programskega jezika java?

Java je preprost jezik.
Ker je jezik nastal sorazmerno pozno (v primerjavi z jezikom C je java 20 let mlajša) je očiščen mnogih odvečnih elementov.
Java je predmetno usmerjen.
Pri predmetno usmerjenih (objektno orientiranih) programskih jezikih je program razbit na množico modulov, ki jih imenujemo objekti. Objektno orientiran pristop je moderen pristop za razvoj kompleksnih programskih sistemov. Java je bolj objektno orientirana kot C++, saj ne omogoča ne-objektnega programiranja.
Java je robusten (trdoživ) jezik.
Napake v programih napisanih v javi ne povzročijo sesutja sistema tako pogosto kot napake v drugih programskih jezikih. Java predvideva sistem dela z izjemami (exception handling), kar onemogoča slabo programiranje.
Java je neodvisna od sistema.
Program napisan v javi se lahko brez sprememb uporablja na vseh sistemih, za katere je implementiran Java navidezni stroj (JVM). Program napišem enkrat, uporabim večkrat.
Java je varen jezik.
Java omogoča pisanje varnih programov za splet. Pozna različne stopnje varnosti - odvisno od okolja, v katerem program teče.
Java je visoko zmogljiv programski jezik.
V javi lahko naredim skoraj vse, večinoma na zelo preprost način.

1.3 Prvi program in primerjava z jezikom python

Za prvi vtis o programskem jeziku java si oglejmo program, ki na zaslon izpiše števila od 10 do 1, vsakega v svoji vrstici. Predstavljen program namenoma ni kratek (isti problem bi se dalo rešiti z veliko krajšim programom) – njegov namen pač ni v kazanju mišic.

Odštevanje od 10 do 1 – programski jezik Java Odstevanje.java

 

Na kratko o zgornji kodi (podrobneje se bomo s posameznimi deli ukvarjali v nadaljevanju): deklarirali smo razred (class) z imenom Odstevanje, v njem pa smo napisali dve metodi: odstevanje() in main. Metoda main() ob klicu metode odstevanje() posreduje en parameter (10); v metodi odstevanje() se nato s pomočjo zanke for na zaslon izpiše n=10 števil.

Oglejmo si še, kako bi lahko isti program izgledal v programskem jeziku python (seveda bi v pythonu program lahko napisali drugače/lepše/bolj pythonsko, a za potrebe tega primera je ta koda najbolj primerna). Pozorni bralec bo opazil, da sta si programa v nekaterih delih podobna, v marsičem pa se precej razlikujeta.

Odštevanje od 10 do 1 – programski jezik python razno/odstevanje.py

 

Posvetimo se najprej nekaterim podobnostim med programoma:

Še bolj kot podobnosti, pa v oči bodejo razlike, ki jih tudi v tako kratkem programu ni malo:

Na zgornjem primeru smo našteli le nekaj podobnosti in razlik med jezikoma java in pyhton, nekatere druge bomo spoznali spotoma v nadaljevanju.

1.4 Prevajanje in izvajanje javanskih programov

Za razliko od pythona, kjer za izvajanje kode potrebujemo le en program, ki služil kot tolmač (interpreter), pri javi potrebujemo dva: prvi (imenuje se javac) javanski program prevede, drugi (imenuje se, kako nenavadno, java) pa ga izvede. Ta dvostopenjski postopek je res bolj zapleten od eno-stopenjskega, vendar ima pred njim veliko prednosti, najbolj očitna je seveda hitrost izvajanja: ker kodo prevajamo prej, se nam v času izvajanja s tem ni treba ukvarjati.

Pythonski program s pomočjo tolmača python poženemo takole (slika 1.1):

Izvajanje pythonskih programov (Linux okolje)
[user@localhost]# python primer.py


images/izvajanjePY.eps


Slika 1.1: Izvajanje pytonskih programov


Kot rečeno, v javi prevajanje in izvajanje poteka v dveh korakih. Najprej program (npr. Primer.java) z ukazom javac prevedemo v vmesno kodo (Primer.class). Za izvajanje te datoteke potrebujemo navidezni stroj (angl. java virtual machine, JVM), ki se imenuje java (glej sliko 1.2).


images/prevajanjeJ.eps


Slika 1.2: Primer prevajanja in izvajanja v Java


Prevajanje in izvajanje v Javi (Linux okolje)
[user@localhost]# javac Primer.java 
[user@localhost]# java Primer

1.5 Razvojno okolje

Za pisanje in izvajanje javanskih programov ne potrebujemo veliko orodij. Komur je všeč minimalističen način, lahko kodo piše v kateremkoli urejevalniku besedil (notepad , vi , TextWrangler, ... ), prevajanje in izvajanje pa opravi v lupini (kot kaže zgornji primer). Programa javac in java mora pred tem naložiti s spleta – oba sta del paketa JDK, ki ga brezplačno dobimo na Oraclovi strani (Google: JDK download).

Omenjen pristop ima za začetnika nekaj prednosti, saj se mu ob spoznavanju z jezikom ni potrebno dodatno ukvarjati z novim razvojnim okoljem. Takoj pa, ko premaga začetne težave z jezikom, je čas za sodobnejše rešitve – teh je na srečo dovolj. Toplo priporočam uporabo integriranih razvojnih okolij Eclipse ali NetBeans. Razvijalci omenjenih profesionalnih brezplačnih programov med seboj neprestano tekmujejo, kateri bo programerja bolj razvajal. Kdor se navadi na tako okolje, niti v sanjah (pa naj bodo te še tako moraste) ne pomisli več, da bi programiral “na roko”.