Vaibiv loovkoodimine

Ingliskeelne sõna computer tuleb inimese ametinimetusest – arvutaja. Arvuti arvutab, kuid lisaks teeb palju muudki, mis seotud info halduse ja töötlemisega. Keegi on alati pidanud sõnastama, mida arvuti peab tegema. See tegevus on programmeerimine, nõuete ja toimingute väljendamine formaalses keeles.

Korraga on programmeerija rolli hakanud täitma arvuti ise. Tehisaru paneb inimkeelse soovi tarkvara keelde. Ütle, millised on su soovid ja meeleolu, ning tehisaru teeb tarkvara koodi sinu eest valmis. See ei ole enam suur pingutus, paljud ei loe loodud koodi läbigi. Kui see töötab, siis töötab.

Kui tuleb peale loominguline tuhin ja õige vaib, võibki tegeleda loov- ehk vaibkoodimisega. Vibe coding oli Collinsi sõnastiku 2025. aasta sõna. Selle pakkus möödunud aasta veebruaris välja tehisaru uurija Andrej Karpathy, kes on töötanud selle ala juhtpositsioonidel OpenAI-s ja Teslas. Nüüd, aasta hiljem, on tõesti igaühel võimalik luua ise tarkvara, andes selleks ette inimkeelsed juhised (prompt, viip, lähtelause). Vaib võimaldab unustada, et tegemist on keerulise programmeerimistööga. Loovus on tarkvara arenduses jätkuvalt hädavajalik.

Kuidas esitada soove ja nõudeid? Kuidas kontrollida, kas loodud kood teeb seda, mida vaja, parimal viisil? See, kuidas programmi käsud õigesti kirja saavad, ei ole kunagi olnud tarkvara loomisel kõige keerulisem. Kuigi kõrvaltvaatajale tundub just see põhiline, peab juba programmeerimise hetkeks olema selge, mida koodis soovitakse väljendada.

Programmeerimiskeeli on sadu, igaühes kindlad raamistikud, teegid ja versioonid oma nüanssidega. Dokumentatsioonis tuhnimine on olnud progejate oluline, kuid siiski tüütu ülesanne. Kui tarkvara loomisel saab määravaks vaib, siis mis roll on tarkvarainseneridel, kes peavad tagama süsteemide töökindluse, ohutuse ja skaleeritavuse üha rohkematele kasutajatele ja suuremale andmemahule? Inseneri amet eeldab süsteemsust. Kuidas ühendada loovus ja vaib tarkvaratehnika heaks, kui enamik inimesi ei oska võib-olla oma koodi ülegi vaadata?

IKT-lahenduste tulevik on helge: tarkvara loomine kiireneb, üha rohkem inimesi ja ettevõtteid tegeleb sellega. Turule tuleb palju uusi rakendusi, mida aeglasema arendustempo korral keegi lihtsalt ei suutnuks kinni maksta. Rakenduste kasutusiga lüheneb – kasutad korra ja viskad siis minema. Kuid loovkoodimise taha ja kõrvale on vaja ka kriitiliste süsteemide turvalisust ja usaldatavust.

Professionaalsed tarkvara-, andme-, infoturbe- ja tehisaruinsenerid peavad tagama, et me saame kriitilisi süsteeme usaldada. Uued tehnoloogiad aitavad ka professionaale, näiteks on kergem katta kogu koodibaasi ulatuslikult testide ja nõuetega. Vana koodi ümberkirjutamine ja tarkvara loomise protsesside osaline automatiseerimine saavad hoogu juurde.

Vaibkoodiv insener ei ärata usaldust, tema kohta tuleks veel leida hea termin. Või kas tuleks? Ehk on see lihtsalt professionaalne tarkvarainsener, kes kasutab tänapäevaseid töövahendeid?

 

Kirjutanud akadeemik Jaak Vilo