50 HÉT, 50 NYELV


Rengeteg kiváló és csodálatos nyelv létezik a programozás világában. Mindegyiknek megvan a maga erőssége, gyengesége, és egyedi felhasználási területe. A legtöbbjüket soha nem fogom használni a munkámban, de ez nem jelenti azt, hogy ne lenne érdemes megismerni őket. A világ gyorsabban változik, minthogy megengedhetném magamnak a szoftveres "csőlátást". Kitaláltam hát egy izgalmas tervet: 2026-ban minden egyes héten előveszek egy számomra teljesen új, vagy ritkán használt programozási nyelvet, és készítek benne valami kézzelfogható dolgot. Nem csak elméletben barátkozom velük, hanem élesben, a billentyűzetet koptatva. Nézd meg, hogyan sikerült ezt megugranom, milyen appok születtek a kezeim alatt, és mi az a tanulság, amit levontam ebből a mentális maratonból.

A kódokat megtaláljátok a Duckydev Github oldalán.

A futtatható állományokat pedig eléritek a Letöltések oldalon.




15. hét: Go - A Google gyermeke

Go
A Go nem csak egy újabb programozási nyelv a sorban. Robert Griesemer, Rob Pike és Ken Thompson 2007-ben valami olyat akartak alkotni, ami egyesíti a különböző világok előnyeit:

✅ Gyors, mint a C – Statikusan gépelt és fordított, így a teljesítményre nem lehet panasz.
✅ Egyszerű, mint a Python – A szintaxisa letisztult és olvasható, ami drasztikusan növeli a fejlesztői produktivitást.
✅ Modern korra tervezve – Beépített megoldásai vannak a többmagos processzorok és a hálózati rendszerek hatékony kihasználására (CSP-stílusú konkurens programozás).

🛠 Mi teszi igazán különlegessé?
•Míg más nyelvek csak a szintaxisra fókuszálnak, a Go a teljes szoftverfejlesztési folyamatot szem előtt tartja:
•Villámgyors build idő: Nincs több kávészünet a kód fordítása alatt.
•Standard Library: Egy hatalmas alapkönyvtár, ami szinte minden gyakori feladatra kínál megoldást.
•GopherJS: Akár JavaScriptet is generálhatsz belőle front-end fejlesztéshez!

Egy mini raktárkezelőt készítettem benne, a backendet teljesen a Go-ra bíztam, a frontend pedig egy egyszerű HTML/CSS/JS kombó. A Go erejét a backendben élveztem igazán: a REST API gyors és megbízható. A frontend is jól működött, bár itt nem használtam semmilyen keretrendszert, csak sima JavaScriptet, hogy ne bonyolítsam túl a dolgokat.

14. hét: ADA - Ami nem hibázhat

ADA
A 14. heti nyelvem az Ada. Ezt a rendszert a légiközlekedésben és az űrprogramokban használják. Ha egy weboldal (JavaScript) lefagy, frissítesz. Ha a robotpilóta (Ada) fagy le, abból katasztrófa van.

Az Ada elképesztően szigorú. Minden változót, minden értéket ezerszer leellenőriz a háttérben. Üzleti szempontból ez a kockázatkezelés csúcsa.

Egy egyszerű kis lift szimulációt készítettem benne, ami egy 10 emeletes épületben működik. A liftet a számokkal hívhatjuk, és egy kijelzőn látjuk, hogy épp melyik emeleten van.

A kis kísérletem elsősorban a többszálas programozásra fókuszált, ami az Ada egyik erőssége. A lift szimulációban a különböző emeleten várakozó utasok külön szálakon futnak, és a lift vezérlője is egy külön szálon működik. Ez lehetővé teszi, hogy a rendszer hatékonyan kezelje a párhuzamos eseményeket, mint például az utasok érkezése és a lift mozgása.

13. hét: MATLAB - A mérnökök kedvence

