Eric S. Raymond újabb markáns állítással szállt be a programozás jövőjéről szóló vitába. A nyílt forráskódú világ egyik ismert alakja szerint a szoftverfejlesztésben mára alapvetően megváltozott a programozási nyelvek kiválasztásának logikája, mert a fejlesztők egyre nagyobb mértékben támaszkodnak mesterséges intelligenciára a kód előállításánál és átalakításánál. Raymond úgy látja, hogy a nyelvválasztás korábban személyesebb döntés volt, amelyet erősen befolyásolt a fejlesztő kényelme, rutinja és az adott közösség minősége, ma viszont egyre inkább az számít, hogy az MI mennyire megbízhatóan tud az adott nyelven dolgozni.

Eric S. Raymond szerint az ember által írt kódok korszaka nagyrészt lezárult, ezért egy programozási nyelv értékét ma már nem kizárólag az határozza meg, mennyire könnyen kezelhető a fejlesztők számára. A hangsúly szerinte arra került át, hogy az automatizált kódgenerálás milyen minőségben tudja kezelni az adott nyelvet, a fejlesztő pedig el tudja-e olvasni és ellenőrizni az így létrejött forrást.
Ezzel magyarázza azt is, hogy nemrég Rustban adott ki egy projektet, annak ellenére, hogy saját bevallása szerint nem kedveli különösebben a nyelvet, és nem is ír benne kézzel kódot. Raymond számára a Rust ebben a szerepben elfogadható, mert a kód olvasható marad, a nyelv pedig erős memóriabiztonsági garanciákat ad. Ezt különösen olyan régebbi C-projektek átalakításánál tartja hasznosnak, amelyek már érett állapotban vannak, és várhatóan nem igényelnek nagyobb kísérletező fejlesztést.
Raymond az elmúlt hónapokban több régi C-projektjét is átírta Rustra , és várhatóan folytatni fogja ezt a gyakorlatot. Úgy fogalmaz, hogy a C-ből Rustba történő gépi átalakítás ma már olcsó és egyszerű folyamat, ezért egy-egy hibajelzés akár elég indok lehet arra, hogy egy korábbi C-alapú projekt Rust-változatot kapjon.
A C-től való távolodását azzal indokolja, hogy a nyelvben hosszú évtizedes tapasztalata ellenére sem lát okot új C-projektek indítására. A puffertúlcsordulások, a heap sérülései, a nem definiált viselkedések és a különböző platformokon jelentkező működési gondok szerinte olyan kockázatot jelentenek, amelyeket ma már nem éri meg vállalni, ha rendelkezésre állnak biztonságosabb és AI-vel könnyebben kezelhető alternatívák.
Nem minden régi projektet vinne azonban Rustba. A cvs-fast-export esetében például a Go mellett döntött, mert arra számít, hogy a jövőben még érdemi fejlesztési munka várhat rá. Ilyen helyzetben számára nagyobb előnyt jelent egy olyan nyelv, amelyet kézzel is szívesebben olvas és módosít.
Raymond korábban a Pythont tartotta kedvenc nyelvének, de a Python 2-ről Python 3-ra való átállás, a GIL miatti párhuzamosítási nehézségek és a függőségkezelés problémái miatt egy időre eltávolodott tőle. Most már valamivel kedvezőbben ítéli meg, részben a szigorúbb típuskezelési lehetőségek és az uv megjelenése miatt, de nagyobb projektekhez egyre inkább a Go felé fordulna.
A Go szerinte kényelmesebb választás lehet azoknál a programoknál, amelyek túlmutatnak az egyszerű segédscripteken. Raymond azt is elképzelhetőnek tartja, hogy idővel régebbi Python-projektjeit Go nyelvre alakítja át, mert az MI-alapú átköltöztetés már kellően olcsó és gyors, a futási teljesítményben pedig jelentős javulást hozhat.
Raymond érvelésének egyik legvitatottabb része az, hogy szerinte a programozási nyelvek köré épülő emberi közösségek szerepe csökken. Korábban egy nyelv választásánál sokat számított, milyen fejlesztői kultúra, dokumentáció, támogatási háttér és közösségi tudás áll mögötte. Raymond szerint az AI-kódgenerálás terjedésével ez a szempont veszít a súlyából, mert a fejlesztő egyre kevésbé támaszkodk közvetlenül a közösség tudására, és egyre inkább a gépi asszisztens képességeire támaszkodik. Ennek ékes bizonyítéka a Stack overflow weboldal kálváriája is, melyről jó pár hónappal ezelőtt beszámoltunk.
A következtetése szerint a fejlesztési nyelv kiválasztása ma már kisebb elköteleződés, mint korábban. Ha egy projekt nyelve később rossz döntésnek bizonyul, Raymond szerint egyre reálisabb megoldás lesz a gépi átalakítás egy másik, alkalmasabb nyelvre. Ez nem pusztán technikai állítás, hanem szemléletváltás is: a programozó szerepe nála egyre kevésbé a soronkénti kódírásról, és egyre inkább az irányításról, ellenőrzésről és döntéshozatalról szól.
Eric S. Raymond X bejegyzése a témában itt olvasható.
