Programozási nyelvek elterjedése, avagy milyen technológiákat érdemes tanulni a jövőben - 2. rész
Az első részben a különféle programozási nyelvek elterjedéseinek mérőszámairól beszéltünk. Ha lemaradtál róla, itt tudod elolvasni. A globális körkép után nézzük meg, hogy jelentkeznek ezek a Training360 oktatóközpontnál, hiszen mindegyik nyelven több meghirdetett tanfolyamunk is van, és még több már megtartott tanfolyam van a hátunk mögött. Azt bátran kijelenthetjük, hogy a nyelvek mindegyikére jelentős kereslet van, tehát koncentráljunk most a nyelvek közötti különbségekre.
Kezdjük talán a legkevésbé számszerűsíthető, egyéni, szubjektív érzésekkel. A legnagyobb fun factorral mindenképp a JavaScript és a Python nyelvek rendelkeznek. Ezeken a tanfolyamokon jelennek meg a legnagyobb létszámban a csillogó szemű szakemberek, akik őszintén érdeklődnek a nyelvek és hozzájuk kapcsolódó technológiák iránt.
Ami minket, oktatókat különösen érdekel, hogy melyik nyelv mennyire oktatható. A JavaScript általában párban áll a HTML/CSS-sel, így viszonylag kis erőbefektetéssel látványos dolgokat lehet létrehozni. Szemben például a Java nyelvvel, melynek felületi fejlesztését lehetővé tevő technológiái elavultak, vagy rengeteg előzetes ismeret szükséges a használatukhoz (többek között pl. pont a HTML/CSS/JavaScript).
Azonban ez az előny hamar szertefoszlik, amikor magasabb szintű technológiákhoz érünk, hiszen ez a terület annyira dinamikusan fejlődik, hogy szinte tanfolyamról tanfolyamra kell a tananyagot kidolgozni. Az eszközök itt már annyira sokszínűek és összetettek, hogy egyáltalán nem is biztos, hogy már kialakultak a legjobb gyakorlatok.
JavaScript fejlesztéshez is kell magasabb szintű keretrendszer, build rendszer, kódátfordítás, csomagolás, függőségkezelés, kódminőség ellenőrzés, unit és integrációs teszt eszköz, tesztlefedettség mérés, stb. Tehát a többi nyelvhez hasonlatos teljes stack, mely ráadásul folyamatos mozgásban van. Talán a keretrendszerek között kezd megszilárdulni az Angular, React és Vue.js. Az npm, webpack használata szintén elég elterjedt. A helyzetet tovább bonyolítja, hogy JavaScript már szerveroldalon is használható Node.js-sel, amire szintén használandó valamilyen keretrendszer, pl. az Express.js. Az olvasó maga is biztos vitába szállna ezen kijelentésekkel, és tud továbbiakat is mondani, ami szintén a technológia töredezettségét bizonyítja.
A Python ezzel szemben némileg stabilabb, biztosabb ökoszisztémát kínál, de még mindig kellően vonzó. Egyértelműen a Python a legkönnyebben oktatható nyelv, nem véletlenül szerepelt a taníthatóság a nyelv alkotásakor kiemelt célként. Pár alkalom után is látványos eredményeket lehet elérni.
A Java megalkotásakor is szempont volt a könnyű megértés, ez igaz is például a C programozási nyelvhez képest, de a modernebb Pythonhoz viszonyítva már nagyságrendekkel nehezebben elsajátítható. A szigorú típusosság, az objektumorientáltság, a lambda kifejezések egy – akár másik nyelven – tapasztaltabb fejlesztő számára tényleg tiszta lehet, de egy juniornak az elején nagyobb kihívásokkal kell megküzdenie, és talán nem olyan organikusan lehet továbblépni a tanulásban, hanem nagy lépcsőfokok vannak. A nyelv maga nem is elég alkalmazások fejlesztésére, szükség van különböző plusz keretrendszerek megtanulására, legalább egy nagyvállalati technológia kell (mint a Jakarta, régebben Java EE, még régebben J2EE), és legalább egy perzisztens technológia (legelterjedtebb a JPA szabvány, Hibernate vagy Eclipse implementációval). Bár a nyelv és az objektumorientált elvek elsajátítása után ezek már könnyebben leküzdhetők.
A Microsoft programozási nyelve a C#, és a .NET keretrendszer erőssége természetesen a homogenitásában rejlik. A fejlesztőeszköz, az integrált, egymásra épülő, egységesebb gondolatrendszert követő technológiák szinte evidenssé teszik az utat, amit egy fejlesztőnek be kell járnia. Persze nyelvi szinten itt is vannak nehezebben emészthető részek, de könnyebb továbblépni a magasabb szintű részek felé.
A C és C++ nyelvek csak az igazán elhivatottak számára sajátható el magas fokon, de ezek felhasználási köre is már eleve predesztinálja az ilyenfajta érdeklődést. A PHP nyelv önmagában egyszerűbben tanulható (különösen valamilyen szintig), köszönhető a nyelv megengedőségének. Azonban a PHP nyelv is fejlődik (a közösség által nem egyértelműen megítélt irányba), és egyre inkább közelít a szigorúbb nyelvekhez. A probléma itt is hasonlatos a JavaScripthez, hogy magasabb keretrendszer (pl. Symfony) felé elindulni már egy nehezebb feladat.