Programozási nyelvek

Végre egy olyan cím melynek talán lesz köze a valódi programozáshoz is. Az izgalom a tetőfokára hágott, a feszültség tapintható... legalábbis egyszer biztosan, kérdés, hogy túléljük-e?

Az áram alatt lévő vezeték pont úgy néz ki, mint amelyik nincs áram alatt... ...csak más a fogása!

Nézzük hát azokat a programozási nyelveket. Sok van, nem fogom mindent felsorolni és eljön az idő, amikor majd nekünk is le kell tennünk a voksunk valamelyik mellett.

Hogyan válasszunk programozási nyelvet? Az egyik megoldás lehet, hogy megnézzük melyik nyelv mennyire népszerű és beállunk a sorba, elvégre több millió légy nem tévedhet. Íme a jelenlegi top 15 programozási nyelv és azok 1 évvel korábbi állapotukhoz képesti változásuk (forrás).
(Az ilyen és hasonló kimutatásokat tessék fenntartásokkal kezelni. Egy másik elfogadott és népszerű lista alapján a sorrend kissé máshogy néz ki).

Helyezés
Változás Nyelv Részesedés Trend
1 Python 29.9 % -1.2 %
2 Java 17.72 % -0.0 %
3 JavaScript 8.31 % +0.4 %
4 C# 6.9 % -0.1 %
5 C/C++ 6.62 % +0.9 %
6 PHP 6.15 % +0.1 %
7 R 3.93 % +0.0 %
8 Objective-C 2.52 % +0.1 %
9 Swift 1.96 % -0.2 %
10 TypeScript 1.89 % +0.0 %
11 Matlab 1.71 % -0.2 %
12 Kotlin 1.62 % +0.1 %
13 Go 1.42 % +0.1 %
14 VBA 1.33 % -0.0 %
15 Rust 1.13 % +0.4 %

