Java

Iš pradžių šią kalbą James Gosling vadino "Oak" (išvertus "ąžuolas"), nes pro jo "Sun" ofiso langą matėsi didelis ąžuolas. Tačiau vėliau buvo pastebėta, kad taip jau buvo vadinama kita programavimo kalba. Ir visų nuostabai, buvo nepaprastai surasti tinkamą pavadinimą, - "Java" komanda praleido nemaža valandų svarstydama įvairius variantus. O vieną dieną pavadinimas "šovė į galvą", beeinant į vietinę kavos parduotuvytę.

Ir manau teisingai, nes "Java" žymiai skambesnė, negu ne anglui svetimas žodis "Oak" (Ach tie amerikonai, manantys, kad visas pasaulis vien tik vograuja angliškai). O "laukiniui" lietuviui (t.y. man) iš kart prieš akis "stojasi" paplūdimiai ir pusnuogės moterys...

"Java" labai panaši į C++, tačiau yra daug paprastesnė. Išmestos visos _nebūtinos_ galimybės: nėra operacijų polimorfiškumo, aprašų failų, preprocesoriaus, veiksmų su nuorodomis, struktūrų, kelių matavimų masyvų ir t.t. Ir tereikia šiek tiek žinoti C/C++ arba "Pascal", ir galite dumti pirmyn. Štai klasikines "Labas, pasauli!" pavyzdėlis:

1: public class LabasJava {
2: public static void main ( String argv[] ) {
3: System.out.println ("Štai ir aš, Java!");
4: }
5: }

Kaip veikia "Java" programos?

Štai kaip tai įsivaizduoja James Gosling (žmogus, prieš šešetą metų parašęs "Emacs", o dabar vadovaujantis "Java" komandai: Tai va! Paruošta programa registruojama serveryje. Ir kai vartotojas pasiunčia užklausą: "Ei, o kaip atrodo tas puslapiukas?" - pradeda sunktis nurodytas puslapiukas. O jame "įsiūta" "Java" programa, kuri apsižiūrėjus pyksta: " Ei vaikine, šioje vietoje turi būti va toksai filmukas! Ar jo nėra vietoje? Ech, ne - tada važiuojam į serverį jo pasiimti!" Ir man visai nerūpi, kur jis yra - Valstijose ar Zimbabvėje - programa jį suras automatiškai.

Kuo pasižymi?

Pirmiausia, "Java" laikoma objektine kalba. Beveik viskas, išskyrus skaičius, joje yra objektai, realizuojami naudojant klases. Kiekviena klasė yra metodų, aprašančių objekto elgseną, aibė. Neatmetamos ir sąsajos, kurios leidžia naudoti objektus nesirūpinant, kaip objektai yra realizuoti. "Java" sąsajos yra panašios į IDL sąsajas, o tai reiškia, kad ji pritaikoma CORBA modeliui.

Be to, "Java" programos gali turėti kelias gijas ("threads"). Ne paslaptis, kad programuoti kelių procesų valdymą nėra lengva (tai visai ne tas pats, kaip "tiesiog išgerti stiklinę vandens"), tačiau "Java" supaprastina jų sinchronizacijos mechanizmus. Realiai, "Java" gijos tiesiogiai atvaizduojamos į terpės gijas.

Ir kiekvienas pastebės, kad nereikia rūpintis atminties valdymu. Išskyrus atminties sritį, nebūtina ją atlaisvinti. "Šiukšlių surinkimo" programa automatiškai tikrina ir sistemai sugrąžina nenaudojamus atminties resursus. Ir t.t. ir t.t. Tiesiog rožinė pasaka žvelgiant pro rožinius akinius.

Ar viskas gražu?

Pati "Java" kalba nėra stebuklas, nors visi ir tekalba tik apie ją! Juk "Ką galiu parašyti su C++, - galiu ir su 'Java'. Ir atvirkščiai!" (J. Gosling). Taigi vertybė ne kalba, o jos programų naudojimo technologija! Juk programą aš galiu parašyti ir C/C++, "Pascal" ar "Visual Basic" (kas, beja, jau įmanoma su "Visual Script"), - tereikia turėti kompiliatorių į "bytecode". Ir neabejoju, kad jie greitai atsiras!

Taip pat dr5stu nesutikti ir su teiginiu, kad tai labai saugi kalba. Aš esu didelis "blogiukas" ir savajame puslapyje galiu paslėpti didelę "blogybę". Visi, kurie užsuks į šį puslapį, pasičiups ir manąją "dovanėlę". Štai tą patį kalba ir ekspertai. O štai "Symantec" paskelbė, kad ji jau sukūrė pirmąją virusų paieškos programą "Java" virusams. JĖGA, ar ne? - juk dar nežinoma, ar egzistuoja "Java" virusai!

Keista taip pat girdėti, kad "Java" programos labai stabilios. Iš tikro, jos tėra tiek stabilios, kiek terpė, kurioje jos yra vykdomos. Jei terpė neleidžia pažeisti (arba pati nepažeidžia) sistemos resursų,- tai juk terpės, o ne "Java" privalumas. Bet ar matėte programą be klaidų?

Yra dar daug klausimiukų, bet palikime kol kas juos ateičiai. O tuo metu priminsiu problemėlę, kuri iškilo arabams dėl JAV prezidento rinkiminės kompanijos. Bob Dole pavardė rašoma lygiai taip pat kaip persų kalbos žodis reiškiantis žmogaus organą, kuris lotyniškai vadinamas penis. Įsivaizduokite, kaip, jam laimėjus, skambėtų laikraščių antraštės: "JAV prezidentu tapo B...s!" Kur ten "Java" problemoms!