Nekada se odluka o tome koji framework odabrati za novi projekt temeljila na profilu developera koji su bili na raspolaganju. Danas, kad sve više projekata piše AI i kad na pojedinim projektima čovjek i ne gleda u generirani kod, prevagu pri odabiru frameworka i biblioteka donose sasvim drugačiji razlozi.
Rust je po mnogima ružan jezik za pisanje, ali ako njegov kod ne moraš čitati, njegove druge prednosti odjednom dolaze do izražaja. Neki developeri još uvijek biraju tehnološki stack kako bi mogli intervenirati i usmjeravati razvoj. Ljudska sposobnost procjene arhitekture je i dalje važna, čak i ako developer ne piše kod.
U novoj podjeli uloga za odabir frameworka i tehnološkog stacka postavljaju se drugi kriteriji. Nolan Lawson je na svojem blogu objavio članak The AI cost of JavaScript frameworks u kojem je usporedio desetak JavaScript frameworka za razvoj web aplikacija. Na projektu ne baš trivijalne Pokemon aplikacije mjerio je cijenu po izvođenju, vrijeme potrebno za generiranje aplikacije, broj tokena, broj linija generiranog koda i Lighthouse testove. Rezultate ovog testa, kao i svakog drugog benchmarka, treba uzeti s rezervom jer mogu navesti na pogrešne zaključke. Jeftinije generiranje ne znači nužno i jeftiniji projekt.
Primjerice, framework koji troši manje tokena pri početnom generiranju, ali generira kompliciraniji kod, može dugoročno biti skuplji. Agent će možda potrošiti više tokena na izmjene, ispravljanje grešaka i razumijevanje postojećeg koda.
Većina vibe kodera ne gleda kod i ne utječe na to koji će framework agent koristiti. Čak i ako agent postavi to pitanje, oni će odabrati prvo predloženo. Taj odabir će kasnije imati utjecaj na cijenu projekta, vrijeme potrebno da se izgenerira, njegovu sigurnost i na performanse, a najčešće i na korisnički doživljaj u aplikaciji.
Neki vibe koderi koji imaju bezgranično povjerenje u AI žele da se sve izgenerira od početka. Kod nekih jednostavnih stvari to ima smisla, ali kod složenih baš i ne. Kad sam uz pomoć AI alata radio na frontendu za django-lumen agent je najprije odabrao jednu od uobičajenih biblioteka za grafove u JavaScriptu. Nakon što sam pred njega postavio nove zahtjeve, koji su prešli okvire mogućnosti odabranog rješenja, predložio je da napravi potpuno novo rješenje za relacijski prikaz entiteta modela. Novo rješenje ispunilo je zahtjeve, bilo je ljepše i puno responzivnije od postojećeg rješenja.
U komentarima na temu agentskog programiranja vidim da neki vibe koderi predlažu da se pri izradi web aplikacije i cijeli CMS izgenerira iz početka. Taj pristup ne bih preporučio. CMS nije trivijalna stvar kao prikaz jedne vrste grafikona. Previše je tu kritičnih dijelova da bi mogli biti izgenerirani kako treba samo iz jednog usputnog zahtjeva agentu.
Za male projekte, koje vibe koderi izbacuju na dnevnoj bazi, problemi takvog pristupa neće odmah biti vidljivi, ali za složene projekte odabir neodgovarajućeg rješenja mogao bi imati dalekosežnije posljedice i puno veću cijenu.
NIH sindrom u vrijeme agenata vjerojatno će doživjeti svoje nove pobornike, ali neki ljudi ne prihvaćaju savjete, već moraju vrelinu osjetiti na vlastitoj koži.
Odaberi framework, sigurno ćeš pogriješiti
U agentsko vrijeme prednost bi mogla dobiti jednostavna okruženja koja u sebi sadrže osnove koje je lako proširiti i prilagoditi traženom rješenju. Umjesto složenog JavaScript okruženja, koje ima odgovor na sve moguće zahtjeve i puno legacy koda, agentu bi trebalo ponuditi jednostavan framework koji ima čvrste osnove na kojima se može dalje graditi. Za neke namjene moći će se birati postojeća rješenja, a za ostalo će se generirati neka nova s fokusom na agentsko korištenje.
Kad je riječi o CMS-ovima, čini mi se da tu postoje odlični primjeri za usporedbu.
WordPress je CMS koji pokreće veliki dio web stranica na internetu, ali njegove mogućnosti su već definirane, za nove mogućnosti trebate dodatne pluginove. Administrator neke web stranice može bez pisanja dodatnog koda, uz odabir odgovarajućih pluginova, nadograđivati tu stranicu.
Wagtail je CMS koji ne možete samo instalirati jer za sadržaj koji želite posluživati morate napisati određeni broj linija koda. Taj kod nije složen. Ako agentu opišete što trebate, on će napisati modele i u kodu definirati izgled sučelja za uređivanje sadržaja. Ako se i nastanak sadržaja treba automatizirati za to je prikladan ugrađeni API.
Ne pratim u kojem smjeru ide razvoj WordPressa, vidim da ga neki korisnici napuštaju jer je agentu teško klikati, ali Wagtail kao da je nastao s predosjećajem agentskog doba. Ono što je prije par godina bila njegova mana (treba napisati kod prije korištenja) sada postaje njegova prednost.
U vrijeme agenata framework morate birati prema tome koliko je dobar za agenta koji će taj kod generirati i održavati.

PHOTO: