Claude Code dostal za úkol přepsat aplikaci z Electronu do nativního Swiftu. Nešlo přitom o několik funkcí ani rychlou ukázku pro sociální sítě. Agent pracoval celé týdny, spouštěl původní aplikaci, pořizoval snímky obrazovky a porovnával je s novou verzí. Experiment ukazuje, jak daleko se AI programování dostalo. Současně připomíná, že dokonale automatizovat lze i práci, jejíž smysl je přinejmenším diskutabilní.
Ještě před několika lety se pod pojmem AI programování skrývalo hlavně chytřejší automatické doplňování kódu. Programátor napsal začátek funkce, model odhadl její pokračování a všichni se tvářili, že právě začala nová průmyslová revoluce.
Dnes už je situace podstatně zajímavější.
Moderní programovací agent dokáže otevřít projekt, projít jeho strukturu, upravovat soubory, spouštět příkazy, testovat aplikaci, analyzovat chyby a následně pokračovat v práci bez toho, aby mu člověk diktoval každý jednotlivý krok. Dostane cíl, nástroje a způsob kontroly výsledku. Zbytek si řeší sám.
Právě takový experiment popsal Boris Cherny, šéf vývoje Claude Code ve společnosti Anthropic. Agent dostal za úkol spouštět původní aplikaci Claude postavenou na Electronu ve virtuálním Macu, pořizovat snímky obrazovky a porovnávat je pixel po pixelu s novou verzí napsanou ve Swiftu. Poté měl automaticky pokračovat v úpravách, dokud nebude výsledek odpovídat originálu.
Úloha údajně běžela přibližně dva týdny.
To je na jedné straně technicky působivé. Na straně druhé jde o krásný příklad toho, že lidstvo konečně vytvořilo systém schopný čtrnáct dní nepřetržitě a velmi efektivně přepisovat jednu aplikaci do jiné technologie, aniž by bylo zcela jasné, zda ji vůbec někdo potřebuje.
AI už nepíše jen kód. Dostává cíle
Nejdůležitější na celém experimentu není Swift, Electron ani konkrétní aplikace Claude. Podstatný je způsob zadání.
Agent nedostal podrobný návod obsahující stovky dílčích kroků. Dostal výsledek, kterého má dosáhnout, a kontrolní mechanismus:
- spusť původní aplikaci,
- spusť novou aplikaci,
- pořiď snímky,
- porovnej je,
- oprav rozdíly,
- postup opakuj.
To je zásadní posun oproti běžnému používání chatbotů. Člověk už nemusí přesně popisovat, jak má model problém vyřešit. Místo toho definuje požadovaný výsledek a způsob, kterým lze ověřit jeho správnost.
Cherny ostatně v posledních měsících opakovaně tvrdí, že příliš podrobné instrukce mohou současné modely spíše brzdit. Podle něj je vhodnější přesně popsat cíl a umožnit agentovi, aby si vlastní postup vytvořil sám.
V programování to dává smysl. Výsledek lze často relativně přesně ověřit pomocí automatických testů, vizuálního porovnání, kompilace nebo měření výkonu.
Agent něco vytvoří, spustí test, zjistí chybu a upraví řešení. Nemusí čekat, až se člověk vrátí z oběda, schůzky nebo dalšího firemního rituálu, při kterém deset lidí diskutuje o názvu tlačítka.
Dva týdny práce bez únavy
Člověk by podobnou úlohu pravděpodobně nevykonával nepřetržitě. Musel by spát, jíst, číst firemní zprávy a předstírat zájem o pravidelné porady. AI agent nic z toho nepotřebuje.
Může pracovat celé hodiny nebo dny, pokud má přístup k potřebným nástrojům, dostatečný rozpočet na výpočty a smyčku, pomocí které dokáže kontrolovat vlastní výsledek.
Tady se ukazuje skutečný potenciál agentního programování. Nejde jen o to, že model napíše jednu funkci rychleji než člověk. Hodnota spočívá v jeho schopnosti opakovat dlouhý proces bez únavy:
- provést změnu,
- sestavit aplikaci,
- spustit ji,
- zkontrolovat výsledek,
- najít odchylku,
- změnu zopakovat.
Taková práce bývá pro člověka ubíjející. Pro AI je to pouze další průchod smyčkou, při kterém účet za tokeny tiše roste a finanční oddělení začíná hledat tabulku s názvem „návratnost investice“.
Programátor už možná není hlavně pisatel kódu
Boris Cherny v červnu uvedl, že přibližně osm měsíců nenapsal řádek kódu ručně. Tvrdí také, že Claude Code je kompletně vyvíjen pomocí samotného Claude Code.
To samozřejmě neznamená, že sedí v kanceláři a celý den sleduje, jak počítač pracuje. Jeho role se pouze změnila.
Místo ručního psaní jednotlivých funkcí definuje problémy, spouští agenty, kontroluje výsledky a rozhoduje, které změny mají být přijaty. V některých dnech podle vlastních slov spravuje stovky, tisíce nebo dokonce desítky tisíc agentů.
To už nepřipomíná tradiční programování. Je to spíše řízení automatizované výrobní linky, na které místo robotických ramen pracují jazykové modely.
Programátor budoucnosti tak možná nebude člověk, který nejrychleji píše správnou syntaxi. Bude to člověk, který umí:
- přesně definovat cíl,
- rozdělit problém na ověřitelné části,
- připravit agentovi vhodné nástroje,
- vytvořit kvalitní testy,
- rozpoznat špatné řešení,
- rozhodnout, zda má projekt vůbec smysl.
Poslední bod bude patrně nejtěžší. Technologický průmysl nikdy netrpěl nedostatkem lidí schopných postavit složitý systém. Trpěl spíše nedostatkem lidí ochotných včas říct, že daný systém je zbytečný.
Psaní kódu mizí, problémy zůstávají
Anthropic tvrdí, že díky Claude Code výrazně narostl objem vytvořeného softwaru. Současně však připouští, že se úzké hrdlo pouze přesunulo.
Když AI odstraní omezení při psaní kódu, problémem se stane jeho kontrola. Když se automatizuje kontrola, problémem se stane údržba, bezpečnost nebo schopnost pochopit, co vlastně tisíce automatických změn způsobily.
Cherny tento jev popsal jako přesun úzkého hrdla. Nejprve byla problémem tvorba kódu. Po jejím automatizování se problém přesunul ke kontrole změn. Anthropic proto používá další instance Claude, které kód vytvořený jinými agenty kontrolují z různých pohledů.
Člověk tak může brzy stát na vrcholu systému, ve kterém:
- jeden agent napíše kód,
- druhý jej otestuje,
- třetí provede bezpečnostní kontrolu,
- čtvrtý zhodnotí architekturu,
- pátý opraví připomínky ostatních agentů.
Nakonec změnu schválí člověk, který se bude snažit působit, že přesně rozumí tomu, co se právě stalo.
Vývoj softwaru tím nezmizí. Jen se přesune o několik úrovní výše.
Electron jako symbol starého kompromisu
Volba přepsat aplikaci z Electronu do Swiftu má navíc vlastní ironii.
Electron umožňuje vytvářet desktopové aplikace pomocí webových technologií. Firmy díky němu nemusí udržovat zcela samostatnou aplikaci pro každý operační systém. Vývoj je rychlejší, levnější a jednodušší.
Nevýhodou bývá vyšší spotřeba paměti, horší integrace s operačním systémem a někdy také pocit, že uživatel místo skutečné desktopové aplikace spustil webovou stránku s příliš velkým sebevědomím.
Technologické firmy si Electron oblíbily právě proto, že šetří čas vývojářů. Nyní máme AI agenty pracující celé týdny na tom, aby původní úsporné rozhodnutí přepsali do nativní technologie.
Nejdřív jsme zabalili web do desktopové aplikace, abychom nemuseli psát nativní software. Potom jsme vytvořili AI, která bude nativní software automaticky vyrábět podle zabaleného webu.
Technický pokrok někdy připomíná člověka, který si koupí robotický vysavač, aby měl více času, a následně dvě hodiny denně sleduje mapu jeho pohybu v mobilní aplikaci.
Pixelově přesná kopie nemusí být dobrý produkt
Experiment také odhaluje jeden zásadní problém současných agentů: dokážou mimořádně vytrvale plnit měřitelný cíl, ale samy nemusí poznat, zda je ten cíl správný.
Pokud agent dostane pokyn vytvořit pixelově přesnou kopii původní aplikace, bude optimalizovat právě tuto shodu. Nebude automaticky řešit, zda je původní rozhraní kvalitní, přehledné nebo vhodné pro nativní prostředí macOS.
Může dokonale napodobit špatné rozložení, nelogické ovládání i staré kompromisy. Udělá přesně to, co mu bylo zadáno.
To není chyba modelu. To je problém zadání.
Stejný princip platí i mimo programování. AI dokáže velmi rychle optimalizovat proces, text, reklamu nebo firemní workflow. Pokud je však původní cíl chybný, pouze urychlí cestu ke špatnému výsledku.
Dříve alespoň složitost práce poskytovala lidem čas si uvědomit, že dělají nesmysl. V éře agentů lze nesmysl vytvořit, otestovat a nasadit během jediného odpoledne.
Množství softwaru prudce poroste
Pokud cena tvorby softwaru skutečně výrazně klesne, nevznikne pouze více kvalitních aplikací. Vznikne především více aplikací obecně.
Každá firma si bude moci nechat vytvořit vlastní interní nástroje. Každé oddělení dostane dashboard. Každý manažer získá aplikaci na měření produktivity ostatních. Každá drobná služba bude mít vlastní účet, mobilní aplikaci, věrnostní systém a minimálně tři oznámení denně.
Snížení ceny výroby obvykle vede ke zvýšení produkce. Tiskárna nezpůsobila, že lidé začali vydávat pouze kvalitní knihy. Internet nevytvořil jen lepší média. A generativní AI nevyrábí pouze přesné texty a užitečné obrázky.
Levný software přinese výborné specializované nástroje. Přinese ale také obrovské množství nedodělaných projektů, jednorázových aplikací a automatizovaných systémů, které bude muset někdo udržovat.
Kód možná bude téměř zdarma. Pozornost uživatelů, bezpečnost, důvěra a schopnost dlouhodobé údržby zdarma nebudou.
Skutečnou hodnotou bude úsudek
Experiment s přepisem aplikace Claude neukazuje, že programátoři přestanou existovat. Ukazuje, že samotné psaní kódu ztrácí část své hodnoty.
Dříve byl kód drahý, protože jeho vytvoření vyžadovalo mnoho času a specializovaných znalostí. Pokud jej bude možné vyrábět téměř automaticky, hodnota se přesune jinam:
- k návrhu produktu,
- k architektuře,
- ke kontrole,
- k bezpečnosti,
- ke znalosti konkrétního oboru,
- ke schopnosti určit správný cíl.
Nejcennější vývojář tak nemusí být ten, kdo napíše nejvíce řádků. Naopak může být nejcennější člověk, který jich dokáže nejvíce smazat, odmítnout nebo vůbec nenechat vzniknout.
To se ovšem špatně prezentuje na konferencích. Snímek s nápisem „tento projekt jsme po rozmyšlení neudělali“ zkrátka nevypadá tak působivě jako graf znázorňující desítky tisíc autonomních agentů.
AI odstraní práci, nikoli odpovědnost
Claude Code dokáže pracovat dlouhé týdny, opravovat vlastní výstup a přibližovat se stanovenému cíli. To je technologicky významný posun.
Současně ale zůstává nezodpovězena základní otázka: kdo nese odpovědnost za výsledek?
Agent může napsat kód. Jiný agent ho může zkontrolovat. Třetí může provést testy. Žádný z nich však nenese skutečné následky, pokud aplikace selže, uniknou data nebo se z projektu stane drahá slepá ulička.
Odpovědnost zůstává na člověku nebo firmě, která systém spustila.
Budoucnost programování proto nebude jen o tom, kolik práce lze předat AI. Bude hlavně o tom, zda lidé dokážou udržet kontrolu nad systémy, jejichž rychlost a rozsah už sami nemohou ručně sledovat.
Claude může dva týdny autonomně přepisovat aplikaci z Electronu do Swiftu. Brzy možná podobnou práci zvládne během několika hodin.
To ale stále neodpovídá na nejdůležitější otázku.
Měli jsme tu aplikaci vůbec přepisovat?
AI dokáže psát kód, testovat jej a nekonečně opravovat své chyby. Zatím však neumí spolehlivě zabránit člověku, aby jí zadal dokonale specifikovanou blbost.
A právě proto budou lidé v softwarovém vývoji ještě nějakou dobu potřeba.