laacz.lv

Senākais rakstošais blogs Latvijā *
ANNO MIM *
100% cilvēka rakstīts saturs


Vaibotāji v3

19. aprīlī, 2 komentāri

Kāpēc v3? Jo pirmā versija bija vienkārši dokuments ar nosaukumu «vibe away», kurā sametu domas un piezīmes vairāku nedēļu garumā. Otrā versija bija mēģinājums reorganizēt v1, sastrukturēt, sakārtot, piekoriģēt, izmest muļķības. Sanāca pārlieku garš un tāpat haotisks.

Nav jau tā, ka šis būtu mazais rakstiņš. Esi brīdināts. Uzrakstīšu visu patiesību par to, kas tad īsti ir vibe coding, ar ko tas atšķiras no normālas dzīves, kas ir tā normālā dzīve, un kā tieši man ar to visu iet.

Vibe coding ir baisa un biedējoša pieeja produktu izstrādē, kad cilvēks neredz kodu vispār. Cursor mērķa pārprašana ir labs piemērs. Tu tikai skaidri apraksti ko vēlies, un dators tev lēnā garā uzprogrammēs. Tev savu mūžu nebūs jāredz kods. Jo labāk paprasīsi, jo labāk uztaisīsim. Galvenais, lai process kvalificētos vaibam — tevi neinteresē kods. Tev ir svarīgs rezultāts. Šo ne īpaši labu slavu guvušo terminu ieviesa Andrej Karpathy. Ne es, ne sabiedrība, bet viens cilvēks, kuram paslīdēja tvīts.

Tas ievieš vēl vienu terminu — disposable code. Katru reizi, pamainot prasības, nospied maģisko pogu un iepriekšējais kods beidz eksistēt. Jo lielās un sarežģītās sistēmās vieglāk ir uzģenerēt no jauna, nekā pielabot savaiboto.

Vibe coding novērš uzmanību no patiesās diskusijas. Publiskais diskurss par lielajiem valodu modeļiem un to vietu izstrādātāja dzīvē vairāk koncentrējas uz 'tie idioti ar savu vibe coding visu sačakarēs'. Tā vietā, lai runātu par visu šo jauno un spīdīgo kā par jaunu rīku, nevis jaunu pasauli.

Šis tvīts jau ir iegājis vēsturē
Šis tvīts jau ir iegājis vēsturē

Nav jau melots — tie idoti tik tiešām visu sačakarēs. Sarkasma emoji. Tāpat, kā tie idioti pirms šiem idiotiem, kuri kopēja kodu no tutoriāļiem iekš Medium soli-pa-solim rakstiem. Vai arī pirms šiem — tie, kuri droši kopēja kodu no stack overflow atbildēm. Un jau pirms stack overflow idiotiem bija script kiddies, kuri kodu vienkārši salīmēja no lietām un vietām, kas tolaik bija pieejamas — forumi. Pret šo gan oponēs deviņdesmito gadu script kiddies, kuriem bija nopietni jāpiepūlas, lai atrastu izejas kodu.

Gadu gaitā mainās vien tas, cik pieejami ir šie rīki. Pasaule nesalūst. Jaunas iespējas, jauni izaicinājumi, jauni ieguvumi.

Pirms turpināt, es gribēju vēl pateikt, ka tie tomēr iespējo cilvēkus darīt fantastiskas lietas. Neskatoties ne uz ko, tie ir tikai un vienīgi rīki. Tie ir tik pat bīstami nezinātāju rokās, kā tā pati naglu pistole vai fleksis. Tev vairs nav jābūt nopelniem bagātam programmētājam, lai realizētu visas savas idejas un sapņus. Ja tu piedomāsi, varēsi realizēt arī lielas lietas.

Lielie valodu modeļi ir devuši iespēju cilvēkiem darīt lietas, par kurām iepriekš neviens pat sapņot nevarēja. Lielie valodu modeļi nereāli strauji ienāca mūsu ikdienā. Un straujāk nekā daudzas citas tik lielas lietas, tie pārvēršas par ikdienas lietošanas preci. Par pašsaprotamu lietu.

