Vaibkoodimine ehk vibe coding on tänapäeva uus kuum väljend. Laias laastus tähendab see koodi kirjutamist tehisintellekti abiga: sina ütled, mida tahad, AI kirjutab midagi valmis ja siis proovite üheskoos aru saada, miks see töötab või – sagedamini – miks see enam ei tööta.
Mina tunnen aga kohati, et olen vaibkoodinud juba üle kümne aasta.
Tõsi, toona ei teadnud ma tehisintellektist suurt midagi. Minu jaoks ei olegi AI vaibkoodimise juures siiski kõige olulisem. Vaibkoodimine tähendab minu jaoks eelkõige koodi kirjutamist tunde järgi. Täpsemalt: koodi kirjutamist ilma, et ma tegelikult koodi kirjutada oskaksin.
Selle loogika järgi võiksin olla ka vaib-venekeele-rääkija, sest asjaolu, et ma vene keelt absoluutselt ei oska, ei ole mind kunagi takistanud seda vajaduse korral rääkimast.
Koodiga on umbes sama.
Enne tehisintellekti oli Google
Aastaid tagasi ehitasin kodulehti nii, et ma ise otseselt programmeerida ei osanud. Googeldasin, mida vaja oli, leidsin sobiva koodijupi, kopeerisin selle oma projekti, muutsin midagi, lõhkusin midagi, googeldasin uuesti ja pusserdasin edasi.
Ja sain tehtud ka.
Üks väga väärt abimees oli toona W3Schools. Sealt leidsin koodinäiteid, mida sain oma vajaduste järgi kohandada. Ma ei pruukinud alati täpselt aru saada, miks mingi lahendus töötab, aga kodulehed said valmis, klientidele müüdud ja veebi üles.
Ehk teisisõnu: vaib oli olemas juba ammu enne seda, kui AI talle ametliku nime andis.
Ideid oli palju, töötavaid äppe vähem
Tehisintellekti tulek on aidanud mind eriti palju edasi back-end’i arenduse ja andmebaasidega seotud projektide juures.
Varem oli mul ideid küllaga. Prototüübid valmisid Figmas ja Canvas, kasutajateekonnad said läbi mõeldud ning äpp nägi paberil juba peaaegu suurepärane välja.
Ainult üks väike probleem jäi: see ei töötanud.
WordPressi ja valmis mallide abil saab kodulehe üsna edukalt kokku panna, kuid päriselt toimiv rakendus, kus on kasutajakontod, andmebaasid, erinevad vaated ja omavahel suhtlevad funktsioonid, on juba teine maailm.
Siis jõudsid minuni keskkonnad nagu Bubble, Bolt.new ja Lovable. Põhimõtteliselt peaksid need põhjaliku ja täpse juhise peale terve veebi või rakenduse valmis ehitama.
Rõhk sõnadel põhjalik ja täpne.
Sest kui palud AI-l lihtsalt „teha ühe äpi“, võib ta teha küll. Ainult et mitte ilmtingimata selle äpi, mida sina mõtlesid.
„Tasuta versiooniga saab päris palju teha“
Olen sageli kuulnud väidet, et näiteks Lovable’i tasuta versiooniga saab üllatavalt palju ära teha.
Minu puhul see kahjuks ei kehtinud.
Ma suutsin Lovable’i üsna kiiresti segadusse ajada ja koos sellega oma tasuta krediidi ära kulutada. Lisaks ei meeldinud mulle, et loodav projekt täideti kohe kõikvõimaliku näidissisu ja kohahoidjatega.
Mina ei tahtnud kohe suurt kolakat, mille sees on hulk nuppe, tekste ja funktsioone, mida ma pole küsinud. Tahtsin alustada väikselt ning kasvatada rakendust tasapisi, üks funktsioon korraga.
Just siis sattusin Courseras kursusele Learn to Code with AI.
See oli täpselt selline koolitus, mida mul vaja oli. Kursus õpetas ChatGPT abil rakendusi looma, koodi parandama, GitHubi kasutama ja projekti veebi üles laadima.
Minu kursuse tunnistus on nähtav siin.
Rohkem klikkimist, aga ka rohkem päris ehitamise tunnet
Minu tööprotsess nägi välja umbes selline:
- kirjutasin ChatGPT-le, mida soovin;
- sain vastu koodi;
- tõstsin koodi Snacki;
- testisin;
- avastasin vea;
- küsisin ChatGPT-lt, miks kõik katki läks;
- laadisin midagi alla;
- laadisin midagi mujale üles;
- saatsin muudatused GitHubi;
- laadisin rakenduse Netlifysse;
- avastasin uue vea;
- alustasin uuesti.
Jah, juhmitamist, kopeerimist, allalaadimist, üleslaadimist ja erinevate keskkondade vahel liikumist oli märksa rohkem kui ühe nupuvajutusega äpiloojates.
Aga ausalt öeldes oli rohkem ka tunnet, et ma päriselt ise ehitan midagi.
Ja mis veel tähtsam: tasuta krediidid ei kadunud esimese kolme palvega.
Minu vaibkoodimise katsejänes FitPal
Kõige kaugemale olen jõudnud AI-põhise toitumisäpiga FitPal.
FitPal peaks aitama kasutajal:
- määrata oma eesmärgi;
- sisestada toidukordi ja koguseid;
- jälgida päeva energiatarbimist;
- saada AI-coach’ilt soovitusi;
- luua retsepte kodus olevatest toiduainetest.
Äpp on alles arenduses ning osa funktsioone vajab veel parandamist. Samuti ei tasu praegu hinnata selle ilu. Disain on viimane asi, millega kavatsen põhjalikult tegelema hakata – esmalt tahan saada loogika ja funktsionaalsuse tööle.
Praegust versiooni saab katsetada siin:
Netlify tasuta kasutusmaht sai mul vahepeal täis ning järgmised krediidid avanevad uuel arveldusperioodil 16. augustil.
Seni on aga ideaalne aeg rakendust testida ja vigu leida. Nii on mul krediitide taastudes kohe pikk nimekiri asjadest, mida parandada.
Mida FitPalis testida?
Katsetamiseks võiksid teha järgmised sammud:
- täida vaates „Mina“ oma profiil ja eesmärk;
- lisa vähemalt üks toidukord koos kogustega;
- vaata, kuidas muutub päeva progress;
- küsi coach’ilt, mida võiksid järgmise toidukorraga parandada;
- proovi luua retsept kapis olevatest toiduainetest.
Eriti väärtuslik on tagasiside siis, kui:
- sa ei saa aru, kuhu vajutada;
- satud vaatesse, kust ei oska enam tagasi minna;
- mõni nupp kaob ära;
- äpp nõuab sinult midagi, mida seal tegelikult teha ei saa;
- soovitus tundub ebaloogiline;
- funktsioon, mis peaks töötama, lihtsalt ei tööta.
Programmeerija võib nimetada neid vigadeks. Mina nimetan neid esialgu ootamatuteks kasutajakogemuse avastusretkedeks.
Tagasisidet võib mulle saata nii vea kirjelduse, ekraanipildi kui ka lihtsa kommentaarina: „Ma ei saanud üldse aru, mida siin tegema peab.“
Ka see on väga kasulik info.
Ühest äpist kasvas kohe välja teine
FitPali toitumispäevikut arendades meenus mulle mu poja ATH ja kunagine arsti soovitus teatud toite vältida.
Lisasin ATH FitPali ühe tervise eripärana, mida soovituste andmisel arvesse võtta. Sellest kasvas aga üsna kiiresti uus idee: luua toitumisäpi väiksem ja lihtsam vend, mis aitaks leida vaimset heaolu toetavaid ning erinevate vajadustega arvestavaid retsepte.
Ilma kasutajakontode, keerulise päeviku ja suure andmebaasita.
Oluline on rõhutada, et ükski toit ei ravi ATH-d ega muid neuroloogilisi või vaimse tervisega seotud seisundeid. Küll aga võivad mõned inimesed märgata, et teatud toiduained, väga ebaregulaarne söömine või suured veresuhkru kõikumised mõjutavad nende enesetunnet.
Äpi eesmärk ei ole anda meditsiinilisi lubadusi, vaid aidata kasutajal mõelda läbi rahulikumaid ja tema vajadustega sobivamaid toiduvalikuid.
Ka selle rakenduse soovitused loob AI, mistõttu tuleb neid võtta ideede, mitte arsti või toitumisterapeudi antud ravijuhistena.
Seda väiksemat rakendust ehitan praegu Bolt.new keskkonnas
Bolt teeb ChatGPT ja Snacki kombinatsiooniga võrreldes kohe märksa ilusama kujundusega lahenduse. Kasutajaliides näeb juba esimeste promptide järel välja selline, nagu oleks keegi päriselt disainimisele ka mõelnud.
Aga üllatus-üllatus: tasuta tokenid said mul otsa umbes esimese kolme põhjalikuma juhisega.
Nüüd jälgin huviga, kas need mingil hetkel uuenevad või tuleb ka selle äpiga minna lahenduse peale, kus kood elab ühes, andmebaas teises ja mina kolmandas kohas ning üritan kõiki omavahel tuttavaks teha.
Kui tahad ka ise Bolt.new’d katsetada, saad alustada minu soovituslingi kaudu.
Tegemist on referral-lingiga, mis tähendab, et võin sinu liitumisest või teenuse kasutamisest saada Bolt.new krediiti või raha

