É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!
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.
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.
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!
A következő kettővel fogsz leggyakrabban találkozni:
Eseteleg erről is hallottál már?
Egyszerű! Legyen:
Tekerjünk csak vissza erre a képre:
Nézd meg az alját:
Szóval, ezekből érdemes választani :)
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.
Három milliárd(!) eszköz képes a világon Java-t futtatni.
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!