A képet kissé árnyalja, hogy pl. a JavaScript és a TypeScript szinte ugyanazt a nyelvet takarja. Valóban jó ötlet népszerűség szerint nyelvet választani? Nem feltétlenül, mint ahogy angolul tanulni sem a legbölcsebb ha pl. Németországban szeretnénk pincérként dolgozni, hiába az angol a legnépszerűbb. Célravezetőbb megvizsgálni, hogy mire szeretnénk használni a tudásunkat, azaz a választott nyelvet. Amikor egy rendszerről beszélünk, akkor azt általában frontend és backend részre bontjuk (hogy ez mennyire jó vagy rossz abba most ne menjünk bele, illetve arról, hogy ezek pontosan mit takarnak majd a későbbiekben lesz szó). Vannak nyelvek, melyek alkalmasak mind a frontend mind a backend fejlesztésére. Nézzük hát a listát egyesével:

  • Python: meglehetősen népszerű nyelv, melyet főként annak köszönhet, hogy egyszerű és rugalmas, könnyen el lehet vele indulni. Rugalmasságának köszönhetően az AI (Artificial Intelligence vagy magyarul MI Mesterséges Intelligencia) fejlesztés területén előszeretettel alkalmazzák és az AI fejlesztés napjainkba egy igen felkapott terület. Ha szeretnél AI fejlesztésekhez kapcsolódó projecteken dolgozni, akkor a Python mindenképpen az első legyen amit megnézel. A nyelv 1991 óta van jelen a programozási nyelvek között, ám nem volt mindig ilyen népszerű, 2012 ben alig több, mint 3%-os részesedést tudhatott magáénak. Az utóbbi 1 évtizedben kezdett nőni és beszivárogni a köztudatba, 2017-re pedig megelőzte a JAVA-t. A pythont jellemzően backend környezetben használjuk, de vannak olyan framework-ök (a framework-ökről azaz keretrendszerekről szintén később még lesz szó) melyek a pythont használják weboldalak megjelenítésére (pl. Django; de ez nem azt jelenti, hogy a python kódunk a böngészőben fog futni) vagy mobil appok készítésére (pl. Kivy)
  • JAVA: a JAVAnak is erős multja van, bár 4 évvel fiatalabb a Pythonnál. Indulásakor erős startot vett és hamar népszerű lett és kisebb-nagyobb ingadozás mellett stabilan tartja a pozícióját. Eredetileg a Sun Microsystem fejlesztette és adta ki (GNU General Public Licence alatt). A nyelv alap koncepciója, hogy a megírt programot úgynevezett bytekódra fordítják, melyet aztán egy virtuális gép (JVM: Java Virtual Machine) futtat. (Java bytekódra nem csak JAVA nyelvről tudunk fordítani, többek között pl. Kotlin-ból is, mely kezdetben erősen kötődött a JAVA-hoz, de annál többet kínál; pl. type inference-t, JavaScriptre történő fordítást, szintaktikai egyszerűsítéseket, stb). Ahova tehát keszült JVM ott tudunk JAVA kódot futtatni (néhány mikrokontroller tud futtatni bytekódot JVM telepítése nélkül, azaz direkt hardveres támogatás van mögötte). A megírt programunk JAVA applet formájában beágyazható (volt! Balazs hivta fel a figyelmem rá, hogy az újabb böngészők ezt a lehetőséget már nem támogatják, köszönet érte) weboldalba is (a Python-al ellentétben), valószínűleg ez is hozzájárult kezdeti sikeréhez. Bár ez a technológia napjainkban egyre kevésbé elterjedt nem árt ha tudunk erről a lehetőségről is.
    Történelem lecke: a Microsoftnak annyira megtetszett a JAVA, hogy elkezdte a saját vadhajtását fejleszteni MSJVM névvel, melyet elsőként az Internet Explorer 3-ba épített be és akkoriban ez volt a leggyorsabb JVM implementáció Windows platformra. A Sun azonban 1997-ben beperelte a Microsoftot a Java 1.1 hiányos implementációja miatt. A pert egy közös megegyezés zárta le, melyben a Microsoft vállalta, hogy felhagy a saját Java implementációval.
    A Sun-t később megvásárolta az Oracle (2010) így most a JAVA-t is ők birtokolják/fejlesztik.
  • JavaScript/TypeScript: azt hiszem nagyon sok fejlesztő egyetért velem abban, hogy a javascript az egyik legfurcsábban összerakott nyelv és jelenleg csak és kizárólag azért van a lista viszonylag előkelő helyén, mert ez az a nyelv amit a böngészőnkben megjelenő weboldalakon használni tudunk. A web kétség kívül napjaink egyik meghatározó platformja így nem meglepő a nyelv népszerűsége. A javascript kódot az úgynevezett JavaScript Engine hajtja végre, mellyel esetleg találkozhatsz ECMA Script Engine néven is. Az ECMA Script a JavaScript standardizált változata, hogy biztosítsa az egységes programvégrehajtást a különböző browserekben. A javascript engine böngészőnkként különböző és ha felmerült benned a kérdés, hogy vajon itt is a Microsoftnak köszönhetjük-e a problámákat hasonlóan a JAVAhoz, akkor a válasz: igen.
    Hogy ne csak savazzuk szegény Microsoftot, itt érdemes megjegyezni, hogy a TypeScriptet nekik köszönhetjük. A typescript a javascript bővített halmaza (superset), tehát minden javascript program egyúttal typescript program is. A typescript ahogy az a nevéből is kitűnik (opcionális) típusossággal látja el a javascriptet, majd egy fordítási folyamat révén javascript lesz belőle.
    A javascript abban az érdekes helyzetben van, hogy frontendes környezetben kezdték el használni, ám a népszerűségnek (és persze az open source V8-as javascript engine-nek) köszönhetően a nyelv megjelent backend környezetben is, mellyel nodejs, node.js vagy csak szimplán node néven találkozhatsz (a nodejs-en kívül van más lehetőség is backend környezetben használni a javascriptet, pl. deno).
    Mivel a javascript jelenleg az egyetlen nyelv amelyet a kliens oldali böngészőben futó programokban használhatunk (részben igaz, mert létezik a nem túl régi webassembly is, melyet igen sok nyelvből lehet fordítani, de webassembly-vel nem lehet a DOM-hoz (Document Object Model) hozzáférni, ehhez mindenképpen szükség van a javascriptre), ha webfejlesztéssel kívánsz foglalkozni, akkor a javascript/typescript ideális választás.
  • C#: a Microsoft egyik legelterjedtebb programozási nyelve és a .NET keretrendszer oszlopos tagja. Amikor a Microsoft látta, hogy el fogja bukni a pert a Sun ellen, nekiállt egy saját fejlesztésnek, ebből született a .NET keretrendszer, amely hála a CLI-nek (Common Language Interface) több nyelvvel is közös nevezőre tud jutni, hasonlóan a JVM-hez. A C# jellemzően szintén backendes nyelv, de itt is találkozhatunk olyan keretrendszerekkel, melyek lehetővé teszik, hogy frontenden (asp.net, ahol a kód a djangohoz hasonlóan szintén nem a böngészőben fog futni) vagy appként is (xamarin) használni tudjuk (vagy akár az egyik igen népszerű játékmotor a Unity, mely webre és mobil eszközökre is képes lefordítani a programunkat és a program logikát C#-ban írhatjuk meg).

Nagyjából valahol itt érdemes megállni, hiszen nem véletlenül ezek a nyelvek állnak a lista elején.

Mit tanultál ebben a leckében?

  • leginkább egy gyors és viszonylag felületes áttekintést kaptál a legnépszerűbb programozási nyelvekről, nélkülözve azok felépítését, erősségeit és gyengeségeit (mint látod van még bőven lehetőség a témáról beszélni, de így is hosszabb lett mint szerettem volna)