MATLAB
Az első MATLAB 1970-ben készült, kereskedelmi formáját pedig 1984-ben nyerte el. Neve a MATrix LABoratory rövidítése, ami egyben a lényegét is elárulja: minden adatot mátrixként kezel.

Algoritmusfejlesztésre, szimulációra, és adatvizualizációra találták ki, többnyire tudományos és mérnöki területeken alkalmazzák. Meglepően jól kezelhető, átlátható nyelv, igazság szerint sokkal rosszabbra számítottam.

Egy kedves ismerősömnek hála megnézhettem pár "igazi" számítást is, amik a gyakorlatban remekül működnek, és igaz, hogy néha várni kell pár másodpercet, de az eredmények mindenért kárpótolnak minket.

Nem mélyültem el a nyelvben, egy egyszerű Mandelbrot-halmazt ábrázoltam vele. Egy apró csavart vittem azért a dologba: dinamikussá tettem, hogy lehessen benne zoomolni is.

Nem nekem való nyelv, az biztos, de őszintén meglepődtem, hogy mennyi mindent meg lehet vele oldalni.

12. hét: Fortran - A tudomány nyelve

Fortran
A nyelvet 1957-ben alkották meg az IBM-nél, kifejezetten azzal a céllal, hogy a matematikai számításokat a lehető leggyorsabban el tudják végezni. Ez volt az a nyelv, ami segített a NASA-nak a rakéták pályáinak kiszámításában az Apollo projekt során.
A legnagyobb előnye az oszlopfolytonos memóriakezelés. Ez ugyanis a legtöbb matematikai algoritmusnak igencsak kedvező elrendezés (más nyelvek sorfolytonos rendezésével szemben). Nagy mátrixok esetében pedig drasztikus sebességnövekedés érhető el.

Például.:
Oszlopfolytonos: a művelet 0,5 s, 50.000 alkalommal, ez kb. 7 óra
Sorfolytonos: a művelet 15 s, 50.000 alkalommal, ez kb. 8,5 nap (!) 😲

Nincs szuperszámítógépem, és nem dolgozom több milliós mátrixokkal sem, csak egy egyenletmegoldót barkácsoltam Gauss eliminációval. Ennek ellenére élveztem az alkotást ebben a nyelvben is. Tetszik, hogy átlátható, jól strukturált, bár a formátumok jelölése elsőre furcsának tűnt, de meg lehet szokni.

És ha már kipróbáltam az újabb (f90) Fortrant is, nem hagyhattam ki a fix oszlopszélességűt (f77) sem. Anno a lyukkártyák miatt volt a fix szélesség, ezért muszáj volt keresnem valamit erre is. Szerencsére elég sok szimulátort/emulátort lehet találni a neten, egyszerűen elképesztő, hogy némelyik modell még csörög, kerreg, kattog is, a műveletek elvégzése során. 😁
Ha belegondolunk, képernyő nélkül, kezükben 50-100-150 kártyával, a mérnökök akár órákat is vártak az eredményekre; ami lehet, hogy rossz volt, vagy épp begyűrte a kártyát a gép, és lehetett szépen újra lyukasztani.

11. hét: Delphi - Alkalmazás készítés könnyen, gyorsan

Delphi RAD
Emlékszem még a jó öreg Turbo Pascal-ra. Nagyon szerettem, mert könnyen tanulható volt, nagyon sok jópofa dolgot írtunk benne a haverokkal. Aztán jött a Delphi, ami az Object Pascal-ra épített, és volt hozzá egy nagyon jó RAD (Rapid Application Development) környezet is.

Ezen a héten egy gyorsindító sávot készítettem. Az alkalmazásokat 12 slotba rendezhetjük, és F1-F12-ig lehet indítani őket a billentyűzet segítségével. Kezdett tele lenni a tálca mindenféle appal, így a fontosabbakat áttettem ide. A sávot az ALT+SPACE kombóval tudom előhívni, aztán nyomok egy F6-ot, és elindul a beállított alkamazás. Igyekeztem modernebb külsőt adni az egésznek, így kapott némi áttetszőséget és kerekített sarkokat is.

