A szoftverprojektek programozási nyelvének kiválasztása ma már teljesen más játék lett, mióta vannak robotbarátaink, akik elvégzik a legtöbb kódgenerálást és -fordítást helyettünk.
Van, aki azon csodálkozik, miért dobtam piacra nemrég egy Rust-projektet, amikor nem is szeretem a nyelvet, és magam sem írok benne kódot kézzel. Ezt azért tettem, mert alkalmazkodtam a jelenlegi valósághoz, és most erről fogok beszélni.
A kézzel kódolás korszaka nagyrészt véget ért. Már nem annyira számít, hogy a használt számítógépes nyelv mennyire kényelmes a kezemnek, csak az, hogy a robotbarátom képes-e magas minőségben generálni azt.
Az is számít, hogy el tudom-e olvasni a nyelvet, mert át fogom akarni futni a szememmel, hogy átnézzem a kódot. A Rust átugorja ezt a lécet – kissé szögletesnek találom, de alapvetően olvasható.
A Rust jó telepítési nyelv számomra, amikor (a) szilárd memóriabiztonsági garanciákat akarok, és (b) a kód már érett, nem számítok arra, hogy a jövőben felfedező programozást vagy komoly funkciófejlesztést kell rajta végeznem.
Ez különösen alkalmassá teszi a Rustot arra, hogy ide telepítsem a régi C-projekteimet. Ezért költöztettem át az elmúlt pár hónapban kettőt belőlük Rustba. A robotok általi C-ből Rustba fordítás ma már olcsó és könnyű; valószínűleg folytatom ezt. Minden alkalommal, amikor a jövőben hibajelzést kapok az egyik ilyen projektről, boing! Rustosítva.
Lehet, hogy úgy gondolod, a Rustacea tele van kommunistákkal és szexuális deviánsokkal. Lehet, hogy igazad is van. Már nem kell törődnöm azzal, hogy ez igaz-e, mert van egy robotbarátom, aki minden releváns szempontból okosabb náluk.
A szélesebb tanulság itt az, hogy egy nyelv fejlesztői és felhasználói közössége már nem számít annyira, mint régen, amikor eldöntötted, hogy bevonódj-e vele. Mert a jövőben kevesebbet fogunk támaszkodni az emberi közösségi agyakra, és többet a mesterséges intelligenciákra. És ez a jövő már most van.
Persze nem minden C-projekt kerül Rustba. A cvs-fast-exportot például Golangba emeltem át, mert úgy gondolom, elég valószínű, hogy a jövőben jelentős fejlesztési munkát kell rajta végeznem, így a haszon nagyobb abból, ha olyan nyelvet használok, amit kézzel kényebben olvasok és módosítok.
Természetesen soha többé nem indítok C-projektet. Mi értelme lenne, a mazochizmuson kívül? 40 évet töltöttem C-t írva, és nagyon jó vagyok benne, de vidáman magam mögött hagyom a puffertúlcsordulásaival, a heap-korrupciójával, a nem definiált viselkedéseivel és a hordozhatósági problémáival együtt.
Az segít, hogy a robotbarátaim jók abban, hogy olyan C-kódot írjanak, amiben nincsenek ezek a problémák, de... miért is mennék ebbe bele egyáltalán? Miért kockáztatnám meg ezeket a rizikókat, ha a robot valami mellett elmegy?
Manapság a felfedező programozásomat Pythonban vagy Golangban végzem. A robotbarátaim rendkívül jók mindkét nyelvben kódot generálni. Szerintem kissé nagyobb a tőkehatékonyságuk Golangban, talán azért, mert annak kisebb a felülete?
A Python régen a kedvenc nyelvem volt. Egy időre kiábrándultam belőle, miután a 2-ről 3-ra való átmenet katasztrofálisan el lett cseszve, a GIL miatt a párhuzamosítás katasztrófaövezet volt benne, a könyvtárfüggőségek kezelése pedig még nagyobb katasztrófaövezet lett. Most egy kicsit boldogabb vagyok vele, mióta ki tudom jelenteni a szigorú típusrendszert, és az uv némileg csökkentette a függőségi fájdalmat.
De azt gondolom, ha azt látom, hogy Pythont kell használnom bármire, ami sokkal nagyobb, mint egy ragasztóscript, csak megrántom a vállam, és Golangért nyúlok helyette. Nagyon kényelmesen érzem magam Golangban. Az idő múlásával valószínűleg átmigrálom a régebbi Python-projekteimet Golangba, mert az most olcsó és könnyű, ráadásul a teljesítményjavulás jelentős lehet.
Nem tudom, milyen más nyelveket fogok a jövőben használni. Annyit tudok, hogy egy fejlesztési nyelv kiválasztása ma már sokkal kevésbé súlyos elköteleződés, mint régen, mert ha kiderül, hogy nem túl alkalmas a feladatra, egyszerűen csak megkérhetem a robotbarátomat, hogy fordítsa le egy jobbra.