ChatGPT z Codex: Pierwsze Wrażenia

Najnowsza innowacja od OpenAI, agent AI Codex, wprowadza nowatorskie podejście do kodowania – środowisko „vibe-coding” oparte na interfejsie podobnym do ChatGPT. Chociaż koncepcja początkowo może wydawać się niepoważna, możliwości nowego agenta Codex są zaskakująco imponujące.

OpenAI określiło Codex jako wersję testową (research preview), wskazując, że wciąż jest w fazie aktywnego rozwoju. Obecnie jest dostępny dla subskrybentów ChatGPT Pro, Enterprise i Team-tier, z planami rozszerzenia dostępności na użytkowników Plus i Edu w najbliższej przyszłości.

Zgodnie z ogłoszeniem OpenAI, nazwa Codex jest związana z rozwijającym się narzędziem do kodowania od 2021 roku. W tej dyskusji „Codex” odnosi się do nowo ogłoszonej wersji.

Codex znajduje się na serwerach OpenAI i integruje się z repozytoriami GitHub. Demonstracje sugerują, że Codex funkcjonuje jako dodatkowy programista w zespole.

Można mu zlecić rozwiązanie serii błędów i odpowiednio wykonać zadanie. Szuka również zatwierdzenia zmian w kodzie, chociaż wydaje się, że jest w stanie autonomicznie modyfikować kod.

Codex może analizować i modyfikować kod, identyfikować konkretne problemy, wskazywać obszary do poprawy i wykonywać inne zadania związane z kodowaniem i konserwacją. Każde zadanie inicjuje nowe wirtualne środowisko, umożliwiając sztucznej inteligencji obsługę wszystkiego, od koncepcji i projektu po testy jednostkowe.

Zmiana Paradygmatu w Kodowaniu

Oznacza to prawdziwą zmianę paradygmatu kodowania. Wcześniejsza pomoc AI w kodowaniu polegała głównie na funkcjach autouzupełniania, automatycznie generujących wiersze lub bloki kodu na podstawie istniejącego kodu.

Technologia posunęła się do punktu, w którym AI może pisać lub debugować małe segmenty kodu. Jest to aspekt, który szczególnie mnie interesuje w odniesieniu do testów programowania ZDNET.

Inną rolą AI jest analiza całego systemu. Niedawno zbadałem nowe narzędzie Deep Research, które może dekonstruować całe bazy kodu i dostarczać recenzje kodu oraz rekomendacje.

Codex osiąga teraz punkt, w którym całe zadania programistyczne można powierzyć AI w chmurze, podobnie jak delegowanie zadań innym programistom w zespole lub młodszym programistom uczącym się konserwacji kodu.

OpenAI opisuje to jako „Oprogramowanie natywne dla agentów, w którym AI nie tylko pomaga ci w pracy, ale także podejmuje się pracy niezależnie”.

W filmie prezentującym uruchomienie zademonstrowano zdolność Codex do zarządzania wieloma zadaniami jednocześnie, z których każde działa w oddzielnym, izolowanym środowisku wirtualnym.

Programiści przydzielali zadania agentowi, który następnie wykonywał pracę niezależnie. Po zakończeniu agent dostarczał wyniki testów i sugerował zmiany w kodzie.

W demonstracji Codex wykonywał poprawki błędów, skanował w poszukiwaniu literówek, oferował sugestie zadań i wykonywał refaktoryzację w skali projektu (modyfikowanie kodu w celu poprawy struktury bez zmiany zachowania).

Starsi programiści i projektanci znają się na formułowaniu wymagań i przeglądaniu pracy innych. Korzystanie z Codex nie wprowadzi dla nich znaczących zmian. Jednak programiści, którym brakuje umiejętności formułowania wymagań i przeglądania, mogą uznać zarządzanie Codex za nieco trudne.

Mimo to, jeśli narzędzie działa zgodnie z demonstracją, Codex umożliwi mniejszym zespołom i indywidualnym programistom osiągnięcie większej produktywności, ograniczenie powtarzalnych zadań i skuteczniejsze reagowanie na zgłoszenia problemów.

Potencjalne Pułapki i Strategie Ich Łagodzenia

Wczesne doświadczenia z możliwościami kodowania ChatGPT ujawniły tendencję do utraty koncentracji lub odbiegania od zamierzonego kierunku. Chociaż nie jest to katastrofalne dla pojedynczych bloków kodu, może prowadzić do niezamierzonych i problematycznych konsekwencji, jeśli agent kodujący może działać z ograniczonym nadzorem.

Aby temu zaradzić, OpenAI przeszkoliło Codex w przestrzeganiu instrukcji zawartych w pliku AGENTS.md. Ten plik, znajdujący się w repozytorium, umożliwia programistom i zespołom kierowanie zachowaniem Codex. Może zawierać instrukcje dotyczące konwencji nazewnictwa, zasad formatowania i wszelkich innych spójnych wytycznych pożądanych w całym procesie kodowania. Zasadniczo rozszerza ustawienia personalizacji ChatGPT na środowisko zespołowe skoncentrowane na repozytorium.

Dodatkowo OpenAI wprowadziło wersję Codex o nazwie Codex CLI, która działa lokalnie na maszynie programisty. W przeciwieństwie do opartego na chmurze Codex, który działa asynchronicznie i dostarcza raporty po zakończeniu, wersja lokalna działa za pośrednictwem wiersza poleceń programisty i działa synchronicznie.

Zasadniczo programista wprowadza instrukcję i czeka, aż proces Codex CLI zwróci wynik. Umożliwia to programistom pracę w trybie offline, wykorzystując lokalny kontekst aktywnej maszyny programistycznej.

Prototype Badawczy o Obiecującym Potencjale

Demonstracja była imponująca, ale programiści podkreślili, że to, co pokazują i udostępniają, to prototyp badawczy. Chociaż oferuje to, co nazwali „magicznymi momentami”, nadal wymaga znacznego rozwoju.

Próbuję zrozumieć konkretne implikacje tej technologii dla przyszłości rozwoju i mojego własnego procesu rozwoju. Moim głównym produktem jest wtyczka WordPress o otwartym kodzie źródłowym, z zastrzeżonymi wtyczkami dodatkowymi. Codex może potencjalnie analizować publiczne repozytorium pod kątem podstawowej wtyczki o otwartym kodzie źródłowym.

Jednak czy Codex mógłby zarządzać relacją między publicznym repozytorium a wieloma prywatnymi repozytoriami w ramach jednego ogólnego projektu? I jak wypadłby, gdy testowanie obejmuje nie tylko mój kod, ale także uruchomienie całego dodatkowego ekosystemu – WordPress – w celu oceny wydajności?

Jako samotny programista dostrzegam potencjalne korzyści z narzędzia takiego jak Codex. Nawet subskrypcja Pro za 200 USD miesięcznie mogłaby się opłacać. Zatrudnienie ludzkiego programisty kosztowałoby znacznie więcej, zakładając, że mógłbym czerpać z tego wymierne, monetyzowalne korzyści.

Jako doświadczony kierownik zespołu i komunikator czuję się komfortowo delegując zadania czemuś takiemu jak Codex. Nie różni się to znacząco od komunikacji z członkiem zespołu przez Slack.

Fakt, że Codex dostarcza rekomendacje, wersje robocze i czeka na moją zgodę, zapewnia poczucie bezpieczeństwa w porównaniu z prostym pozwoleniem mu na swobodne działanie w moim kodzie. Otwiera to intrygujące możliwości dla nowego cyklu życia rozwoju, w którym ludzie definiują cele, AI tworzy wersje robocze potencjalnych implementacji, a ludzie następnie albo zatwierdzają, albo przekierowują AI do kolejnej iteracji.

Pytania Bez Odpowiedzi i Przyszłe Implikacje

Na podstawie moich wcześniejszych doświadczeń z wykorzystaniem AI do kodowania, Codex może potencjalnie skrócić czas konserwacji i przyspieszyć dostarczanie poprawek użytkownikom. Jednak jego skuteczność w dodawaniu nowych funkcji na podstawie dokumentu specyfikacji pozostaje niejasna. Podobnie, nie ustalono jeszcze trudności związanych z modyfikowaniem funkcjonalności i wydajności po wdrożeniu Codex.

Warto zauważyć, że kodowanie AI rozwija się w wielu firmach w podobnym tempie. Wkrótce opublikuję kolejny artykuł na temat GitHub Copilot’s Coding Agent, który dzieli niektóre funkcje z Codex.

W tym artykule wyraziłem obawy, że ci agenci kodujący mogą zastąpić młodszych i początkujących programistów. Oprócz implikacji dla ludzkich miejsc pracy pojawia się również pytanie o krytyczne możliwości szkoleniowe, które mogą zostać utracone, jeśli delegujemy środkową fazę kariery programisty na AI.

Przemysł Oprogramowania "W Nieznane"

W filmie Disneya Frozen II jest piosenka zatytułowana "W Nieznane", wykonywana przez Idinę Menzel. Piosenka odzwierciedla wewnętrzny konflikt głównego bohatera między utrzymaniem status quo a zapuszczaniem się "w nieznane".

Wraz z rozwojem oprogramowania agentowego, poza samym kodowaniem AI, cały przemysł oprogramowania wyrusza w podróż "w nieznane". W miarę jak coraz bardziej polegamy na systemach opartych na AI do rozwoju naszego oprogramowania, liczba wykwalifikowanych opiekunów prawdopodobnie się zmniejszy. Jest to akceptowalne, dopóki AI nadal działa skutecznie i pozostaje dostępne. Jednak czy pozwalamy na zanikanie podstawowych umiejętności i poświęcamy dobrze płatne miejsca pracy dla wygody delegowania na jeszcze nie w pełni świadomą, opartą na chmurze infrastrukturę?

Czas pokaże odpowiedzi i miejmy nadzieję, że to objawienie nie nastąpi, gdy zabraknie nam czasu.

Czy rozważyłbyś delegowanie prawdziwych zadań programistycznych narzędziu takiemu jak to? Jak myślisz, jaki będzie długoterminowy wpływ na zespoły programistyczne lub indywidualnych programistów? I czy martwisz się utratą krytycznych umiejętności lub ról, gdy coraz większa część cyklu życia kodu jest powierzana AI?