AI agenti pro programování: Rozsáhlý test odhalil jejich možnosti i hranice
Timothy B. Lee se rozhodl prověřit schopnosti současných programovacích AI nástrojů praktickým testem. Místo jednoduchých ukázkových úloh si vybral komplexní reálný projekt. Jako testovací materiál použil data o dopravních kolizích vozidel Waymo - autonomních aut, která vykazují statisticky nižší počet nehod na ujetou vzdálenost než automobily řízené lidmi.
Zadání znělo jasně: spojit informace ze dvou různých databází - jedné poskytnuté společností Waymo a druhé od amerického Národního úřadu pro bezpečnost dopravy (National Highway Traffic Safety Administration). Z těchto sloučených dat následně vybudovat funkční webovou aplikaci, která umožní vyhledávání, třídění a procházení záznamů o nehodách autonomních vozidel.
Při testování Lee záměrně hrál roli naprostého začátečnika v programování. Nenahlížel do zdrojového kódu ani se nepokoušel diagnostikovat technické problémy. Spoléhal výhradně na komunikaci s AI agenty prostřednictvím běžných pokynů v přirozeném jazyce.
Výkonnost jednotlivých AI programovacích nástrojů
Platformy s největšími obtížemi
Bolt.new kapituloval hned na začátku s chybovou hláškou "looks like you've hit the size limit". Podle dokumentace platforma informuje uživatele, když velikost projektu překročí dostupné kontextové okno - 200 tisíc tokenů pro nezpoplatněné účty nebo 500 tisíc pro prémiové verze. Testovací soubory byly příliš objemné pro zpracování. Zatímco konkurenční řešení disponují funkcemi pro postupné procházení velkých souborů, Bolt.new takové možnosti postrádá.
Replit dokončil plánování a následně 17 minut pracoval na implementaci. Ačkoliv tvrdil, že webová stránka je hotova, výsledek nešel vůbec spustit. Ani opakované pokusy o nápravu neuspěly - Lee nedokázal přimět platformu k vyřešení základního problému s funkčností.
Lovable vytvořil vizuálně působivou webovou stránku, ale zápasil s načítáním údajů. Postupnými instrukcemi se Lee podařilo dosáhnout importu většiny informací a jejich konverze do požadovaného formátu. Přesto zůstal problém s datumy, které se zobrazovaly jako "N/A" navzdory četným požadavkům na opravu.
Nástroje se smíšenými výsledky
Windsurf začal nadějně - rychleji než ostatní vytvořil základní funkční web a umožnil některé úpravy. Systém se však ukázal jako nestabilní. Požadavek na rozbalovací menu pro filtrování podle stupně poranění (lehké, střední, vážné, smrtelné) vedl k vytvoření rozhraní, které však nebylo schopno skutečně filtrovat data ani po několika pokusech o nápravu.
OpenAI Codex splnil zadání, ale s nedostatky v provedení. Zatímco jiné nástroje inteligentně vybraly klíčové informace jako lokalitu, čas a závažnost incidentu, Codex zahrnul všechny dostupné sloupce dat. Výsledkem byla stránka mnohonásobně širší než standardní okno prohlížeče. I po investovaném času na vylepšení vzhledu zůstaly různé formátovací problémy a nedokonalosti.
Nejúspěšnější řešení
Cursor prokázal solidní výkon, i když začátek nebyl slibný. Dlouho trvalo nastavení vývojového prostředí s několika neúspěšnými pokusy. První verze stránky vůbec nefungovala - zobrazovala pouze nekonečný indikátor načítání. Po povzbuzení však Cursor problematiku vyřešil a dodal atraktivně vypadající aplikaci. Většina následných požadavků na modifikace byla splněna napoprvé.
Claude Code dosáhl nejlepších výsledků. Zvládl úkol téměř plynule s minimálními komplikacemi. Po vytvoření základní struktury dokázal rychle a přesně implementovat požadované funkce a designové změny, často již při prvním pokusu.
Klíčová pozorování z praktického testování
Lee byl překvapen množstvím opakování a pokusů, které používání těchto nástrojů vyžadovalo. Časté byly situace, kdy nahlásil chybu, agent se pokusil o opravu, ale problém přetrval. Někdy se tento cyklus opakoval pět až deset po sobě jdoucích pokusů, přičemž AI zkoušelo různé přístupy.
Zároveň se ukázalo, že některé chyby zůstaly neřešitelné bez ohledu na počet pokusů. Toto chování Lee pozoroval u platforem Lovable, Replit a Windsurf.
Objevil se jasný kompromis mezi jednoduchostí použití a funkčností. Bolt, Lovable a Replit se prezentují jako nástroje pro "intuitivní kódování", které umožňují neprogramátorům vytvářet kompletní weby jediným příkazem. Všechny tři však selhávají při složitějších nebo nestandardních požadavcích.
Naproti tomu Claude Code a Codex cílí na profesionální programátory. Vyžadují API klíče a znalost unixových příkazů, což může začátečníky odrazovat. Kompenzují to však výrazně vyšší univerzálností a výkonem.
Využití AI kódovacích nástrojů v praxi
Lee diskutoval s Aaron Votre, vývojářem ve společnosti Bright Harbor zaměřené na obnovu po katastrofách. Votre intenzivně využívá Cursor a Claude Code a uvádí dramatické zvýšení produktivity díky těmto nástrojům.
"Udržujeme rozsáhlý soubor se stovkami řádků našich směrnic," vysvětlil Votre. Tento dokument, trvale začleněný do kontextu Claude Code, specifikuje softwarové nástroje používané pro různé účely a obsahuje rady, které by firma poskytla novému zaměstnanci.
Směrnice zahrnují instrukce typu "řeš každý problém před pokračováním kvůli kvalitě kódu", "řaď aliasy abecedně" nebo "testuj formátovací funkce samostatně pro lepší izolaci".
"Kdykoli udělá chybu, doplníme to," poznamenal Votre. "Claude je pro nás momentálně nejlepší volba, protože máme pro něj nejlepší nastavení."
Další strategií podle Votre je nechat agenta vypracovat detailní plán před implementací. Lidský programátor může plán zkontrolovat a upravit - tím se předejde problémům z nejasných nebo matoucích instrukcí a poskytne se dodatečný kontext.
Angličtina jako nový programovací jazyk
Lee odkazuje na výrok Andrej Karpathy z minulých let: "Nejžhavějším novým programovacím jazykem je angličtina."
Historie programování ukazuje postupný posun k vyšším úrovním abstrakce. Zatímco první programátoři museli pracovat s nízkými matematickými operacemi, padesátá léta přinesla jazyky jako Cobol a Fortran. Moderní jazyky typu Python obsahují rozsáhlé knihovny umožňující vytváření výkonných programů v několika řádcích.
AI kódovací agenti představují další stupeň tohoto vývoje. Místo psaní instrukcí v C++ nebo Pythonu mohou programátoři zadávat požadavky v angličtině a agent je převede do příslušného programovacího jazyka.
Toto paradigma eliminuje nutnost řešit implementační detaily a vyhledávat drobné chyby. Nezměnilo se však to, že někdo musí definovat, co má počítač dělat, a poskytnout dostatečně přesné instrukce. U velkých projektů to vyžaduje systematické myšlení, pochopení kompromisů, pozornost k detailům a hluboké porozumění fungování počítačů.
Lee předpokládá podobný vývoj v dalších profesích ovlivněných AI agenty. Budou existovat právní asistenti pomáhající s dokumenty a smlouvami, ale někdo musí určovat úkoly a hodnotit výsledky - což vyžaduje odborné znalosti. Spíše než o nahrazování profesionálů půjde o nové nástroje pro jejich práci.
