Kitúrják a Java-t a JVM-ből?
bullet Crystal -- 2009-03-07
Rövid bevezető a problémába: a Java nyelven írt programok forráskódját általában úgynevezett java bájtkódra fordítja a fordító (van olyan gnu-s fordító ami képes natív gépi kódra fordítani a forráskódot, de ezt elenyészően kis méretékben használják). A forráskód-fájl kiterjesztése .java, a bájtkód-fájl kiterjesztése .class. A program (a class fájl) aztán úgy fut le, hogy egy virtuális gép (egy natív program) - jvm, java virtual machine - megkapja paraméterként, értelmezi és így lefuttatja. A bájtkód (a program) így hordozható, mivel bármilyen architektúrára meg lehet írni olyan programot (vm-et), mely képes értelmezni, futtatni a bájtkódot.

Az az érdekes a dologban, hogy nem csak a java forráskódot lehet lefordítani java bájtkódra, hanem más nyelveken írt programokat is, pl. python (jython), ruby (jruby), erlang kódot, vagy vannak olyan nyelvek is, melyeket kifejezetten jvm-re terveztek, pl groovy, ill. (ha jól tudom) a scala is ilyen. Ennek köszönhetően ha java programra van szükségünk, akkor ezt nem csak java nyelven írhatjuk meg, sőt akár azt is megtehetjük, hogy egy program ülönböző részeit különböző nyelveken írjuk meg. A JVM így ma már egy soknyelves platform, valójában sokkal több JVM nyelv van (és ezek közül a java csak az egyik) mint .NET nyelv, pedig eredetileg a java platform egynyelves környezet volt, és a .net platform nagy előnyének számított hogy több nyelven (c#, vb, asp) lehetett fejleszteni rá.

Mostanában egyre több amerikai blogger ír arról hogy a java kezd elavulni, túl robosztus és nehézkes a nyelv, és a Java platformot a java helyett más JVM nyelvek fogják uralni (pl. scala, erlang, groovy). Érdekes lehetőség, bár én a magam részéről nem szeretném az egész java tudásomat kidobni az ablakon, meg persze elég valószínűtlennek tűnik hogy a javát kipaterolják a saját házából :) - bár még nem néztem bele más vm nyelvekbe. Persze fontos látni, hogy a Java OO nyelv, a scala meg erlang pedig funkció-orientált nyelvek, tehát magasabb programozási paradigmába tartoznak, és ugyan a funkció-orientáltságot manapság hypeolják rendesen, azért nem eszik olyan forrón a kását, sok idő kell még ahhoz, hogy (főleg Európában) felváltsa az OO-t.
/* */ kommentek
Új komment:
név:
email:
website:

Captcha



megjegyzés