Hipochonder vibe coder

Van egy kedves ismerősöm, akivel nagyban különbözünk egymástól, mégis több közös vonásunk felfedezhető. A múlt század 90-es éveinek elején megismerve arra figyeltem fel első találkozásunkkor, hogy legalább akkora kulcscsomót tart kezében, mint az enyém, pedig hozzám hasonlóan ő is csak a gyakran látogatott ingatlanok kulcsait hordta magával. Akkor éppen kereskedelemmel foglalkozott. Autóalkatrész-boltot vitt, előtte taxis volt, később ingatlanokban utazott – sokoldalú, találékony fickó. Szinte minden műszaki problémára tud megoldást, remek ötletei vannak.
Innovatív faszi lévén számítógépet tartott boltjában, vonalkódokat nyomtatott etikettcímkékre, amit aztán sajátkezűleg ragasztott a termékekre (ez akkoriban még kifejezetten úttörő, korai alkalmazásnak számított egy kisvállalkozásban). Az árukészlet nagysága nem indokolta ennek a technológiának bevezetését a szobányi méretű eladótérben, de kellett ahhoz, hogy jól érezze magát. Megcsinálta, mint ahogy arra is tudott megoldást, hogy igazi hipochonderként bármikor megmérhette vérnyomását az első ujjperc párnás részére húzható miniatűr vérnyomásmérővel. A marha nagy kulcscsomó mellett ez volt a másik ismertetőjegye: olyan gyakorisággal méregette vérnyomását, mint ahogy a türelmetlen ember a pontos időt nézegeti óráján.
Későbbi együttműködésünk az ő ötleteit és az én IT-szakértelmemet kovácsolta össze. Az a megállapítás is érvényes ránk, hogy kapcsolatunk hullámzó, és a kölcsönös előnyökre épül – alkalmasint jól kiegészítjük egymást.

Mozgalmasan teltek az elmúlt évtizedek, és amellett, hogy gyerekeink felnőttek (ráadásul rendesen megöregedtünk), a már említett hullámzó kapcsolatunknak volt olyan időszaka, amikor a napirendem jól kiszámítható részeként minden reggel nyolc órakor megcsörrent a telefonom, és ez a haverom volt a vonal másik végén. Ugyanis előzmények, gyakorlat és szakképzettség nélkül belevetette magát a mikroszámítógépek programozásába (Arduino), aminek alapját a közkézen forgó példaprogramok képezték. Ezek tusznyákolásával érte el a kitűzött célt, ami szakértelem híján az összes lehetséges kombináció kipróbálásával, visszacsatolásos módszerrel ment végbe. Időrabló eljárás, távol áll az optimálistól. Könnyű megrekedni, zsákutcába futni ezzel az átgondolatlan gyakorlattal, ezért reggeli beszélgetéseinkben a világban történt érdekességek, valamint régi emlékek felidézése mellett a megfeneklett hegesztés továbblendítésére kerestünk megoldást.

Megfeneklett hegesztés
Nem hétköznapi, sajátos terminus technicus. A megfeneklett részét mindenki érti, no de hogy jön ide a hegesztés? Bizonyos számítógép-programozók ezzel a szóval illetik azt a tevékenységet, melynek során kezüket a billentyűzet fölött tartva, kigúvadt szemmel igyekeznek átlátni a képernyőn feltűnő programsorokat. Mindezt nagy igyekezettel, feszült figyelemmel, kicsit előrehajolva adjuk elő, mint a versenybringások a légellenállást csökkentve. Fokozott agyműködés mellett hevesen csapkodjuk a billentyűzetet, majd az elkészült kód futtatásával teszteljük az eredményt.
A régi világban katódsugárcsöves (CRT) monitorokat bámultunk karnyújtásnyi távolságból, ami roppant egészségtelen, de akkoriban legfeljebb a konzolírógép jelentett alternatívát. A CRT úgy működik, hogy egy elektronágyú elektronnyalábot vetít a foszforréteggel bevont képernyőre. Mellékhatásként csekély mértékben röntgensugárzást is kibocsát a készülék, így nem csoda, ha egy vérbeli programozónak a CRT-k idejében megpirosodott a szeme, hámlott a homloka, és hullott a szemöldöke. A károsodás nem volt olyan mérvű, mint mondjuk pajzs nélkül ténylegesen hegesztve, de bizonyos tünetek hasonlatosak voltak. Etimológiáját vizsgálva innen eredeztetem a hegesztés elvont jelentését.