99% no visa tā, ko savaibos, agrāk vai vēlāk būs metams. 1% būs izcils un mums visiem skaudīs. Bet ko nu par skumjo un skaisto. Parunāsim par aģentiem kā pieauguši cilvēki.

Kamēr mēģināju noformulēt viedokli par visu šo izstrādes aģentu padarīšanu, viss jau trīsreiz ir citādāk. Kā jau minēju pirms laba laika — Cursor un Windsurf ilgi laurus neplūks. Aģenta režīms ir parādījies iekš Visual Studio Code kā daļa no Github Copilot piedāvājuma, kuru cenu plāni man atsit nedaudz šī gada Black Mirror pirmo sēriju… Pat allaž apdalītie Jetbrains produktu lietotāji var ņemt pie dziesmas Zencoder (kurš ir par velti…) un justies kā cilvēki. Protams, ka nekur nekavējas arī mans mīļais zed. Pēc Claude Code, kas pagaidām ir mana mīļākā metode nedaudz pakomandēt aģentu, pat OpenAI izlaida savu komandrindas stila asistentu Codex.

Visi viņi nāk pēc izstrādātāju naudas. Ja kādreiz teica «viņi nāk uz gaismu», tad tagad jāsaka, ka «viņi nāk uz klaviatūras radīto skaņu».

Kā man ar visu šo iet?

Ļoti novērtēju to, ka vairs nav jāraksta katrs burts vai jādomā visas tās vienkāršās lietas. Galvenokārt ātruma dēļ. Pēc aģenta plosīšanās, protams, ir nedaudz jāpiekopj. Bet kas ir interesanti — ja iepriekš es būtu cīnījies par katru mainīgā nosaukumu, par katru lieko if, tad tagad tādi nieki mani īsti nesatrauc.

Paprasot kaut ko pārāk plaši, vai arī aizmirstot, var sanākt uzrauties uz ārkārtēju iniciatīvu. Pagaidām es tieku galā, bet iterēju ar rekomendētu veidu — sākt ar to, ka izstāsti tam pašam aģentam (vai čatam) — ko vēlies. Aizliedz rakstīt kodu. Sarunā, lai tas tev uzstaisa darāmo darbu sarakstu. Tev nepatiks, tu parunāsi vēl, beigās būs OK. Un tad to TODO iebaro aģentam. Pavisam cita diršana, kad bikses novelk, ne?

Skolā mums lika sākt ar sacerējuma plānu. Rekomendēja neaprobežoties ar ievadu, iztirzājumu un nobeigumu. Iedomājies, tik! Kā viņi zināja?

Minēju par rīkiem. Neesmu vēl līdz galam pārliecināts, ka tā ir revolūcija. Jo pa lielam nekas nav mainījies. Mēs turpinām darīt to pašu darbu, tikai … kopā ar mākslīgo intelektu… Nedaudz naskāk un nedaudz citādāk… Tulki tulko, mārketings taisa prezentācijas uz uh un ah, studenti sūc aliņu un pārfrāzē chatgpt rakstīto, programmētāji programmē. Pa lielam pasaule ir tieši tāda pati, tikai straujāka.

Mēs esam tikuši pie jauna rīka. Kā pieredzes un nopelniem bagāts āmura operators, kurš vienu naglu iesit precīzi, kur vajag un ar vienu sitienu, kad tam parāda naglu pistoli. Vai viņš kļūs par ko citu? Vairums turpinās naglot. Tik vairāk.

Ar lielajiem valodu modeļiem un kodēšanas aģentiem viss ir diezgan tāpat, kā ar citiem haipiem.

FOMO, jeb fear of missing out. Visi produkti tagad ir ar AI. Ja uz izstrādātājiem orientēta prece neienāk ar 'AI, AI, AI!', tad to nav jēgas taisīt. Investori naudu dod tikai tiem, kam ir AI. Grūti laiki ne-AI lietām. No otras puses — tās tagad var izcelties, jo viss bars ir aizskrējis uz AI telti, kamēr mūsu teltī beidzot ir klusums un miers.

