Rozčarování z AI

Budoucnost celkem jasně vidím v tom, že AI řeknu, co má udělat a jak si to má zkontrolovat, a ona se bude tak dlouho snažit, dokud to neudělá a kontrola neprojde. Možná mám moc velké nároky, ale schopnosti modelů zatím nejsou tak daleko, aby mi ušetřily práci, pokud chci dosáhnout požadované kvality. Často mi ji naopak přidělají.

PHP_CodeSniffer

Na PHP_CodeSniffer je vidět, že byl navržen v „minulém století“ a pravidla pro něj se píšou strašně nešikovně. Když jsem potřeboval napsat celkem jednoduché pravidlo (kolem vlastností tříd může být 0-1 prázdný řádek), tak jsem to milerád přenechal modelu Claude Opus. Na specifikaci chování i v okrajových případech jsem si dal záležet, zadání mělo asi půl stránky. Model přesto přišel s řešením, které zadání nesplňovalo. Navíc bylo dost pomalé – zkoumalo všechny proměnné v souboru a ne jen vlastnosti. Hodinu jsem se s modelem hádal, ukazoval mu příklady, kde kód nesplňuje zadání, a vysvětloval mu, že takhle napsaný kód je navíc pomalý. Všelijak to záplatoval, řešení bylo čím dál ošklivější a zanášelo nové chyby. Nakonec jsem to celé zahodil a za hodinu si napsal pravidlo po svém – správné, rychlé a elegantní.

Upgrade verzí

Jeden projekt mi běžel na prehistorické verzi Nette. Požádal jsem Claude o převod na moderní verzi Nette, čehož se zhostil velmi dobře – pár problémů tam bylo, ale ty jsme rychle vyřešili. Tady jsem byl spokojen.

Stejně tak u převodu jiného projektu na moderní verzi PHP – převedl odstraněné funkce, našel zastaralé obraty a převedl i je. Při plánování jsme se dohodli, že nemá dělat shim, ale funkce má nahradit přímo v kódu. Trochu mě ale překvapilo, jak tupě převod dělá – hledá regulární výrazy a nahrazuje je něčím jiným – kódu vůbec nerozumí. Vím, že existuje napojení na MCP třeba v Idea, nebo LSP, ale to je trochu složitější rozchodit. V tomto případě regulární výrazy stačily.

Třetí převod verze dopadl katastrofálně – některé soubory nebyly v UTF-8 a Claude rozbil kódování. Chvíli jsem se ho snažil donutit je opravit, on původní verze lovil z nějaké své historie, ale nakonec jsem to vzdal, obnovil původní verzi a nechal ho udělat všechno znovu. Tentokrát s explicitní instrukcí, že některé soubory nejsou v UTF-8 a ať si na to dá pozor. Co myslíte? Dopadlo to úplně stejně a soubory jsem si nakonec převedl sám.

Jazykový model

Od té doby, co si David Grudl (velký popularizátor AI) nechává pomocí AI psát články, tak se nedají číst. Dřív měl břitký styl a věřím, že napsání dobrého textu trvalo řádově déle, než nadiktování poznámek AI s instrukcí, ať z toho udělá článek. Ale obraty jako „Jedna uživatelka nahrála hlasové poznámky z procházek s kočárkem“ tento styl prostě nemají. Dřív jsem rád poslouchal i jeho podcast Na vlnách EKG. Nový podcast Uměligence předčítaný robotickým hlasem se poslouchat fakt nedá, přestože mi je zaměřením mnohem bližší.

Windows

Část mých problémů je způsobena asi i tím, že Claude Code pouštím na Windows. Tam se dá spustit buď v PowerShellu nebo ve WSL. Půlka věcí nefunguje tam, druhá půlka tam. Propojení služeb (které vnímám jako největší skok dopředu) je kvůli tomu o dost komplikovanější. Pokud mám např. Claude spuštěný ve WSL a vývojový server mi běží ve Windows, tak bych Clauda ve WSL chtěl naučit koukat se na výsledky na vývojovém serveru. Sám to protunelovat neumím a když jsem to zadal Claudu, tak si s tím taky neporadil.

Integrace

Kde mi AI docela pomáhá, jsou jednoduché úlohy – hledám nějaké nastavení v Idea a ChatGPT ho celkem spolehlivě najde. Proč ale nemůžu vlastními slovy říct přímo Idea, co chci nastavit? Místo toho je tam úplně stupidní AI generování commit zpráv, které se nedá vypnout.

Stejně tak v Google Sheets – nemůžu si vzpomenout, jak se jmenuje nějaká funkce, tak Gemini řeknu, co potřebuji udělat (nejlépe s konkrétním vstupem) a funkci dostanu. Opět – proč kvůli tomu musím z Google Sheets odcházet (nebo za to platit, když ve vedlejším okně to mám zdarma)?

Co mě baví

Nedávno jsem objevil Wikidata, ze které se dají data získávat jazykem Sparql. Prvních pár dotazů jsem si nechal napsat pomocí AI a učící křivka tedy byla velmi strmá – rychle jsem dostával výsledky, které jsem potřeboval. Ale jak se mé požadavky komplikovaly, tak se do toho AI začala zamotávat a já se s ní víc času musel hádat o tom, že má něco špatně nebo pomale (nebo oboje). Organizaci dat ve Wikidata a způsob jejich dotazování jsem pochopil a dotazy si už většinou snadněji napíšu sám. Nebo u těch vygenerovaných aspoň dokážu rychle identifikovat, pokud je na nich něco špatně a buď to opravit, nebo AI říct, co má špatně.

U toho jsem si uvědomil, co mě při práci vlastně baví – často to není jen samotný výsledek, ale i způsob, jak se k němu dostanu. Něco pochopit a dokázat to aplikovat na nové problémy – to mi přináší radost. Ne hádání se s tupou AI, co zase udělala špatně, nebo spokojení se s neefektivním kódem. Nebaví mě ani konfigurace – nastavit robota, aby si dokázal spustit webový server a v prohlížeči si ověřoval výsledky. U každého projektu se to dělá trochu jinak a vždycky je potřeba to nějak nastavit.

Budoucnost

Modely se rychle zlepšují a s čím měly včera problémy, už dnes obstojně zvládají. Pořád mi ale přijde užitečné, když problému sám rozumím a poznám, když AI něco dělá špatně. Nudné práce bude ubývat, ale pro mě je větší nuda vysvětlovat AI, co má udělat, než problém pochopit a udělat to sám.

Jakub Vrána, Seznámení s oblastí, 7.3.2026

Diskuse je zrušena z důvodu spamu.

avatar © 2005-2026 Jakub Vrána. Publikované texty můžete přetiskovat pouze se svolením autora. Ukázky kódu smíte používat s uvedením autora a URL tohoto webu bez dalších omezení Creative Commons. Můžeme si tykat. Skripty předpokládají nastavení: magic_quotes_gpc=Off, magic_quotes_runtime=Off, error_reporting=E_ALL & ~E_NOTICE a očekávají předchozí zavolání mysql_set_charset. Skripty by měly být funkční v PHP >= 4.3 a PHP >= 5.0.