Kiedy AI do kodowania nie wie, co wybrać: moja debuggerska odyseja
Kiedy asystent AI do kodowania nie może się zdecydować
Używasz nowoczesnych narzędzi AI do programowania? Na pewno miałeś taką sytuację. Zadajesz proste pytanie. AI zaczyna pewnie analizować. A potem... zmienia zdanie. I jeszcze raz. I znowu.
To nie brak inteligencji. Raczej jak słuchanie czyichś myśli na żywo, bez redaktora. Może to zabawne, ale pokazuje, jak budujemy narzędzia deweloperskie w erze AI.
Zjawisko niezdecydowanego Copilota
Programiści testujący Claude Opus w GitHub Copilot napotkali to niedawno. Pracowali nad GoAWK – interpreterem AWK w Go. Bug był uparty: zamiast "x 1\n" wypisywało "0\n0\n" dla konkretnego programu AWK.
AI szybko znalazło przyczynę. Zmienne specjalne jak NR trzymane jako inty w Go traciły formę stringa.
Ale potem zaczęło się poprawianie. W kilka minut AI rzuciło siedem różnych pomysłów. Co gorsza, zmieniało je co chwilę – ponad 25 razy. Ciągle przeformułowując problem i kwestionując swoje sugestie.
Siedem opcji, które stały się dwudziestoma pięcioma
AI kręciło się wokół takich rozwiązań:
- Opcja A: Zachowaj reprezentację stringową dla zmiennych specjalnych
- Opcja B: Przechowuj je jako typy wartościowe
- Opcja C: Dodaj nadpisy stringowe przy przypisaniu
- Opcja D: Napraw tylko opcode ForIn
- Opcja E: Użyj bocznego pola na oryginalne wartości
- Opcja F: Zmień tylko lineNum i fileLineNum na typy wartościowe
- Opcja G: Wprowadź mapę nadpisań dla typów wartościowych
Najlepsze? Wewnętrzny monolog AI. Co chwilę: "Najprościej będzie...", "Ale właściwie problem to...", "Wracam do pierwszej myśli...".
Dlaczego tak się dzieje?
Modele jak Claude szukają wielu perspektyw. Rozpoznają, że problem może mieć kilka dobrych rozwiązań. I tu je miały – kilka opcji działałoby.
Brakuje im funkcji oceny, np. "minimalne zmiany" czy "zachowaj kompatybilność". Bez tego AI kręci się w kółko. Nie jest głupie – po prostu za bardzo stara się być dokładne.
Co naprawdę pomogło
Mimo zamieszania AI najczęściej wskazywało Opcję B (11 z 26 razy). Deweloper ją wdrożył – zmienne specjalne jako typy wartościowe zamiast intów. I to był strzał w dziesiątkę.
Tu kryje się siła AI w kodowaniu. Nawet z wahaniem:
- Zdiagnozowało szybciej niż ręczne debugowanie
- Wskazało optimum (choć po 25 próbach)
- Przejrzało edge case'y i alternatywy
- Dało gotowy kod
Co to znaczy dla programistów z AI?
Używasz Claude'a, ChatGPT czy podobnych? Oto rady:
AI świetnie diagnozuje, ale decyzje idą mu opornie. Jeśli powtarza "Ale właściwie...", to eksploruje opcje. To cenna cecha – dostajesz wiele spojrzeń.
Daj jasne ramy od razu. Zamiast "jak naprawić bug?", spytaj "jak naprawić z najmniejszą refaktoryzacją?" lub "jaka najmniejsza zmiana wystarczy?".
Trajtuj jak partnera do myślenia, nie wyrocznię. Klucz to śledzenie rozumowania. Wahanie? Czas przeanalizować opcje.
Przyszłość rozwoju z AI na luzie
To doświadczenie podpowiada kierunek dla AI w devie. W NameOcean na platformie Vibe Hosting myślimy, jak lepiej wpleść AI w workflow. Nie po to, by decydowało za nas – ale by eksplorowało, a my wybierali świadomie.
Niedługo systemy będą oceniać opcje pod kątem projektu. Wyobraź sobie: "Opcja B pasuje, bo zgadza się z architekturą twojego kodu". Zamiast bezkońcowego kręcenia.
Podsumowanie
Ten niezdecydowany AI nie był zepsuty. Myślał głośno bez ram decyzyjnych. Ale spójrz na efekty: szybka diagnoza, wiele opcji, wskazanie najlepszej.
Przyszłość to nie idealne AI z decyzjami. To AI, które głęboko eksploruje, jasno wyjaśnia i zostawia wybór deweloperowi.
Następnym razem, gdy twój asystent się waha – doceń. Robi to, co ma: patrzy na problem z każdej strony.