Az a baj ezekkel a segédprogramokkal, hogy nagyon könnyű rászokni a használatukra, mert roppant kényelmesek tudnak lenni.

10. hét: R - Kollerációs analízis, grafikonok

R programming language
Alapvetően szeretem, ha rögtön láthatom a kódolás eredményét, mint egy desktop app esetében: gombok, beviteli mezők, etc.
Az R kicsit más, hiszen nem szoftverfejlesztésre készült, hanem iszonyatos sebességű számításokhoz, mint pl.: gyógyszeripar, pénzügyi szektor, akadémiai kutatás. Nem írnak benne operációs rendszert, vagy gépek vezérlését, és nem is ez mozgatja a weboldalak hátterét.

A múlt héten is használt log filet néztem meg:
• Mérete: 2.5 GB
• Sorok száma: 22 694 356

Az adatok elemzése grafikonnal és interaktív html készítésével együtt: 4.36 sec (!) alatt lefutott.

A második tesztem egy (az előzőhöz képest pici) 5000 soros adathalmaz, kitalált gyártási adatokkal, mint pl.: hőmérséklet, nyomás, etc. Kollerációs analízist, lineáris regressziót teszteltem, és egy javaslatokat tartalmazó riportot is készítettem.

Az elmúlt 3 hétben csak adatokkal foglalkoztam: SQL, Perl, végül az R. Az igaz, hogy itt nem készültek appok, de ezek a nyelvek is roppant érdekesek. Számomra lenyűgöző, hogy ha az adott nyelveket a megfelelő feladatokra használjuk, mennyire jól kiegészítik egymást.

Egy adatbeviteli alkalmazás készülhet C#-ban, az információt SQL szerveren tároljuk, Perl-el tisztíthatjuk meg, végül az elemzést elvégezheti az R. Persze, ez így, ebben a formában ritka, de az biztos, hogy egy adott vállalat által használt alkamazások (legyen az desktop, mobil vagy akár webes) nem mind ugyanazon a nyelven készültek.

9. hét: Perl - Log file adatelemzés

Perl language
A Perl kiérdemelte az "internet ragasztószalagja" címet, szinte bármit össze lehet vele tartani, ha gyors javítás kell, még ha nem is ez a legjobb és legelegánsabb megoldás.

Amiben igazán verhetetlen, az a szövegfeldolgozás:
• Log elemzés: szerver naplók, hibaüzenetek, biztonsági logok
• ETL (Extract, Transform, Load): adatok kinyerése, átalakítás, betöltés adatbázisba
• Beépített regex: továbbra sem szeretem, de piszkosul gyors és tömör

A héten egy log filet elemeztem vele, kíváncsi voltam, mennyi idő alatt lesz kész. Íme a számok:
• A log file mérete 2.5 GB
• Több, mint 22.000.000 sor van benne
• Az elemzés során 3 adatot néztem
• A teljes feldolgozás 2:14, azaz 134 sec!
• Tehát másodpercenként 164.000 sort nézett meg

Bár a Perl szintaxisa... nos, néha olyan, mintha egy macska sétált volna át a billentyűzeten, de a teljesítménye elképesztő!

8. hét: SQL - EVA és JSON unpivot kódok

SQL
Az SQL (vagy másképpen SeQueL) nem egy szokásos programozási nyelv, a nevének jelentése: Structured Query Language, tehát ez egy ún. lekérdező nyelv. Ezzel beszélgetünk az adatokkal teli óriási táblázatokkal.

A SQL segítségével létrehozhatunk adatbázisokat, táblákat, és természetesen lekérdezhetjük, módosíthatjuk vagy törölhetjük az adatokat. Az SQL szabványosított nyelv, de különböző adatbázis-kezelő rendszerek (pl. MySQL, PostgreSQL, Microsoft SQL Server) saját kiterjesztéseket is hozzáadhatnak.