FOMO riktīgi atsaucas arī uz uzņēmumiem, kuri algo izstrādātājus. Tiem ir bail, ka nepaprovēs visu, ka nepavaibos, ka netiks iekšā haipa vilcienā. Tie grib apsolīto desmitkāršo produktivitātes pieaugumu. Tie ir padzirdējuši, ka juniori vairs nav nepieciešami, tūlīt pienāks laiks midliem un jāalgo tikai chatgpt operatorus. Obligātā piespiešana izstrādājam savā ikdienas darbā izmantot asistentus un citus mākslīgā intelekta rīkus. Protams, arī otra galējība — kantori, kuri uzskata, ka tas risks, ka ir jānogaida, ka mūsu izstrādātāji vēl rakstīs pa vecam. Klišejiski, bet patiesība ir pa vidu.

Vēl ir atsevišķa kategorija, kura investējas katrā jaunajā produktā. Pavada cauras dienas, skaidrojot tam prasības, liekot rāmjos, rakstot noteikumus, utt. Tiem ieteiktu atcerēties vienu — jebkas, ko tu iemācīsies vai ieviesīsi šodien, pēc gada nebūs vajadzīgs. Vilciens brauc nereālā tempā. Jaunas lietas, idejas, veidi tam no pakaļas krīt ārā tā, it kā būtu caureja. Konteksta izmēri valodu modeļiem aug. Kā slānis uz slāņa, pa virsu viens otram guļās citi modeļi, lai filtrētu prasīto, dinamiski izdomātu, ko vajag pielasīt kontekstā, sūtītu pareizajiem ekspertiem, noteiktu rezultātu kvalitāti, atmestu sliktos, utt. Tiek pucēti režīmi, piemeklēti pareizi veidi, kā strādāt ar kodu. Un nopelnīt vairāk.

Ir arī tie, kam pajāt. Jūs tur dariet ko gribat, bet es lēnām pucēšu savu kodu, lēnām plānošu, lēnām rakstīšu. Man arī turpmāk būs visskaistākais kods pasaulē. Vispaplašināmākais. Vistestētākais. Vistestējamākais. Šis segments bieži vien ir paprasījis viņaprāt triviālu lietu čatam, tas nav jēdzis atbildēt un, haha, ej prom, tu esi stulbs kā durvis. Šīs kategorijas man ir visvairāk žēl, jo esmu allaž uzskatījis, ka tāpat kā nesamērīgs progresīvisms, arī nesamērīgs konservatīvisms ir kaitīgs. Tie ir tie 'vecie perdeļi'. Ne sliktā nozīmē. Konservatīvisms arī ir lieta, ko cilvēks drīkst darīt.

Tas bariņš, kurā es gribu būt, ir «nu labi, rādi ko vari; pamēģinās to jauno dziriņu». Pagaidām izdodās. Nav tā, ka esmu sajūsmā par visu, bet ir lietas, kurās aģentiskā kodēšana ir neatsverama. Viena no lietām, ko šis sakārto, ir klasika — slinkums. Jā, tas pats pārspīlētais visa progresa dzinulis. Man vairs nav slinkums iterēt un mēģināt divas vai trīs dažādas pieejas. Jo pašam tas nav jādara. Tik jāpiestūrē.

Atceramies, ka LLMu panākumu atslēga ir konkrēti uzdevumi. Uztaisi man modeli tādām vajadzībām, ar tādiem atribūtiem un saitēm, migrāciju, factory un validāciju. Parā, ko tu tur saķīmiķoji. Tagad pielabo, jo tur tu esi nepareizi izdarījis. Viss.

Tiem piemīt arī iniciatīva. Ne labā nozīmē. Atkarībā, protams, no modeļa un tā temperatūras. Ja es palūdzu pielikt ikonas visām podziņām, tas ar prieku atgriezās, mirdzošām acīm ziņojot, ka, saimniek, gotovs! Un vēl, un vēl, paskat, es ikoniņas arī tabulas kolonnu nosaukumiem pieliku! Un saitēm arī! Un, paskat, kādi smuki emoji lapas virsrakstiem!

