Milyen programnyelvet tanuljunk?

Érdemes azok közül választani, amik legalább az objektum-orientált paradigmáig tudnak mindent! Mondjuk a "régi" Pascal, és a C kiesik, de minden más (beleértve mondjuk a FreePascal-t is) majdnem egyformán remek lehet!

Csak egy a baj, amiről könnyen megfeledkezünk: a hordozhatóság!

A "hordozható" nyelvek

Mit is értek ezalatt? Nos, ha már nagy erőből megtanulunk valamit, jó lenne, ha tudnánk használni mindenen. Nem kizárólag Windowst futtató PC-n, hiszen a világ nem csak ezekből áll!

A következő cuccokon jó lenne otthon lenni:

Persze lehetne még sorolni...

Nyilvánvalóan a gépi kód nem hordozható: amit lefordítunk az egyik processzorra, a másik processzornak csak katyvasz. Az assembly is különbözik processzoronként.

A C nyelv nagyon sikeres volt azzal, hogy a C-ben megírt programokat majdnem simán le lehetett fordítani mindenféle gépre. Ez tök jó, mert innentől kezdve nem kell vacakolni azzal, hogy milyen gép fogja futtatni a programunkat. A probléma csak a majdnem részben van, mivel a C nyelvben néhány apróságot nem szabványosítottak, így sokszor mégiscsak picit hozzá kell igazítani a programot egy másfajta géphez.

A Pascalt picit jobban végiggondolták, és ott már egészen jól ment, hogy ugyanazt a Pascal programot bármely gépre le lehetett fordítani.

Azonban ezek a boldog 80-as évek véget értek, jöttek a modern operációs rendszerek, ablakok, egér, hang, kép - egy csomó olyan dolog, amire nem is gondolhattak a C és a Pascal alkotói.

Innentől kezdve egy Windows-os ablakos C program és egy Linux-os ablakos C program teljesen másként nézett ki. Hiába is C mindkettő.

Úgy tűnt, hogy a probléma megoldhatatlan: mivel a különböző gépeknek nem csak más processzora, hanem más operációs rendszere, más ablakozó-rendszere, más elképzelése a gépben lévő meghajtókról, és még sorolhatnám. A dolog nem megoldható egykönnyen.

A virtuális gép

De mi lenne, ha elképzelnénk egy tökéletes gépet? Ha csak egyféle gép van, arra könnyű jól programozni. Ebből az ötletből született meg a "virtuális" - azaz igaziból nem létező - gép fogalma.

A virtuális gép egy program, kicsit olyan, mint egy szuper-compiler. Az egyik oldalon eljátssza, hogy ő egy nagyon okos processzor, és megért egy nagyon ügyes gépi kódot. A másik oldalon az igazi processzor számára lefordítja a nagyon ügyes gépi kódot úgy, hogy az igazi gép megcsinálja, amit szeretnénk.

A virtuális géppel minden Java program fut mindenen

Ez a virtuális gép mutatvány nem merül ki csak a programunk futtatásában. A virtuális gép az igazi gép képernyőjét, ablakozó-rendszerét, és minden más részét is "átfordítja". A virtuális gép mindent elrendez ami csak kellhet. Az így futó programokat "menedzselt" programnak nevezik, mert a virtuális gép mindent menedzsel - helyettünk.

Ez elég szuper, mert így nem kell megtanulnunk Linuxot, Windows-t, Mac OS X-et programozni külön!

Sajnos, a virtuális gép dolognak az előnyei mellé hátrányok is jönnek. Nyilván az így futó program annyira nem gyors, mintha assembly-ben írtuk volna. Cserébe viszont nagyon gyorsan elkészülünk, és mindenen működik - ami azért elég nagy előny!

Milyen virtuális gépek vannak?

A következő kettővel fogsz leggyakrabban találkozni:

Eseteleg erről is hallottál már?

Szóval akkor melyik nyelv?

Egyszerű! Legyen:

Tekerjünk csak vissza erre a képre:

A Pascal és amit elindított

Nézd meg az alját:

Szóval, ezekből érdemes választani :)

Szóval akkor csak C# vagy Java?

Természetesen nem csak C#-ból lehet .Net virtuális gépen futtatható programot készíteni, hanem sok más nyelven is lehet.

Hasonlóan nem csak Java nyelven lehet a Java virtuális gépen futtatható programot készíteni, hanem sok más nyelven is lehet.

De egy kicsit emelkedjünk felül a programnyelvek kavalkádján: ennek ellenére ebben a kategóriában a C# és a Java a legelterjedtebb.

De miért pont Java?

Három milliárd(!) eszköz képes a világon Java-t futtatni.

3 milliárd eszköz

Kissé túlzónak hangzik? A statisztikák szerint nem az, hiszen:

A TIOBE index szerint a Java a leggyakrabban használt nyelv.

A TIOBE index rendszeresen gyűjti, hogy az Internet statisztikái szerint melyik nyelvet használják a legtöbben.

Ebben a Java már több, mint 5 éve (most 2015. van) az első helyen van. A mostani állás teteje:

Nos, a fentiek alapján tanuljunk Java-t, mint első programnyelv!

Mit tudunk már?

Célszerú olyan nyelvet tanulni, amivel mindenen tudunk programozni! A virtuális gépen futtatott nyelvek ezt könnyen lehetővé teszik. Jelenleg a Java durván a legelterjedtebb általános célú nyelv ami szinte mindenféle gépen futtatható.