Cesta do králičí nory vibecodingu


Tak už taky dělám ten vibecoding. Po pravdě už v tom nějaký ten pátek lítám – první projekt, kde mi parťáka dělal jazykový model, jsem spíchnul na Vánoce 2024. Byl to kalendář akcí napojený na Notion databázi, relativně jednoduchý web v php a javascriptu, jehož vnitřnosti značně přesahovaly moje programátorské schopnosti a byl jsem fakt unešený z toho, jaké možnosti se mi najednou otevírají.

Ale popořadě. Pokud jste ještě pojem "vibecoding" náhodou neslyšeli, pak vězte, že to není nic jiného, než programování s pomocí umělé inteligence. Prostě běžným jazykem popíšete, čeho chcete docílit a jazykový model podle zadání vytvoří kód (inu programovací jazyk je zkrátka taky jen jazyk). Zní to možná jednoduše, ale má to pár úskalí.

Každopádně pokud máte boptnající šuplík všelijakých projektů, vaše práce obnáší všelijaké úkony, o kterých jste už opakovaně přemýšleli, že by se daly krásně zautomatizovat a nějak jste nikdy neměli dost času, tyhle drobné neduhy dotáhnout, otevírá se vám celá plejáda možností, jak tohle všechno vyřešit.

Musím být programátor?

Ne, ale může to být výhoda. Rozhodně je fajn mít základní povědomí o technologiích, které chcete osedlat, nutné to ale bezpodmínečně není – spoustu věcí se prostě naučíte za běhu. Ostatně learning by doing je taková mantra vibecodingu a vzhledem k tomu, jak široké jsou možnosti a jak bláznivě rychlé to celé je, vlastně ani moc jiných přístupů nefunguje.

Co k tomu potřebuju?

Vlastně nic moc – jednoduchý kód vám spíchne běžně dostupný jazykový model, ale jakmile se do toho víc ponoříte a budete chtít dělat komplexnější věci, bude to chtít nějaký placený přístup.

Já jsem během uplynulého roku vyzkoušel vícero nástrojů (ono to k tomu překotnému vývoji v oblasti umělé inteligence asi tak nějak patří) a nyní jsem zakotvil u Gemini. S tímhle chytrákem si povídám neustále a používám ho jak na běžnou denní agendu (shrnutí, překlady, interpretace, rešerše apod.), tak na programování – zejména na tu prvotní plánovací fázi. Podobně vám ale poslouží ChatGPT nebo Claude od Anthropicu.

Po nějakém čase vás pravděpodobně tak jako mě přestane bavit neustálé kopírování vygenerovaného kódu z chatu do editoru a zpět, takže začnete pokukovat po něčem, co bude kód zapisovat rovnou do souborů. Já jsem skončil u aplikace Cursor, což je vlastně klasický editor, v jakém programátoři píšou kód, akorát tam řádí ai agenti – prostě tam máte chat, do kterého zadáváte úkoly a program rovnou zapisuje do souborů. Je to super, protože přesně vidíte, do jakých souborů v projektu ai sáhla a co tam upravila, takže do toho můžete sami zasahovat a mít to alespoň trochu pod kontrolou.

Brzy vám ale dojde, že jen zápis a čtení souborů je vlastně málo a že byste byli rádi, kdyby za vás ai instalovala závislosti, spouštěla příkazy, testovala a četla logy a dělala další kouzla. Pak vám nezbyde než jít do Claude Code i když Cursor dneska hodně z těch věcí umí taky.

Jak taková práce vypadá?

Pro začátek potřebujete nějaký nápad. Ideální je nějaký problémek, který chcete vyřešit, nebo prostě nějaká hříčka. Určitě si na začátek nedávejte žádné velké cíle (nakóduju nový Twitter…). Prostě zlehka, easy…

Pak je dobré vědět, v čem budete tvořit. Ona vám ai umí poradit i v tomto, ale je fajn (ne však bezpodmínečně nutné), když ten jazyk třeba znáte a trochu v něm umíte chodit. Takže zadáte třeba "naprogramuj mi v javascriptu čajové stopky". Můžete mít zadání samozřejmě mnohem komplexnější – můžete popsat, jak to má vypadat, jak přesně se to má chovat, to už záleží, jak moc se s tím potřebujete mazat.

Záhy zjistíte, že ai dělá chyby a pasti. Že vám dodá kód a on třeba nefunguje. Nebo že zvládne základ a jakmile toho chcete víc, začne ztroskotávat. Často se "vyčerpá" na jednom diskuzním vlákně a začne si hodně vymýlšet, ztrácí kontext apod. V tu chvíli je potřeba začít v novém vlákně nebo problém předat jiné ai. Takový ping pong se mi vždycky osvědčil a nakonec mě vždy úspěšně dovedl k cíli.

Základ jsem zvládl, co dál?

