Koodia ilman ymmärrystä: Miksi tekoäly ei korvaa järjestelmäsuunnittelijaa
Vibe codingin harha: miksi tekoäly osaa kirjoittaa koodia mutta ei korvaa järjestelmäsuunnittelijaa
Olemme kaikki käyneet sen läpi. Löydät uuden tekoälytyökalun koodaamiseen, ja yhtäkkiä tuntuu siltä, että voit rakentaa mitä tahansa. Vuosikausia on mietitty "jos minulla vain olisi aikaa toteuttaa tuo idea". Aikaa on nyt. Kuvaile mitä haluat, käy läpi versioita tekoälyn kanssa, ja julkaise.
Tämä tunne on koukuttava. Ja vaarallinen.
"Riittävän hyvän" koodin houkutus
Viime kuussa päätin testata vibe codingin rajoja rakentamalla "yksinkertaisen" muistijärjestelmän tekoälyagenteille. Sen asian, joka antaisi koodausavustajan muistaa opitut asiat istuntojen välillä sen sijaan, että aloittaisi joka kerta tyhjästä.
Kuinka vaikeaa se voisi olla? Tallenna faktoja, hae niitä tarvittaessa, merkitse ristiriidat. Ole fiksu tietokanta näppärällä rajapinnalla.
Koodi syntyi nopeasti. Todella nopeasti. Agentti pumppasi ulos Rust-daemonin, luokittelujärjestelmän, neljä hakustrategiaa uudelleenjärjestämisellä paikallisten mallien avulla. Kaikin mittarein se näytti vaikuttavalta. Testit menivät läpi. Kääntäjä oli tyytyväinen.
Ja sitten yritin käyttää sitä.
Muistijärjestelmien todellisuus on tämä: ne eivät oikeasti ole tallentamisesta. Ne ovat merkityksestä. Ja merkitys osoittautuu filosofisesti piikikkääksi tavalla, joka saa huolellisesti kirjoitetun koodisi näyttämään rakettia rakentamiselta ilman painovoiman huomioimista.
Ristiriitaongelma, josta kukaan ei puhu
Alkuperäinen tavoitteeni oli yksinkertainen: jos agentti oppii jotain uutta, tarkista, ristiriitaako se sen jo tunteman. Vaikuttaa järkevältä. Muisti, joka on ristiriidassa muiden muistojen kanssa ilman selitystä, ei ole vain hyödytön – se on aktiivisesti haitallinen. Saastutat konteksti-ikkunan ristiriitaisella tiedolla.
Mikä voisi olla yksinkertaisempaa? Vertaile kahta faktaa. Merkitse konflikti.
Paitsi.
Mikä on ristiriita tällaisessa järjestelmässä? Jos agentti oppi maanantaina, että "Projekti X käyttää PostgreSQL:ää" ja oppi tiistaina, että "Projekti X käyttää MySQL:ää", onko se ristiriita? Ehkä tech stack vaihtui. Ehkä yksi lähde oli väärin. Ehkä "Projekti X" tarkoittaa eri projekteja. Ehkä "käyttää" tarkoittaa eri asioita eri konteksteissa.
Ihmiset käsittelevät tätä vuosien kertyneellä maalaisjärjellä, kontekstilla ja kyvyllä sanoa "tämä ei tunnu oikealta" ilman että osaavat tarkkaan määritellä miksi. Tekoälyjärjestelmät voivat generoida vakuuttavaa tekstiä mistä tahansa näistä tulkinnoista, mutta tuo vakuuttavuus on usein vain hahmontunnistusta ilman todellista ymmärrystä.
Missä vibe coding tökkää
Vibe coding loistaa ongelmissa, jotka osaat selittää selkeästi. On bugi? Kuvaile oireet. Tarvitset funktion? Määrittele syötteet ja tulokset. Tekoäly hoitaa toteutusyksityiskohdat hämmästyttävällä pätevyydellä.
Mutta järjestelmäsuunnittelu – oikea sellainen – on ongelmien ratkaisemista, joita et pysty selkeästi määrittelemään. Se on tulevaisuuden komponenttien välisten vuorovaikutusten ennakointia. Se on kysymysten "mitä tapahtuu kun..." esittämistä skenaarioille, joita ei ole vielä kuviteltu.
Kun pyysin tekoälyavustajaa "toteuttamaan ristiriitojen tunnistuksen", pyysin sitä käytännössä ratkaisemaan ongelman, jota en pystynyt tarkkaan määrittelemään. Tulokset olivat... luovia. Tutkimme Belnapin hiloja, neliarvoista logiikkaa, formaalia verifiointia Agda-todistuksilla, Petri verkkoja. Avustaja oli mukana kaikessa mitä ehdotin, ja rehellisesti sanottuna osa ideoista oli aidosti kiinnostavia.
Mutta "kiinnostava" ei tarkoita "toimivaa".
Todistus Agdassa oli virheetön. Arkkitehtuuri oli hyvin dokumentoitu. Ja järjestelmä ei silti luotettavasti tunnistanut ristiriitoja, koska formalisoimme väärää abstraktiota. Rakensimme kauniin katedraalin hiekkapohjalle, ja kumpikaan meistä – tekoäly tai minä – ei sitä tajunnut ennen kuin olimme käyttäneet kuukausia.
Epämukava totuus
Tässä on se, mitä vibe codingin kannattajat eivät kerro: ohjelmistokehityksen vaikea osuus ei koskaan ollut koodin kirjoittaminen. Se oli sen selvittäminen, mitä pitää rakentaa.
Tämä piti aina paikkansa. Muuttunut on se, että kuilu "minulla oli idea" ja "minulla on koodia" on romahtanut dramaattisesti. Se on aidosti ihanaa prototypoinnille, oppimiselle, mahdollisuuksien tutkimiselle.
Mutta se tarkoittaa myös, että voit epäonnistua paljon nopeammin ja kalliimmin kuin ennen. Voit generoida vuoria vakuuttavan näköistä koodia, joka ratkaisee väärän ongelman, etkä ehkä tajua sitä ennen kuin olet rakentanut kokonaisen järjestelmän virheelliselle pohjalle.
Mikä oikeasti auttaa
Mikään tästä ei tarkoita, että tekoälyavusteinen kehitys on huono idea. Ei ole. Mutta sen tehokas käyttö vaatii erilaisia taitoja kuin pelkkä koodaamiskyky:
Sinun täytyy tietää, mitä et tiedä. Kun tekoäly ehdottaa ratkaisua alueella, jota et tunne, se ei ole aika sanoa "kuulostaa hyvältä, toteuta". Se on aika kaivaa syvemmälle.
Protot tarvitseavat armutonta testaamista oikeita käyttötapauksia vastaan. Jos rakennat muistijärjestelmää, käytä yhtä paljon aikaa sen rikkomiseen kuin sen rakentamiseen. Erityisesti yritä rikkoa ne ydinolettamukset, joita et tiennyt tekeväsi.
Vakuuttavuus ei ole sinun. Kun tekoälyavustaja on erittäin varma suunnittelupäätöksestä, tuo varmuus asuu mallissa, ei sinun ymmärryksessäsi. Järjestelmä, jota et ymmärrä syvällisesti, on järjestelmä, jota et pysty ylläpitämään tai debuggaamaan.
Järjestelmäsuunnittelu on edelleen tieteenala. Voit käyttää tekoälyä suunnitelmien tutkimiseen nopeammin, järjestelmien osien toteuttamiseen nopeammin, ideoiden prototypointiin, joka olisi aiemmin kestänyt viikkoja. Mutta tarvitset edelleen jonkun, joka pystyy arvioimaan, onko suunnitelma järkevä, toimivatko komponentit oikein yhdessä, pitävätkö ydinolettamukset paikkansa.
Lopputulos
Rakennan yhä muistityökaluani. Se paranee, hitaasti. Olen oppinut kysymään erilaisia kysymyksiä, testaamaan tiukemmin, epäilemään "riittävän hyviä" tuloksia enemmän.
Mutta olen myös oppinut kunnioittamaan kuilua "koodi toimii" ja "järjestelmä on oikea". Tämä kuilu on aina ollut olemassa. Tekoälytyökalut eivät ole sitä korjanneet – ne ovat vain tehneet siitä helpommin sivuutettavan.
Parhaat vibe coderit eivät ole niitä, joilla on parhaat promptaustaidot. Ne ovat niitä, jotka tietävät milloin tunnelma on pielessä.
Haluatko tutustua mahdollisuuksiin tekoälyavusteisessa hostauksessa ja kehityksessä? NameOceanin Vibe Hosting yhdistää tehokkaan infrastruktuurin työkaluihin, joita tarvitset seuraavan projektisi rakentamiseen, julkaisemiseen ja skaalaamiseen.