Za ta léta, co stavím weby a starám se o servery, na kterých běží, jsem si zvykl na jednu věc: nejdražší práce není ta, kterou uděláte od nuly. Nejdražší je ta, kterou po někom přebíráte — a nejdřív musíte pochopit, co vlastně napsal a proč to napsal zrovna takhle.
A přesně sem míří tenhle text. Ne proti umělé inteligenci; tu používám denně a klientům ji rovnou integruji do jejich nástrojů a provozu. Míří proti něčemu jinému: proti představě, že web vám dneska „udělá AI" a stačí najít někoho, kdo ji umí hezky poprosit.
Pojďme si to rozebrat na rovinu — prakticky, tak jak to vypadá v reálném provozu.
O co tady jde — a o co ne
Nejdřív důležité rozlišení, protože bez něj by z toho byl laciný hejt, a to nechci.
Nejde o souboj AI versus člověk. Jde o rozdíl mezi dvěma úplně odlišnými situacemi:
- „Umím kód a AI mi zrychluje práci." Vývojář, který rozumí tomu, co staví, použije AI jako násobič produktivity. Vygenerovaný kód si přečte, pochopí ho, ověří, opraví, zabezpečí a umí ho pak roky udržovat. AI mu ušetří hodiny psaní, ale rozhodnutí zůstávají na něm.
- „Neumím kód a spoléhám, že to AI udělá za mě." Tomu se říká vibe coding — člověk promptuje, kouká, jestli to „vypadá, že to jede", a odevzdá, co vypadlo. Nerozumí tomu, jak to funguje, ani proč. A hlavně: neví, kdy to nefunguje.
To první je zdravé a je to budoucnost naší profese. To druhé je hazard — jenom takový, u kterého rána nepřijde hned, takže na první pohled není vidět.
Rozdíl není v tom, jestli u toho byla AI. Rozdíl je v tom, jestli u toho byl někdo, kdo ten výstup umí přečíst a nese za něj odpovědnost.
Tohle už jsme jednou zažili
Kdo je v oboru déle, ten tenhle film zná. Vibe codeři nejsou nový druh, jsou to noví hráči staré hry.
Před nimi tu byla celá generace lidí, kteří „naklikali web" v page builderu nebo si poskládali WordPress z pluginů, aniž by uměli řádku kódu. A světe div se — často jim to fungovalo. Chvíli. Na první pohled.
Problém přišel potom. Po těchhle stavbách zůstával balast: přebujelé, pomalé weby, kde se na jednu vizitkovou stránku načítalo deset knihoven a dvacet pluginů, které spolu zápasily. Když se něco rozbilo, nikdo neuměl říct proč, protože tomu nikdo nikdy nerozuměl — jen to poskládal z hotových kostiček, dokud to „nevypadalo dobře".
Vibe coding je přesně tohle, jen o patro výš. Místo page builderu je prompt. Místo klikání do šablony je „napiš mi přihlašování". Ale princip je stejný: skládání bez porozumění. A stejný je i výsledek — jenom je hůř vidět, protože chaos není v administraci, ale schovaný v kódu, kam se zákazník nepodívá.
Co se s takovým webem děje v praxi
Když přebírám projekt postavený „na vibe", vídám pořád ty samé věci. Nejsou to výjimky, je to vzorec.
Funguje to „na oko", ale rozbije se to na hraně. Šťastná cesta — uživatel udělá přesně to, co se čekalo — projde. Jenže reální lidé dělají neočekávané věci. Pošlou formulář dvakrát, napíšou do pole s cenou text, otevřou si stránku na mobilu s pomalým připojením. Tady se láme chleba a tady vibe kód typicky padá, protože hraniční případy nikdo neošetřil. Nikdo na ně totiž nepomyslel.
Bezpečnostní díry. Tohle mě štve nejvíc, protože to zaplatí koncový zákazník. Chybějící validace vstupů. Špatné zacházení s hesly a tokeny. Přístupové klíče zapsané rovnou v kódu a odeslané na veřejný repozitář. Žádná ochrana proti běžným, roky známým typům útoků. AI vám ráda vygeneruje formulář, který „funguje" — ale jestli přes něj jde poslat útok do databáze, to vám sama neřekne, když se nezeptáte. A vibe coder se nezeptá, protože neví, že se má.
Výkon a balast. Kód, který vznikl bez rozmyslu, bývá zbytečně těžký. Zbytečné knihovny, duplicity, věci, které se dělají třikrát. Návštěvník to pozná jako pomalý web — a odejde.
Nulové porozumění. A to je jádro všeho ostatního. Když se něco pokazí — a ono se to pokazí — autor to neumí opravit. Nemá jak. Nikdy nerozuměl tomu, jak to uvnitř funguje, takže jeho jediný nástroj je poprosit AI o další prompt a doufat. To není údržba. To je věštění.
Údržba, rozšíření a technický dluh
Web není obraz, který pověsíte na zeď a je hotovo. Je to živý systém. Přijde nový požadavek, změní se zákon, objeví se bezpečnostní záplata, kterou je potřeba nasadit. Web se musí dát bezpečně měnit a rozšiřovat — a to i za rok, i za tři.
A tady je ta past: čím míň kódu rozumíte, tím rizikovější, chybovější a dražší je každá úprava. Cizí kód se změnit dá i bez toho, abyste rozuměli každému řádku — ale jen když máte pojistky: pořádné testy, které vás upozorní, že se něco rozbilo, čistě oddělené části a jasná rozhraní. A to jsou přesně ty pojistky, které u vibe kódu obvykle chybí. Bez nich je každá úprava ruleta — přidáte jednu funkci a rozbije se něco na druhém konci, protože nevíte, co je s čím propojené. Tomu se říká technický dluh a chová se jako každý dluh: narůstá a jednoho dne přijde k proplacení celý najednou.
Kód, kterému nikdo nerozumí, není hotový web. Je to odložený problém, který zatím nikdo neotevřel.
Proč se to nevyplatí — počítáno v součtu
Web od vibe codera je levný na první pohled. „Mám to za víkend za pár korun." Zní to skvěle, dokud nezačnete sčítat, co přijde potom:
- Předělávky. Věci, co „skoro fungují", se musí dodělávat pořád dokola.
- Výpadky. Když web spadne v nejhorší chvíli, stojí to reálné peníze a nervy.
- Únik dat. V horším případě uteče něco, co uniknout nemělo — a to už není jen technický problém, to je problém s důvěrou zákazníků a někdy i se zákonem.
- Ztracený čas. Váš čas, který řešíte tohle místo své práce.
A pointa, kterou vídám znovu a znovu: stejně to nakonec musíme udělat celé znovu. Jenže předělávat cizí nepochopený kód je dražší a otravnější než postavit to rovnou pořádně. Nejdřív musíte rozklíčovat, co původní autor myslel, a teprve pak to smíte vyhodit. Zaplatíte tedy dvakrát — jednou za levno, podruhé za draho.
Specifika kódu od AI, o kterých se moc nemluví
Ještě k jedné věci, protože je férové ji říct nahlas i jako člověk, který AI fandí. Umělá inteligence generuje kód, který vypadá věrohodně — a to je zrovna to zrádné. Věrohodně vypadající neznamená správně.
- Kód může být subtilně chybný — na první pohled v pořádku, ale s chybou, která se projeví až za určitých podmínek.
- Může být zastaralý — používat postupy nebo funkce, které se už roky nemají používat, protože v datech, na kterých se model učil, ještě žily.
- Může kopírovat antipatterny — špatné zvyky, které se po internetu opakují tak často, že je model převezme jako normu.
- Může přehlédnout kontext a bezpečnostní souvislosti, které nejsou vidět v jednom promptu, ale v celku projektu jsou zásadní.
- A umí i halucinovat — vymyslet si třeba název balíčku, který vůbec neexistuje. Zní to neškodně, jenže tohle už aktivně zneužívají útočníci: registrují si přesně ty smyšlené názvy a nastrčí pod ně škodlivý kód. Vžil se pro to termín slopsquatting. Zkušený vývojář si takový balíček ověří. Vibe coder ho nainstaluje.
Nic z toho není důvod AI nepoužívat. Je to důvod mít mezi jejím výstupem a produkcí někoho, kdo to zachytí. Bez toho jde všechno rovnou do ostrého provozu — i to špatné.
Jak poznat dobrého dodavatele
Nechci, abyste odešli s pocitem, že „u koho je AI, ten je podezřelý". Naopak. Chci vám dát pár otázek, kterými profíka poznáte — ať už u toho AI je, nebo není:
- Reálné portfolio a běžící projekty. Ne screenshoty, ale weby, na které se dá kliknout a které jedou i po letech.
- Umí vysvětlit svá rozhodnutí. Proč zvolil zrovna tohle řešení, co přináší a co za to platí. Kdo rozumí tomu, co staví, dokáže to vysvětlit lidsky.
- Pracuje s verzováním, testy a zálohami. To je základní hygiena. Kdo neumí web vrátit o krok zpět, když se něco pokazí, ten hraje bez záchranné sítě.
- Bere odpovědnost za provoz. Ne „předám a zmizím", ale „stojím si za tím, že to poběží".
- A jeden varovný signál: „mám to za víkend za pár korun a hned." Dobrá práce má svůj čas a svou cenu. Když je něco podezřele levné a rychlé, obvykle za to zaplatíte jinde a víc.
Závěr
AI používám každý den a mám ji rád. Zrychluje mě, bere mi nudnou práci a klientům ji rovnou zabudovávám do jejich nástrojů, aby jim šetřila čas. Není to nepřítel. Je to skvělý nástroj.
Ale „nástroj" je to podstatné slovo. Není to náhrada za to, že rozumím tomu, co stavím, umím to přečíst, ověřit, zabezpečit a za pár let bezpečně upravit. Rozdíl mezi profíkem s AI a vibe coderem není v tom, kdo napsal víc řádků — je v tom, kdo za ně ručí.
Web je závazek na roky, ne jednorázový výstup z promptu. A z té dlouhé perspektivy platí jedna nepříjemná pravda:
Levný web od někoho, kdo neumí kód, je nejdražší web, jaký můžete mít.