No hurá, máme první appku. Brzy ale dostanete zálusk na něco složitějšího, protože s jídlem roste chuť a lidi, co propadli vibecodingu vám jistě potvrdí, že je to prostě silně návykové.

Určitě doporučuju udělat si na začátek nějakou chytristiku – poradit se s jazykovým modelem o použitých technologiích pro váš záměr. Já třeba hodně pracuju na už hotových webových projektech, takže potřebuju, aby jazykový model dobře znal kontext celého projektu a uměl se v něm orientovat.

Zatímto účelem používám Repomix, což je nástroj, který sbalí kód celého projektu do jednoho strukturovaného souboru a nahraju ho jako přílohu (v Gemini mám vytvořený Gem, který má takto nabrífovaný kontext a nějaké další instrukce). Tohle je aktuálně asi nejlepší způsob jak plánovat složitější projekty, úpravy a refaktoringy, protože i když ostatní nástroje nějakým způsobem vidí do projektu, zpravidla si jen sahají tam, kam potřebují a chybí jim ten celistvý pohled, díky kterému mohou "víc vidět do zatáčky".

Jaká jsou úskalí?

Kde začít…

  • Tak v první řadě, je to fakt návykové. Připravte se na to, že to žere pekelně času, budete u toho vysedávat dlouho do noci a čekat na dávku dopaminu, kterou budete odměněni vždy, když llm vykouzlí nějakou funkční část vašeho nápadu. Pokud máte děti, jinou práci, zahradu, koníčky… buďte opatrní, ať tomu nepropadnete zbytečně moc.
  • Dnešní život programátora je 5 minut promptování a pak 20 minut točení na židli. Buď tupě zíráte, jak model přemýšlí, mluví sám se sebou a generuje kód nebo se u toho naučíte hrát na nějaký hudební nástroj (já jsem zase oprášil kytaru…). S tímhle pracovním rytmem se prostě musíte nějak vyrovnat.
  • Problém je, že často vám to nedá a rozjedete paralelně jinou práci. Ve slabších chvilkách na mě svítí tři monitory, na dvou z nich se generuje nějaký kód pro dva různé projekty a na třetím vyřizuju poštu. Na tohle náš mozek evidentně není stavěný, takže tohle tempo práce mě extrémně ždímá a za čtyři hodiny má člověk pocit, že má odmakanou osmičku. Jako práce uděláte spoustu, což o to, ale tohle fakt nemůže být zdravé.
  • Po čase má člověk tendenci ai přespříliš důvěřovat, takže mnohdy ani nečte vygenerované prompty, přestane kontrolovat výstupy a pak se nestačí divit, jak si nechal zprasit do té doby opečovávaný kód.
  • Leze to do peněz. Brzy podlehnete nutkání platit si předplatné všech možných toolů, za API se většinou platí ještě zvlášť a když se vrhnete do nějakého většího projektu, tokeny mizí brutální rychlostí.
  • Pokud se trochu začnete kolem vibecodingu točit, za chvíli dostanete slušné fomo (= fear of missing out), protože internet je plný zázračných řešení a nástrojů a udělátek a vám je jasné, že je nikdy nemáte šanci všechny prozkoumat a dosáhnout jimi té super expertní úrovně, jakou mají všichni borci, co pořádají kurzy, přednášky a školení. Přátelská rada: kašlete na to. Půlka z toho je bullshit, druhou půlku někdo zaplatil, aby to vypadalo "insane" a "gamechanging" a "total insane gamechanging".
  • Mějte střízlivá očekávání. Vibecodingem se dají dělat i velké a komplexní věci, ale není to na lusknutí prstu a budete se s tím bez patřičného skillu trápit. Nespěchejte, buďte rozumní. Raďte se s programátory, zejména pokud děláte něco většího nebo chcete něco pustit ven mezi lidi. Pořád potřebujete nějaké know-how a nesmíte slepě věřit jazykovému modelu, který se vás ze své podstaty snaží učinit šťastným, takže vás neustále chválí a motivuje…

Je to v praxi k něčemu?

Je. Dá se tím ušetřit dost času. Mám ale důvodně podezření, že váš život navajbkóděné tooly šťastnější neučiní. Není to totiž tak, že si naprogramujete udělátko, které hodinovou práci smrskne na pět minut a vaše pracovní doba se zkrátí na polovinu. Ne. Vy chcete být produktivní a tak zbylý čas zaplníte další prací, naložíte si na záda násobně víc.

Takže – celá ta technologie je fascinující. Taháte ze šuplíku jeden projekt za druhým a uvádíte je do života, v denním checklistu boucháte jeden task za druhým. Celý ten krysí závod se vlastně jen zrychlí. Inu uvidíme, jak se budou věci vyvíjet…


Sdílet na Facebooku
Tweetovat
Sdílet na LinkedIn
Sdílet na WhatsAppu