Sokoldalú és vállalkozó kedvű haverom egyik percről a másikra úgy döntött, hogy szellemi portfólióját autodidakta módon gyarapítja a számítógép-programozás képességével, ami izgalmasan tágítja a taxis-kereskedő-ingatlanos ívet. Manapság életünknek azt a szakaszát éljük, amiben hetek telnek el két alkalom között, amikor is egymás hogyléte felől érdeklődünk. Viszont a programozói véna fejlesztésének idejében nem csak a telefonvonal izzott, hanem az email váltások frekvenciája is magas volt. Ilyen és ehhez hasonló tanácsokkal láttam el rendszeresen, mint például a következő triviális formula:

boolean vegrehajtva = false; //a deklarációs részben
.
.
if (!vegrehajtva) {
  vegrehajtva = true;
  //az egyszer végrehajtandó utasítás
}


Sok jót tettünk egymással, együttműködésünket bátran jellemezhetem gyümölcsözőnek. Emlékszem arra, amikor példámat követve, néhány évnyi rábeszélés után végre napelemeket telepített házának tetejére. Nem bánta meg, sőt. Arra is emlékszem, amikor megmutattam neki a még gyerekcipőben járó mesterséges intelligencia alkalmazási lehetőségeit. Fölfogta a jelentőségét, sőt. Ma már ott tart, hogy a ChatGPT fizetős változatát használja. Nem görnyed billentyűzet fölé, hanem fotelében kényelmesen hátradőlve diktálja a teendőket az AI-nak.

Nemrég arról számolt be diadalittasan, hogy a lánya vállalkozásában raktárkészlet-nyilvántartó programot telepített, amit a ChatGPT állított elő a mikrofonba diktált instrukciók alapján. Az elkészült mű állítólag mindenki legnagyobb elégedettségére, prímán működik. Az én innovatív haverom ismét bizonyította rátermettségét, leleményét. Le a kalappal, az ilyen faszik élnek meg a jég hátán is. Együtt örvendeztünk a hirtelen jött siker fölött, méltattuk az AI képességeit, de nem rekedtünk meg ebben az eufórikus állapotban.
Egy kicsit továbbgondolva előjöttek a különös módon készült program árnyoldalai. Mi lesz akkor, ha módosítani kell? Képes lesz erre a néha hallucináló, a tudatlanságát mérhetetlen határozottsággal ellensúlyozó, olykor kamuzó AI? Rá lehet bízni a finomhangolást? Jól ismert jelenség, hogy egy bonyolult számítógépes program módosítása rendszerint nem csak az új funkciók megjelenésével jár, hanem korábban kifogástalanul működő részek válnak használhatatlanná, hibák jelentkezhetnek.

Vibe coding

Már megint egy idegen kifejezés, amit nem a magyar ugaron találtak ki, de eljutott hozzánk, és alkalmazzuk. Ugyanígy ülünk be Ford, Tesla, Jeep és más autókba, amik a fejlettebb világból érkeznek hozzánk. Befogadók vagyunk, használjuk a technológiát, alkalmazkodunk. Itt van ez a vibe coding is, ami szintén onnan jön, ahol jellemzően az angolt beszélik. Jelentését többféleképpen magyarázzák, de engem ezek közül most csak az a változat érdekel, ahol AI-összefüggésben értelmezik.

