Ondřej Surý, dyrektor ds. inżynierii DNS w organizacji ISC, który wcześniej stworzył projekt CZ.NIC Labs rozwijający serwer DNS Knot, podsumował eksperymenty dotyczące wykorzystania dużych modeli językowych do analizy, poprawy i modernizacji kodu serwera DNS BIND 9, tworzenia prototypów nowych projektów oraz przygotowywania materiałów dla studentów. Wrażenia z użycia AI ograniczają się do stwierdzenia, że duże modele językowe dobrze nadają się do szybkiego tworzenia prototypów, zrozumienia nieznanego kodu i automatyzacji prostych rutynowych zadań, ale przy ich zastosowaniu do rozwiązywania większych problemów wątpliwe jest, czy zaoszczędzają czas, ponieważ wiele czasu poświęca się na określenie zadania, badanie i weryfikację wyników, a także późniejsze poprawki.
W pierwszym eksperymencie AI-asystent Claude Code miał za zadanie wykryć problemy w kodzie serwera DNS BIND 9, koncentrując się na problemach z bezpieczeństwem i modernizacji kodu. Żadne z proponowanych poprawek nie zostały przyjęte do bazy kodu, ponieważ Claude wygenerował technicznie poprawny, ale praktycznie bezużyteczny kod. Na przykład jako problemy wskazano zastrzeżone identyfikatory i potencjalne przepełnienia całkowite, które są zapobiegane przez kompilator i nie wymagają poprawek. Eksperyment uznano za bezsensowną stratę czasu.
W drugim eksperymencie Ondřej poprosił Claude'a o napisanie systemu telemetrycznego, który można integrować z różnymi pakietami i minimalizować wycieki metadanych. Claude Code przygotował prototypy klienta i serwera, ale bez odpowiedniego zrozumienia środowiska i problemów pojawiających się podczas testowania. Dodatkowo do weryfikacji zaangażowano Google Gemini i ChatGPT, a każdy model AI znajdował błędy w wynikach pracy innych modeli.
Metoda okazała się przydatna do szybkiego stworzenia prototypu, ale Ondřej zauważył, że podczas pracy czuł się sekretarzem robota-władcy. Na początku szybkie uzyskanie prototypu napawało optymizmem, ale na końcu pojawiło się wrażenie, że cały proces rozwoju z pomocą AI zajmował więcej czasu niż pisanie kodu ręcznie od podstaw. Wiele czasu poświęcono na analizę rozwiązania zaproponowanego przez AI, sprawdzenie, czy nie ma bezsensownych zmian oraz przerobienie — prototyp musiał zostać poprawiony, ponieważ jakość kodu po AI była przeciętna, a kod zawierał wiele powtarzających się konstrukcji.
Trzecim eksperymentem była generacja load balancera w języku Rust z użyciem pakietów crate Domain i Tokio. Claude Code zdołał wygenerować żądany działający prototyp, ale Ondřej nie zna się wystarczająco dobrze na Rust i używanych bibliotekach, aby ocenić jakość wykonanej pracy.
Czwarty eksperyment dotyczył przygotowania w Google Gemini materiałów pomocniczych, testów i pytań do kursu wykładów, który Ondřej prowadzi na uniwersytecie. Eksperyment ten uznano za najbardziej udany, chociaż nie obyło się bez problemów — AI wymyśliło nieistniejące czeskie słowo na termin z zakresu kryptografii. Zauważono również dużą liczbę prac studenckich, które zostały wygenerowane przez duże modele językowe, a które muszą być zwracane do przeróbki z powodu niespełniania wymogów uniwersyteckich oraz błędnych źródeł.
Dodatkowo można zauważyć jeszcze jeden eksperyment, przeprowadzony przez dyrektora ds. inżynierii firmy Cloudflare. Przy pomocy modelu Claude Code, wydając około tydzień czasu i 1100 dolarów na tokeny, udało się przygotować alternatywną implementację API frameworka Next.js, stworzoną w formie pluginu do narzędzia Vite. Projekt otrzymał nazwę vinext i został opublikowany na GitHubie. Nowa implementacja jest cztery razy szybsza niż kompilacja Next.js przy pomocy Turbopack i tworzy pakiety dla frontendów, zajmujące o 57% mniej miejsca.
Projekt realizuje 94% szesnastu podstawowych API Next.js i może być używany jako przezroczysta alternatywa dla Next.js oraz do wdrażania projektów na platformie Cloudflare Workers bez dodatkowych warstw, takich jak OpenNext, i bez zależności od Node.js. Kluczowym celem vinext jest umożliwienie korzystania z API Next.js na platformach innych niż Vercel, bez potrzeby wdrażania własnego serwera. W obecnej wersji wspierane są tylko Cloudflare Workers, a także istnieje prototyp dla Vercel, jednak w przyszłości planowane jest wsparcie dla innych platform obliczeń bezserwerowych, z którymi może współpracować Vite, w tym Netlify i AWS Lambda.
Źródło: opennet.ru