Kui äpp mõtleb, värvin mina seina
Kogu selle digitaalse ehitamise kõrval käib mul samal ajal ka täiesti päris ehitus.
Kevadel ostetud korteri neljanda magamistoa remont liigub tasapisi edasi. Otsasein on nüüd soojustatud ja saanud kena katte puidust sisevoodrilaua näol ning varasemad rohelised seinad on kaetud märksa mahedama tooniga.
Ka köök sai remondist ootamatult oma osa. Ostetud seinavärv osutus olema nii hea katvusega, et teist värvikihti ei olnudki vaja. Kuna värvi jäi üle, lõpetas ülejääk hoopis köögiseinal.
Ehk läksin värvima ühte tuba ja lõpetasin köögi remondiga. Täiesti tavapärane sündmuste käik.
Järgmisel nädalal ehitame lõpuni lae teise poole. Mina klõpsutan tuuletõkkepaberit, paigutan villa karkassi vahele ja värvin. Elektrijuhtmete, karkassi ning kõige jõulisema osa jaoks on mul abiline.
Siinkohal hea soovitus: kui kutsuda remonti appi ainult üks inimene, võiks see inimene olla elektrik.
Elektrik vaatab ruumis ringi hoopis teise pilguga. Samal ajal, kui mina mõtlen seina toonile ja voodi asukohale, viskab tema pikema jututa minema maanduseta pistikupesad, planeerib juhtmete ja uute pistikupesade ja mingite imelike karpide asukohad ning mõtleb läbi valgustuse.
Ehk mina hoolitsen selle eest, et tuba ilus saaks, ja tema selle eest, et see hiljem põlema ei läheks.
Ka naabritega teeme ühiseid projekte. Ühed ehitasid hoovi uhke terrassi ning teise naabriga hakkame järgmisel kuul välja vahetama trepikoja ust.
Kõik liigub.
Vahel liigub kood, vahel karkass ja mõnikord lihtsalt värv ühest toast teise.
Tegelikult sobib remont vaibkoodimise kõrvale päris hästi. Kui Lovable või Bolt.new mõtleb, laadib või teatab, et tasuta tokenid on jälle otsas, jõuan mina vahepeal kuskile maalriteibi kleepida, villa toppida või mõne seina üle võõbata.
Ja kui äpp pärast seda endiselt ei tööta, on vähemalt üks sein vahepeal ilusamaks saanud.
Mida ma olen vaibkoodimisest seni õppinud?
Minu senised põhiõppetunnid on järgmised.
Esiteks: AI ei muuda arendamist automaatselt lihtsaks. Ta muudab selle alustamise lihtsamaks.
Teiseks: hea prompt ei ole üks lause. Mida keerulisem rakendus, seda täpsemalt tuleb kirjeldada vaateid, andmeid, kasutajateekondi, erandeid ja soovitud tulemust.
Kolmandaks: kõike ei tasu korraga ehitada. Väike töötav funktsioon on parem kui suur pooleldi töötav rakendus, kus isegi AI enam ei mäleta, mida ta tegi.
Neljandaks: tasuta versioon võib olla tasuta, aga sinu närvirakud ei pruugi seda olla.
Viiendaks: isegi siis, kui ma ei oska veel kogu loodud koodi ise kirjutada, õpin iga paranduse, vea ja katsetusega natuke rohkem aru saama, mis rakenduse sees toimub.
Ja viimaks: kõige kasulikum ei ole alati inimene, kes ütleb, et äpp on väga äge.
Kõige kasulikum on vahel hoopis see, kes teatab:
„Vajutasin siia, sattusin kuhugi lapse profiili, tagasi enam ei saanud ja retsepti loomise nupp kadus ära.“
Sest just sellest algab järgmine arendusülesanne.
Need äpid on alles käeharjutused
Nii FitPal kui ka vaimset heaolu toetavate retseptide rakendus on minu jaoks õppimisprojektid.
Need on käeharjutused enne seda, kui liigun oma suurema unistuse juurde: ligipääsetavuse äpi arendamiseni.
Selle idee teostamiseks pean veel õppima, katsetama, midagi katki tegema, AI-ga vaidlema, tasuta krediite ootama ning aeg-ajalt avastama, et viimane „väike parandus“ kustutas ära kolm täiesti toimivat funktsiooni.
Aga ma vaibin, koodin ja ehitan edasi.
Seniks palun katseta FitPali ning anna teada, kus sina oma kasutajakogemuse avastusretkel ära eksisid:
Sest kui piisavalt palju inimesi ütleb, et üks ja sama nupp on vales kohas, siis võib isegi vaibkoodija lõpuks uskuma jääda, et probleem ei ole kasutajas.