ITHub

7 programozási nyelv, amit imádunk gyűlölni, mégsem tudunk meglenni nélkülük – 1. rész

7 programozási nyelv, amit imádunk gyűlölni, mégsem tudunk meglenni nélkülük – 1. rész
Szabolcsi Judit
Szabolcsi Judit
| ~4 perc olvasás

Amikor az ember először találkozik egy új programozási nyelvvel, akkor az nagyon szokott tetszeni neki, hiszen a „Hello world” típusú példák három sorban megmutatják, hogy milyen hatékony ez a nyelv. A programozási nyelvekben van ugyanis egyfajta logika, de ez nem jelenti azt, hogy minden logikus bennük. Egy kedves pultos a bár minden vendégét vidámabbá tudja tenni, egy bátor tűzoltó szétsugározza a környezetében a bátorságot, de a programozási nyelvek logikája sokszor logikátlanságot, kételyt és zűrzavart szül. Azt ugyan nem mondhatjuk, hogy a programozási nyelvek logikátlanok, de a logikának is vannak határai. Azt pedig Gödel és Turing óta tudjuk, hogy a logika határain furcsa dolgok történnek. Persze ez lehet, hogy a mi hibánk, hiszen emberek vagyunk, így néha félreértünk dolgokat, sőt félreprogramozunk, de amikor egy programozási nyelv furcsa jógapózokba kényszeríti az agyunkat, nehéz nem hibáztatni ezért.

programming language

Sokszor nem tehetünk semmit, nem szabadulhatunk meg az utált nyelvtől, mert már túl sok kódban használtuk, vagy épp a főnök ragaszkodik hozzá. Igazából nincs más választásunk, mint belátni: nem tudjuk helyettesíteni őket. Nézzük tehát azt a hét nyelvet, amit imádunk gyűlölni, de mégsem tudunk meglenni nélkülük. Egyetértesz? Vagy Te más nyelveket gyűlölsz?

1. jelölt: a C

Ezt a nyelvet inkább hordozható assemblynek, mint teljes értékű, magas szintű programozási nyelvnek hívnám. Van olyan, aki szeret különálló header-fájlokat írni? Vagy van olyan ember, akit nem kerget az őrületbe a preprocesszor? Elméletben képesek vagyunk a mutatóaritmetika erejének kihasználására, de ki kockáztat meg az adatszerkezetek számára való dinamikus memóriafoglalásnál többet? Ha elegánsan használod a mutatókat, legtöbbször hosszú magyarázatokat kell mellé írnod. És emlékszik valaki az összes szabályra, amivel elkerülheti a biztonsági réseket, mint a puffer túlcsordulás?

De nincs választásunk. Példának okáért a Unixot is C-ben írták, ahogy a mobil op.rendszerek, és a cloud technológiák nagy részét is. Aztán ott vannak az eszközmeghajtók és a beágyazott rendszerek, ahogyan valakinek fel kell vállalnia a Linux/Unix kódbázis naprakészen tartását is. Nincs mindenkinek szüksége a C-re azok közül, akik ezekre a platformokra dolgoznak, de kell valaki, aki ismeri a csillagokat és a kapcsos zárójeleket, különben valami félre fog menni.

2. jelölt: a JavaScript

A JavaScript kiötlői valami modernt akartak. A leleményességükkel élethosszig tartó kapcsos, szögletes és sima zárójel számolásra ítéltek minket. A névtelen függvények, a closure-k és a JSON adatszerkezetek gépelésekor az ujjainkat komolyan meg kell dolgoztatnunk.
Aztán ott vannak azok a furcsa dolgok: ha x egy sztring, amiben az 1 karaktert tároljuk, akkor x+1 a 11 sztring lesz és x-1 pedig a nulla szám. Van olyan, aki emlékszik a false, null, NaN és az undefined közötti különbségre? Hasonlónak tűnnek, miért kell mind a négy? Vagy legalább miért nem viselkednek következetesen?

Nem számít, mennyit panaszkodunk. Az internet, a World Wide Web és számos böngésző nem működne nélküle. Aztán még ott van a Node.js csapata is, akik kitalálták, hogy a szervereken is használjunk JavaScriptet. Egy biztos: a JS hosszú életnek fog örvendeni, és nem szabadulunk meg tőle egyhamar.

3. jelölt: a PHP

Nem is igazán programozási nyelv, inkább egy okos eszközkészlet a statikus HTML-hez. Segítségével adatbázisban tárolhatsz információkat, amiket aztán össze tudsz fűzni a statikus tagekkel. Persze egy kicsit több is van benne ennél, de úgy tűnik, mintha nagyrészt mindenki csak erre használná.
Felesleges vitatkozni továbbá a szintaxisán, vagy a „butaságán”, a web nagy része ezt használja, a legtöbb CMS, köztük a WordPress, a Joomla és a Drupal is PHP-ban íródott. Na meg a Facebook néven ismert kis valami is, ami a neten lévő emberek idejének egyre nagyobb részét tölti ki.

Van viszont fény az alagút végén: azzal hogy a Facebook létrehozta a HipHop Virtual Machine-t (HHVM), a Zendet a PHP 7-es verziójának létrehozására inspirálta, ez a két változát pedig már modern megoldásokat kínál, főleg a teljesítmény terén.

A sorozat következő részében 4 másik nyelvet állítunk pellengérre...

Forrás: InfoWorld - Peter Wayner, fordította: Szabolcsi Judit