Andrej Karpathy
Ismeretlen? Érthető: nevét nem kísérik botrányok, nem frontemberként tevékenykedik, nem vált celebbé, viszont szakmai közegben legendás kutató, oktató, mérnök és algoritmus‑zseni. Bratislavában született a hajdani Csehszlovákiában, anyanyelve szlovák. 2025 februárjában mégis vibe coding néven alkotta meg a fogalmat, ami az AI és a hobbiprogramozók viszonyát írja le: megmondod mit akarsz, az AI pedig elkészít helyetted egy programot vagy egy weboldalt.
Karpathy sem lehetett próféta a saját hazájában. Családjával gyerekkorában Kanadába költözött, és ezzel számára kitárult a világ. Amellett, hogy Rubik-kocka szakértő, az OpenAI egyik alapító tagja – neve összeforrt a mesterséges intelligenciával. Kulcsszerepet játszott a Tesla önvezető rendszerének fejlesztésében (Autopilot), és létrehozta a Stanford híres deep learning kurzusát. Sikereiben valószínűleg része van a Kelet-Európából magával vitt találékonyságnak.

Nagy szerencsémre elém került egy beszélgetés, ahol Linus Torvalds gondolatait ismerhetjük meg a témáról. Ennek során többször is szót ejt az AI-jelenségről, és jól érezhetően nem lelkesedik az iparág új kedvencéért. A vibe coding kifejezés lényegében az AI szinonimájaként hangzik el nem egyszer, ami ellen a Linux kernel programozóit hozza fel példaként. Ők nem vibe coding érzülettől vezérelve fogalmazzák meg a kódsorokat, hanem pontosan tudják, hogy mit csinálnak.

Az említett beszélgetésből egy részt külön kiemelek:
"…and I feel like computers have gotten so complicated and your expectations of programming have gotten so much higher that it's much harder to get started these days than it was when I was young and I got into computers and I got excited about it. And I actually think that vibe coding may be a horrible, horrible idea from a maintenance standpoint if you actually try to make a product for it…"
Nem szó szerinti, de lényegre törő fordítás:
"…úgy látom, a számítógépek világa annyira elbonyolódott, és a programozással szembeni elvárások is annyira emelkedettek, hogy manapság sokkal nehezebb belevágni ebbe a szakmába, mint amikor én voltam fiatal: belezúgtam a gépekbe és rákattantam a témára. Szerintem a 'vibe coding' karbantartási szempontból egy szörnyű, de inkább elhibázott elképzelés, ha eladásra szánt termék előállítására törekszel…"

Torvalds régi motoros, egy élő legenda, érdemes megszívlelni véleményét. Abban az időszakban szocializálódott, amikor a programozás még nem volt demokratikus intézmény. Napjainkban eluralkodott az a téveszme, hogy akinek elér a keze az egérig, és képes megcélozni színes ikonokat a monitoron, az ért a számítógéphez. Igen, ez igaz azzal a megkötéssel, hogy ez a sekélyes hozzáértés olyan szintű, mint a B-kategóriás jogosítvánnyal rendelkező úrvezetőé: minden rendben van addig, amíg nem kell például vezérműláncot cserélni a motoron. Az AI, bár képes technikailag helyesnek tűnő, de logikailag hibás kódot generálni, nem látja át a rendszer egészét (vigyázat: az autocomplete használata is eredményezhet képtelenségeket, ha elbambulsz). Mégis olyan érzetet kelt a programozó szakmán kívülállókban, hogy használatával nem csak az írástudók kiváltsága uralni a számítógépek működését. Ennek a jelenségnek legjobb példája a haverom, aki addig dirigált az AI-nak, amíg az el nem készítette a raktárkészlet-nyilvántartó programot. Színházi előadáshoz hasonlít az AI közreműködésével végrehajtott programoztatás (igen, műveltető képző). Minden rendben van addig, amíg egy színész beteget nem jelent. Attól kezdve hiába ordítozik a rendező a társulat egészséges tagjaival, az előadás el fog maradni – egy AI-segédlettel készült programnál ugyanilyen bizonytalanság uralkodik, ha bele kell nyúlni.

illusztráció: gemini.google.com