A heti kód a kezdők számára lehet érdekes: kulcs-érték párokból képzünk táblát, dinamikusan, futás közben. Ez akkor hasznos, ha pl.: JSON adatokat kell feldolgozni, és nem tudjuk előre, hogy milyen mezők lesznek benne.

7. hét: VBA - Smart DMS dokumentumkezelő

Visual Basic for Applications
A héten csalok egy picit: eredetileg a VB.NET lett volna terítéken, de korábban már foglalkoztam a C#-al, ami hasonló, de modernebb eszközöket kínál, így úgy döntöttem, hogy inkább a VBA-t veszem elő. A Visual Basic for Applications a Microsoft Office alkalmazások beépített programozási nyelve, amely lehetővé teszi az automatizálást és a testreszabást. Bár a VB-hez hasonló szintaxissal rendelkezik, a VBA kifejezetten az Office környezetére van optimalizálva.

Annak ellenére, hogy egy elég régi, és korlátolt nyelvről van szó, még mindig nagyon hasznos lehet, különösen azok számára, akik gyakran dolgoznak Excel, Word vagy Access dokumentumokkal. A VBA segítségével automatizálhatjuk a monoton feladatokat, létrehozhatunk egyedi funkciókat és makrókat, amelyek növelik a hatékonyságot.

Azt akartam megmutatni, hogy egy egyszerű dokumentumkezelő rendszert is össze lehet dobni vele, ami képes kezelni a fájlokat, kategóriákba sorolni őket, és keresni közöttük. Ez különösen hasznos lehet kisebb vállalkozások vagy egyéni vállalkozók számára, akik nem akarnak bonyolult szoftvereket használni a dokumentumaik kezelésére.

6. hét: JavaScript - ClutterKiller

JavaScript
A JavaScript a modern web lelke, szinte minden weboldal használja. Nem véletlenül, hiszen remekül alkalmas a site manipulására. Kliens oldali nyelv, ami a böngészőben fut, tehát a fejlesztéshez nem kell telepíteni semmit, és azonnal láthatóak az eredmények.

A Node.js segítségével akár szerver oldalon is futhat a kód, így elérhetővé válnak olyan műveletek, amiket a klienseken biztonsági okokból nem engedélyeznek, mint pl.: fileműveletek (másolás, törlés, létrehozás, módosítás). Az Electron keretrendszerrel pedig asztali alkalmazásokat is készíthetünk.

Sokszor láttam már, hogy a felhasználó megnyitja a különféle táblázatokat, dokumentumokat, prezentációkat, egyszerre akár 10-15 ablakot is. Arra gondoltam, biztos hasznos lenne egy olyan app, ami figyelmeztet, hogy "xy" process már régóta fut, mégsem dolgoztunk vele az elmúlt 1 órában (ez szabadon beállítható).

5. hét: C# - BOM építő app

C# nyelv
A C# lett a Microsoft válasza a Java-ra, és sokáig a "Windows-os nyelvnek" csúfolták. Egyfajta hibrid, mert egyesíti a C++ erejét a Java egyszerűségével. Ráadásul ott van mögötte a .NET keretrendszer: mindenre van benne kész megoldás, legyen szó adatbáziskezelésről, titkosításról, vagy akár webes kommunikációról.

Készíthetünk vele modern vállalati alkalmazásokat is, WPF (vagy régebbi rendszerek esetében WinForms) technológiával. Az ASP.NET az egyik leggyorsabb megoldás API-k és weboldalak kiszolgálására. Ráadásul, mivel Microsoft termék, így az Azure felhőben mindent "első kézből" támogat.

Most egy BOM építő alkalmazást készítettem vele, a UI-t a WPF adja. Azoknak lehet ez jó, akik elemekből építenek fel termékeket, vagy szolgáltatásokat. Könnyen látható az egész fa struktúra, és mellette a költségeket is remekül kezeli.

4. hét: Java - Kölcsönző alkalmazás