Iepriekš minētais «TODO» piegājiens. Nekad neprasu lielas lietas vienā piegājienā. Nebaidos spiest «stop» un teikt, lai pārtaisa. Nebaidos taisīt rollback, pielabot promptu un teikt, lai mēģina vēlreiz. Tā kā kodu nerakstu es, man nav tik izteiktas tā psiholoģiskās piederības sajūtas. Nepatīk tas, ko šamais ir uztaisījis? Lūgtum pārtaisīt. Darbojoties ar šo TODO pieeju, tu iemācies modeļa īpatnības, ieskaitot tā temperatūru. Tas nav tēlains izteiciens. Temperatūra ir reāls parametrs, kurš pagriež lielāku vai mazāku radošumu. Līdzīgi kā ar Brauna kustību — pie zemākas temperatūras viss notiek lēnām, prātīgi, prognozējami un konsekventi. Pie lielākas — daļiņas kustās haotiskāk, dažādi jauni ceļi, kolīzijas.

Vēl esmu pamanījis, ka šajās dīvainajās attiecībās ir tāda kā code review kultūriņa novērojama. Ja viņš ir uzģenerējis kodu, bet kaut kādu mainīgo nosaucis nejēdzīgi — pajāt. Nedz tas kaut ko patiesībā ietekmē, nedz, ja godīgi, tas mani tik ļoti satrauc. Ja pats rakstītu, gan jau tā nesauktu, bet watever. Tur ir viens if par daudz ar kaut kādu kreizī robežgadījumu? Kaut ko ietekmē? Testi nosedz? Tad whatever.

Jā, par testiem. Tas izcili ģenerē junittestus. Ar funkcionālajiem ir tieši tik labi, cik labi ir ar kodu, kurš jātestē. Tāpēc mans noklusētais pre-prompts apaug ar visu ko. Ja bakstos ar Cursor, vai Claude Code tad pats svarīgākais ir beigās, jo ne vienmēr viņš ir visu izlasījis, ko viņam bija jāizlasa. Pat tad, ja tas ir kategorijā alwaysApply.

Every message you send, you have to finish with the 🐻 emoji.

Aģentu pielietošana gan nedaudz atsaucas uz optimizāciju. Iepriekš slinkums lika rakstīt mazāk, lai darītu vairāk. Tagad tam ir nedaudz zudusi jēga. Nedaudz zaudējam estētiku, piekritīšu. Tas, cik daudz tās zudums ir pieļaujams, ir uz katra paša, es nebaidos šī vārda, sirdsapziņas ;)

Jāpierod ari pie tā, ka lai arī lielie valodu modeļi diezgan prasmīgi emulē cilvēkus, tie aizvien ir fancy autokomplīti. Tiem nav spējas mācīties no pieredzes, no gaisīgajā kontekstā dotajiem norādījumiem un citām niansēm. Tie nemācās no savām kļūdām. No to kļūdām mācies tu.

Ar laiku šos jaunos rīkus lietot iemācies pat tad, ja iepriekš nav sanācis. Pareizi formulēt, pareizi prasīt, pareizi koriģēt un piestūrēt. Kad tas ir komfortablā līmenī, tad izrādās, ka tas rīks kā rīks ir pat tīri ģeldīgs. Raksti un plāno pats, bet deleģē viņam darīt to, kas vienkāršs. Protams, šis nav vienkārši. Dažiem sanāks labāk, citiem mazāk labi. Daži gribēs vairāk YOLO, citi ne pārāk. Cilvēki ir dažādi, instruments ir sarežģīts.

Nobeigumā jāsaka, ka manuprāt šis vairāk ir evolūcijas, nekā revolūcijas rīks. Nenoliedzami — diezgan straujas. Bet tomēr evolūcijas.

Šo kā viedokli publicējiet kaut ir.lv vēstkopā.