Ondřej Surý, ředitel DNS inženýrství v ISC a bývalý zakladatel společnosti CZ.NIC Labs, vývojáře DNS serveru Knot, shrnul výsledky experimentů s využitím rozsáhlých jazykových modelů k analýze, opravě a modernizaci kódové základny DNS serveru BIND 9, prototypování nových projektů a přípravě studijních materiálů pro studenty. Závěry z použití umělé inteligence byly, že rozsáhlé jazykové modely se dobře hodí pro rychlé prototypování, pochopení neznámého kódu a automatizaci jednoduchých rutinních úkolů. Při použití pro větší problémy je však jejich úspora času sporná, protože značné množství času se věnuje formulaci problému, kontrole a validaci výsledků a následnému zdokonalování.
V prvním experimentu měl asistent Claude Code pro umělou inteligenci za úkol detekovat problémy v kódové základně DNS serveru BIND 9 se zaměřením na bezpečnostní problémy a modernizaci kódu. Žádná z navrhovaných oprav nebyla do kódové základny přijata, protože Claude generoval technicky správný, ale prakticky nepoužitelný kód. Například rezervované identifikátory a potenciální přetečení celých čísel, kterým kompilátor zabránil a které nevyžadovaly žádné opravy, byly označeny jako problémy. Experiment byl považován za ztrátu času.
Ve druhém experimentu Ondřej požádal Clauda, aby napsal telemetrický systém, který by se integroval s různými balíčky a minimalizoval úniky metadat. Claude Code připravil prototypy klienta a server, ale bez řádného pochopení prostředí a problémů, které se během testování objevily. Pro testování byly použity také Google Gemini a ChatGPT a každý model umělé inteligence nalezl chyby v práci ostatních modelů.
Metoda se ukázala jako vhodná pro rychlé prototypování, ale Ondřej poznamenal, že se při práci na ní cítil jako tajemník robotického vládce. Zpočátku bylo rychlé generování prototypů povzbudivé, ale nakonec měl pocit, že celý proces vývoje s umělou inteligencí trvá déle než ruční psaní kódu od nuly. Značné množství času bylo věnováno analýze řešení navrženého umělou inteligencí, kontrole zbytečných změn a jeho přepracování – prototyp musel být přepsán, protože kvalita kódu po použití umělé inteligence byla průměrná a obsahovala velké množství opakujících se konstrukcí.
Třetí experiment zahrnoval generování load balanceru v Rustu s využitím balíčků Domain a Tokio crate. Claude Code sice dokázal vygenerovat požadovaný funkční prototyp, ale Ondřej nezná Rust a zapojené knihovny dostatečně dobře, aby dokázal posoudit kvalitu práce.
Čtvrtý experiment zahrnoval použití Google Gemini k přípravě podpůrných materiálů, testů a otázek pro přednáškový kurz, který Ondřej na univerzitě vyučuje. Tento experiment byl považován za nejúspěšnější, i když se neobešel bez problémů: umělá inteligence vytvořila neexistující české slovo pro kryptografický termín. Za zmínku také stojí velké množství studentských prací, které byly předloženy a byly generovány rozsáhlými jazykovými modely a které musely být vráceny k revizi kvůli jejich nesouladu s univerzitními standardy a odkazům na nesprávné zdroje.
Za zmínku stojí i další experiment, který provedl ředitel inženýrství společnosti Cloudflare. Pomocí modelu Claude Code, za zhruba týden a 1 100 dolarů v tokenech, byli schopni vyvinout alternativní implementaci API frameworku Next.js, implementovanou jako plugin pro sadu nástrojů Vite. Projekt s názvem vinext je publikován na GitHubu. Nová implementace je čtyřikrát rychlejší než sestavování Next.js pomocí Turbopacku a produkuje frontendové balíčky, které jsou o 57 % menší.
Projekt implementuje 94 % šestnácti základních API Next.js a lze jej použít jako transparentní náhradu za Next.js a nasadit na platformu Cloudflare Workers bez nutnosti dalších vrstev, jako je OpenNext, nebo vázání na Node.js. Klíčovým cílem Vinextu je umožnit použití API Next.js na jiných platformách než Vercel, bez nutnosti nasazení dedikovaného serveru. V současné době jsou podporovány pouze Cloudflare Workers, přičemž pro Vercel je k dispozici prototyp. V budoucnu se očekává podpora dalších bezserverových výpočetních platforem kompatibilních s Vite, včetně Netlify a AWS Lambda.
Zdroj: opennet.ru
