Klong: A régi programozási nyelvek újjászületése a böngészőben
Mire vártál legutóbb, amikor ki akartál próbálni egy új programozási nyelvet?
Valószínűleg le kellett töltened valamit, konfigurálnod kellett a környezetedet, és remélted, hogy minden működik az operációs rendszereddel. Ez a súrlódás önmagában elegendő ahhoz, hogy feladd a kísérletezést.
De mi lenne, ha csak megnyitnál egy böngészőablakot és máris nekiállnál kódolni?
A böngésző mint programozási játszótér
Pontosan ez történik a Klong-gal – egy apró, tömborientált programozási nyelvvel, amit Nils M Holm alkotott. Valaki lefordította Holm C-interpreterét WebAssembly-re, és becsomagolta egy böngésző-alapú notebook felületbe. Nincs telepítés, nincs szerverfüggőség. Csak te, a böngésződ és az expresszív tömbműveletek.
A notebook úgy működik, mint egy kicsi Jupyter-környezet: a cellák megosztják az interpreter állapotát, futtathatod őket egyenként vagy együtt, és a munkád helyileg tárolódik. A notebookjaidat .kg fájlként exportálhatod és megoszthatod másokkal.
Miért számítanak még mindig a tömbnyelvek
Az olyan tömbprogramozási nyelveknek, mint a Klong, a J vagy az APL, jó okkal van kultusza. Lehetővé teszik, hogy rendkívül tömören fejezd ki az összetett műveleteket. Nézz egy prímszám-ellenőrzőt:
prime::{&/x!:\2+!_x^1%2}
prime(97)
Nincs ciklus, nincs indexelés, nincs ideiglenes változó. Az egész algoritmus belefér egyetlen sorba, és egyszerre dolgozik a teljes tömbökön.
Ez a gondolkodásmód – ahelyett, hogy lépésről lépésre utasítanád a gépet, inkább transzformációkként kezeled a műveleteket – alapvetően megváltoztathatja, ahogy a problémákhoz állsz hozzá. Még ha soha nem is írsz éles kódot tömbnyelven, ez a szemlélet átültethető a mindennapi munkádba is, tisztább és kifejezőbb kódot eredményezve.
A WebAssembly: a nagy egyenlősítő
A technikai érdekesség itt a WebAssembly. Ahelyett, hogy teljesen újraírták volna a Klongot JavaScriptben – ami egy akkora vállalkozás lenne, mint egy nyelv saját interpreterrel –, a fejlesztő a meglévő C-implementációt fordította le közvetlenül WASM-ra. Az eredmény: egy vékony híd továbbítja a forráskódot az interpreternek, miközben egy web worker kezeli a végrehajtást, megakadályozva, hogy a runaway programok lefagyasszák a böngészőt.
Ez a minta egyre gyakoribbá válik. A C-ben vagy C++-ban írt régebbi rendszerek most elérhetik a böngészőt teljes újraírás nélkül. Ez демократизирует access к мощным инструментам, которые otherwise остались бы заперты в desktop installations.
Csökkentve az experimentáció korlátait
Aki érdeklődik a funkcionális vagy tömbprogramozás iránt, annak a böngésző-alapú környezetek eltávolítják a legnagyobb akadályt: a súrlódást. Kipróbálhatsz valamit ebédszünetben, játszhatsz egy tutorial példáival, és megtarthatod az eredményeket anélkül, hogy véglegesítenéd a fejlesztői környezeted.
Ez a hozzáférhetőség számít. A legjobb módja annak megérteni, miért szeretik az emberek ezeket a nyelveket, az, ha saját magad tapasztalod meg őket – nem pedig dokumentációt olvasol róluk.
Akár egy startup vagy, amely új paradigmákat térképez fel, akár egy fejlesztő, aki kíváncsi különböző programozási stílusokra, vagy egyszerűen csak valaki, aki értékeli az elegáns megoldásokat – az ilyen böngésző-alapú programozási környezetek, mint ez a Klong notebook, pontosan azt a súrlódásmentes kísérletezést képviselik, ami segíti a fejlesztői közösség fejlődését.
Néha a legjobb eszköz valami új megismeréséhez egyszerűen az, amelyiket a legkönnyebb elkezdeni használni.