A színházi rendező tehetetlensége jól példázza az AI készítette program karbantartási nehézségeit. A zenei producerek világa is rejt magában hasonló buktatókat, ámde a hozzáértő programozók mintájára ezen a szakterületen is van megoldás: Mike Oldfield nem jön zavarba, ha minden szólamot neki kell megszólaltatnia. Az 1973-as Tubular Bells című albumon állítólag 15 hangszeren játszott (studióban, overdub technikával), és a keverést sem bízta másra. Színpadi megjelenésnél, élő koncerten persze más a helyzet, mert ezeken Oldfield nagy tömegben foglalkoztat kiváló zenészeket, akár egy csapat skót dudást is – ha már "vibe", akkor legyen ott rendesen. Különös hangulatot áraszt a következő gondolat: álmomban három madár voltam, és felülről néztem, ahogy magam alatt repülök (Sándor György? Vámos Miklós?). Ehhez az érzéshez nem kell hangszeres tudás, civilek is elképzelhetik.

⚠️Black box rizikó

Rendőrök törnek rád, és egy végzést lobogtatva lefoglalják az autódat. Miért? Lebukott az autószerelőd, hogy lopott gépjárművekből kiszerelt alkatrészeket épít be az ügyfelek járgányaiba – akaratlanul orgazda lettél. Ez csak egy példa, de nem tudhatod, hogy a legjobb megoldásra törekvő AI összeollózott-e neked valahonnan szerzői joggal védett kódrészleteket is. Bármily hihetetlen, adódhat ebből kellemetlenséged, de legkevesebb magyarázkodnod kell, esetleg fizetned a licencdíjat.

Gondok adódhatnak az AI által generált programok minőségével. Nyilván nem lehet oly mértékben kiforrott, polírozott és optimális, mint amit egy sokat látott programozótól várhatunk, de ha egy gyorsan összeütött prototípus teszi a dolgát, az elfogadható kompromisszum. Ellenben különösen nyugtalanító, ha biztonsági rések és hibakezelés tekintetében a végeredmény egy mekkmester munkáját idézi. Eddig a hanyag vízvezetékszerelő távozása után csöpögő csap, vagy a kókler kőműves által kéménybe falazott tetőgerenda miatt bosszankodhattál, de fejlett világunkban már az AI vibe coding szolgáltatása is aggodalomra adhat okot: mikor fog hibázni az eredmény? Azt javaslom, hogy ezt a módszert csak olyan esetekben használd, amikor nem tartós megoldáson dolgozol, ezért érthetően nem akarsz jelentős időt és fáradságot áldozni a munkára. Kritikus infrastruktúrát vagy személyes és pénzügyi adatokat kezelő rendszert működtető programokat nem bíznak vibe codingra. Konkrétabban:

  • repülésirányítás
  • orvosi eszközök és életfenntartás
  • nukleáris létesítmények
  • bank és pénzügyek
  • autóipari vezérlőrendszerek (fék, motor, önvezető funkciók)
  • katonai és védelmi rendszerek
  • elektromos hálózatok
  • vasúti biztosítóberendezések
  • űripar

Védhetetlen álláspont lenne a kódolással költségtakarékoskodni a felsorolt helyzetekben, melyekben a rendszer minden más összetevője rendkívül megbízható, és ennek megfelelően piszok drága. Azt se feledd, hogy ha például műholdat akarsz pályára állítani, akkor ne a Windows felügyelete alatt működjön a rendszer (ha nyugodtan akarsz aludni). Íme néhány bevált OS a teljesség igénye nélkül:

  • QNX
  • VxWorks (a NASA Mars Pathfinderében is ezt használják)
  • Integrity OS
  • FreeRTOS
  • seL4
  • OpenBSD
  • Solaris
  • IBM z/OS

Ebben a világban nem a vibe irányít, hanem a matematikailag bizonyítható megbízhatóság. Nem csupán megmosolyogtató, hanem egyenesen bűnös gondolat például egy pacemaker működtetését valami vibe coding gányolással összedobott algoritmusra bízni. Vibe coding? A leggyengébb láncszem a rendszerben. A végére hagytam a legvelősebb véleményt az AI asszisztálása melletti vibe játszadozás jelenségéről: a számítógépes program nem a vágyaid szerint működik, hanem az utasításaidat hajtja végre. Aki erről mást gondol, az téved.

Újabban nem a TV-t nézi az, aki hiteles tájékoztatást keres – sokan a YouTube csatornáin találnak rá az őket érdeklő anyagokra. Ebben a speciális moziban ebből a forrásból kínálok mellékleteket a szürke szöveg illusztrációjaként.