Un rant despre AI de la un programator

Acest rant a venit pe „adresa redacției” de la un programator care își dorește să rămână anonim. A venit ca mesaje de chat, deci uneori o să vedeți un stil mai informal decât ar fi fost în mod normal:

Legat de AI aveam niște panseuri filosofice legat de asta, după ce am produs mai mult cod cu AI în ultima vreme:

Noi suntem programatori. Suntem obișnuiți să luăm o problemă formulată de obicei foarte sumar, să o înțelegem, să extindem o cerință ca să cumprindă mai mult context, apoi să o formalizăm în limbajul nostru intern de clase / funcții / variabile, apoi acea formalizare să o scriem frumos într-un limbaj de programare. Apoi să testăm, să remediem, să ajustăm, și la un moment dat să lansăm.

După ce lansăm, avem cunoștința codului, avem cunoștința problemei. Tot ciclul dinainte ne-a ajutat să internalizăm codul ăla, acum știm de unde vin eventualele probleme când ne sunt semnalate. Când cineva semnalează un comportament ne-conform, avem o idee de unde ar fi problema, avem o idee cum am putea rezolva, tot acest ciclu se scurtează. We OWN that code.

Acum avem AI. Noi suntem în continuare cei care înțelegem, extindem și formalizăm cerința… dar apoi o dăm unui AI să scrie codul, să-l testeze, să verifice mereu că e conform cu ce i-am cerut, să treacă prin tot ciclul de testat-remediat-ajutat… iar noi la final îl lansăm. Este ceva cert că totul merge mult mai rapid. Tot codul ăla este produs, testat, etc în câteva ore în loc de câteva zile. Dar noi, ca programatori, am pierdut codul. Nu mai e al nostru, nu mai știm ce e acolo. Știm doar niște specs de la care AI-ul a plecat, iar când ne semnalează cineva o problemă… răspundem cu “o să mă uit”.

…iar când vine momentul să ne uităm la cod - nu e al nostru. Nu știm de ce s-au luat anumite decizii la nivel de cod (o funcție mare în loc de două mici, chestii d-astea), trebuie să-l parcurgem mai pe îndelete ca să ne dăm seama ce scrie acolo și de ce. A fost ușor de produs, este greu de rezolvat.

Nu mai suntem programatori. Acum suntem revieweri, suntem testeri, suntem specs-writers - nu zic că skillurile astea nu sunt bune, orice programator bun trebuie să aibă și skill-urile astea. D-asta unii programatori vor surpraviețui în lumea asta - știu să testeze, știu să formuleze cerințe tehnice…

Aici intră partea psihologică: din cauză că noi, ca programatori, facem orice altceva în afară de scris cod, ne-am pierdut scopul principal - acela de a scrie cod pentru a rezolva o problemă. Nu o să mai avem satisfacția că după ce-ai cioca-boca 2 zile ai produs ceva ce merge, nu mai ai satisfacția aia când te uiți la codul tău și zici “bă ce mișto l-am structurat, ce-mi place ce-a ieșit”. Acum scriem prompts și skills și instrucțiuni pentru agenți. În loc de programatori, suntem baby-sitters pentru niște mașini care produc sau nu codul pe care-l vrem.

Industria ne zice să “trust the process”, acum nu mai trebuie să scrii cod, bucură-te. Doar că scrisul de cod era bucuria noastră de fapt.

Am niște tasks prin care trebuie să scriu skill-uri ca să automatizăm anumite procese. Este super-derutant să scrii așa ceva pentru că nu ai nicio metrică de succes. Mi-aduc aminte de ceva ce-am citit pe internet de mult - “cu răbdare și perseverență poți să dresezi o pisică să facă ce vrea ea”. Am primit un feedback de la un coleg care a folosit skill-ul respectiv - pe Cursor face așa, pe Claude face altfel. Nu știu ce să fac cu informația asta, nu am știut ce-aș putea face, altceva decât să-i scriu în skill “bă, MEREU fă aia”.

Munca noastră va deveni din ce în ce mai nesatisfăcătoare. Dar… ca să nu fie doom & gloom - știu și oameni pentru care asta e noua satisfacție. Să pună la punct o rețea de agenți care în lipsa lor fac treabă. Să-și perfecteze prompts & skills & such astfel încât rezultatul să fie oarecum predictibil

Se mândrea un coleg din altă țară pe Slack că i-a dat rețelei lui de agenți un JIRA epic cu bugs în el și a zis “fix these bugs”, iar supervisorul a pornit sub-agenți care au trecut prin tot ciclul de investigate -> fix -> investigate again… iar omul s-a trezit dimineață și avea 10 PRs și 2 “not-a-bug”. Ceea ce… u know, e de admirat că omul și-a găsit locul în lumea nouă.

Sau oameni care își pun la punct infra să ruleze modele local. Eu am încercat asta, dar din lipsă de timp nu am făcut progress, dar mi se pare interesant.

Dar m-am gândit și la chestia următoare: acum mulți ani ni s-a promis că roboții ne vor face treaba, iar noi vom avea timp să ne cultivăm, să urmărim scopul vieții noastre așa cum l-a descris Aristotel: “să ne îmbogățim spiritul și mintea” (eudaimonia, nota mea). Deci în momentul în care AI-ul o să-mi facă treaba și eu o să citesc în pace sau bag un serial - I’m sold.