Java nyelv
A Java mottója: "Írd meg egyszer, futtasd bárhol". A platformfüggetlenség sokak kedvencévé tette a nyelvet, hiszen a kód változtatás nélkül futtatható más gépeken és operációs rendszereken is, hála a JVM-nek, azaz a Java Virtual Machine-nek.

Rengeteg vállalati szoftver készül Java-ban, hiszen egyidejűleg akár több ezer tranzakciót is képes kezelni. A Google mára a Kotlint preferálja, de az Android alapjai és a Play Áruházban lévő alkalmazások jelentős része Java-ban készült (vagy Java alapú).

Én egy pici kölcsönző rendszert készítettem vele, ahol lehetőségünk van az eszközök, ügyfelek és természetesen a kölcsönzések rögzítésére. Azoknak lehet hasznos, akik nagyobb értékű gépeket, berendezéseket adnak bérbe.

3. hét: C++ - Snake játék

C++ programozás
A C++ elhozta azt, ami a legtöbb modern nyelv alapját képzi: az objektumokat. Olyan, mint egy versenyautó, amire robotkarokat és gépágyúkat szereltek. Bár nem a legkönnyebb nyelvek közé tartozik, mégis megéri foglalkozni vele. Az objektumok megfelelő használata elképesztően hasznos az üzleti életben, a folyamatok szervezésénél is.

Sebességének és a hardverközeli kontrollnak köszönhetően máig népszerű maradt. A közvetlen memóriakezelés és GPU/CPU optimalizálás lehetővé tette, hogy az egyik legnépszerűbb játékmotor, az Unreal Engine is C++-ban készült.

A snake nevű játékot szinte mindenki ismeri, a legtöbben talán a Nokia telefonoknak köszönhetően. Gondoltam jó buli lesz egy ilyet elkészíteni, még ha nem is használom ki feltétlen a C++ összes előnyét. A készítés során jól szórakoztam, élvezetes látni, ahogy blokkról blokkra épül fel a program.

2. hét: C - XOR titkosítás

C programozás
A TIOBE index szerint még mindig a C a 2. legnépszerűbb nyelv a világon, annak ellenére, hogy a szintaxisa jóval szigorúbb, mint a Pythoné. Nincsenek kényelmes megoldások, ellenben sokkal többet megtudhatunk a memóriakezelésről, az erőforrásokkal való gazdálkodásról.

A C olyan helyeken szükséges, ahol a teljesítmény kritikus, mert kevés a rendelkezésre álló erőforrás, pl.: beágyazott rendszerek vagy a játékmotorok.

A XOR titkosítás nem túl bonyolult, de kellően hatékony lehet. A feladat egyszerű: a 0-kat 1-re, az 1-ket 0-ra cseréljük a titkosítókulcs segítségével.

1. hét: Python - Sentiment Analysis

python fejlesztés
A Python kiváló kezdés mindenki számára, aki a programozás világával imserkedik. Egyszerű szintaxisa és széles körű alkalmazási területe miatt ideális választás volt az első hétre. Ebben a projektben egy Sentiment Analysis appot készítettem, amely képes megmondani egy szövegről, hogy az pozitív, negatív vagy semleges hangvételű-e.

Ismerem a nyelvet, oktatom is, de eddig inkább az adatfeldolgozás és gépi tanulás területén használtam. Azt kell, hogy mondjam, most sem csalódtam benne, a csomagok teleptésekor sem volt semmi gond, és a felhasznált textblob is éppolyan jól használható, mint más könyvtárak.

Hogy mire jó ez? Ahol pusztán csak a szöveges értékelés áll rendlkezésre, és nincs számszerűsített értékelés, szerintem ez a legjobb megoldás az elemzésre. Ugyanakkor a számok és csillagok mellé, kiegészítésként is remekül funkcionálhat. A Sentiment Analysis alkalmazások széles körben használatosak az üzleti életben és a közösségi médiában. Segíthetnek a vállalatoknak megérteni ügyfeleik véleményét, javítani a termékeket és szolgáltatásokat, valamint hatékonyabb marketingstratégiákat kidolgozni.