Vaibin, koodin ja ehitan

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:

  1. kirjutasin ChatGPT-le, mida soovin;
  2. sain vastu koodi;
  3. tõstsin koodi Snacki;
  4. testisin;
  5. avastasin vea;
  6. küsisin ChatGPT-lt, miks kõik katki läks;
  7. laadisin midagi alla;
  8. laadisin midagi mujale üles;
  9. saatsin muudatused GitHubi;
  10. laadisin rakenduse Netlifysse;
  11. avastasin uue vea;
  12. 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:

https://fitpalai.netlify.app

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:

Proovi FitPali

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.

Edit 16.08: Ja siis avastasin Google AI Studio…

Nagu vaibkoodimise puhul ikka: just siis, kui arvad, et oled oma tööriistad paika saanud, leiad järgmise, mis tundub veel parem.

Minu uus lemmik äppide vaibkoodimise keskkond on hetkel hoopis Google AI Studio. Ja seekord sündis sealt isegi midagi päriselt kasulikku: GeoSpectrics. (kõigepealt lõin tööriista ettevõttele, kus töötan ning nüüd ehitan uut sarnast ülesse ka teistele pakkumiseks.). Maandumisleht ei ole Google Ai studios tehtud aga äpp ise on. Maandumisleht on tavaline puhas HTML+Css (sest seda armastavad keelemudelid kõige enam) aga äpp kuhu maanudmisleht suunab on siis juba AI Studioga tehtud ja istub seal keskkonnas edais. Tasuta osa toimetab analüüsis juba väga hästi. Mulel raha maksmisega aga hetkel veel keeruline (aga oodake, küll ma ka selle osa varsti korda ajan :))

Google AI Studio juures meeldib mulle kõige rohkem see, kui palju saab seal päriselt rakenduse tausta ja loogikat üles ehitada. Ning kui tasuta kasutusest ühel hetkel väheks jääb, ei suruta sind kohe järjekordse kuupõhise paketi otsa. Arenduse saab siduda krediitkaardiga ja maksta vastavalt sellele, kui palju päriselt kasutad. Kui mõte krediitkaardi püsivalt külge ühendamisest tekitab kerget ärevust, saab teha ka enda valitud summas ettemakse ja kasutada ainult seda.

Veel üks suur pluss: seal loodud äppe on väga lihtne siduda näiteks Firebase’i andmebaasiga.

FitPali puhul kasutasin Supabase’i, mis hakkas samuti üsna kiiresti vihjama, et tasuta lõunaid ikkagi olemas ei ole.

Ja vot siin tekibki ohtlik hetk.

Sest Google AI Studiot kasutades on väga kange tahtmine kogu senine toitumisäpp nurka visata ja teha see seal paari klikiga uuesti. Tõenäoliselt saaks ilusama ka.

Aga siis kaoks ju pool õppimise lõbust.

Seega FitPali pusin ikkagi edasi täpselt selles süsteemis, millega alustasin: ChatGPT, kood, GitHub, Netlify ja aeg-ajalt mõni täiesti seletamatu viga. Muudatusi saadan Netlifysse seni, kuni tasuta krediit jälle täis saab ja arendus umbes kuuks ajaks sunnitud hingetõmbepausile läheb.

Vaibkoodimise maailmas nimetatakse seda vist ressursihalduseks. Mina nimetan seda „tasuta limiit sai jälle otsa“.

Ja vahepeal jõudis valmis ka minu esimene päris tellimustöö: Pulmaäpp.

Pulma Äpp

Selle mõte oli lihtne: pulmakülalised saavad oma telefonidest jooksvalt peol tehtud pilte üles laadida ning fotod lisanduvad automaatselt peopaigas ekraanidel mängivasse slaidishow’sse ja salvestsid sama aegselt äpiga seotud google drive kontole. Selle tegin Base44-ga ja pulm aajaks aktiveerisin tasulise versiooni, et kaoks ekraani nurgast “Edit with base44” vesimärk. Väga mõnus oli seal just agaoogle drivega integreerimise osa. Äpile said külalised ligi pulmakavaga koos jagatud QR koodi kaudu. Pulmas olles avastasin, et slidesohw ei mängi täisekraanil ja siis sai see viimane muudatus jooksvalt peo käigus telefoni vahendusel tehtud. Niiet Basee44 on kindlasti ka üks äpi arenduskeskondi mida julgen soovitada.

Ehk selle asemel, et pärast pulmi hakata WhatsAppist, Messengerist ja tädi Maie telefonist pilte taga ajama, kogunevad need juba peo ajal ühte kohta.

Ja vot see ongi vist hetk, kus kogu see vaibkoodimine hakkab vaikselt päris asjadeks muutuma.

Alguses ehitad enda lõbuks toitumisäppi. Siis teed kõrvale veel ühe. Siis avastad uue tööriista. Ja ühel hetkel on sul juba rakendus, mida keegi päris üritusel päriselt kasutab.

Täitsa ohtlik hobi.

Leave a Reply

Your email address will not be published. Required fields are marked *