Przyszłość kodowania: Sztuczna inteligencja zmienia rolę programisty w architekta
Sztuczna inteligencja rewolucjonizuje świat programowania, a narzędzia oparte na AI stają się nieodłącznym elementem warsztatu dewelopera. Ryan Salva, pełniący funkcję menedżera narzędzi deweloperskich w Google, ma unikalną perspektywę na te zmiany. Wcześniej pracował w firmach takich jak GitHub i Microsoft, a teraz odpowiada za narzędzia takie jak Gemini CLI i Gemini Code Assist. W rozmowie Salva dzieli się wnioskami z najnowszego raportu Google na temat wykorzystania AI przez programistów oraz swoimi osobistymi doświadczeniami.
Początek ery modeli rozumujących
Z raportu wynika, że przełom w wykorzystaniu AI w programowaniu nastąpił w kwietniu 2024 roku, co zbiega się z premierą modeli Claude 3 i Gemini 1.5. Salva podkreśla, że to właśnie wtedy pojawiły się modele rozumujące, które w połączeniu z zaawansowanym tool-callingiem zyskały zdolność do samodzielnego korygowania błędów podczas pracy nad kodem. To kluczowe, zwłaszcza w zadaniach wymagających dostępu do zewnętrznych informacji, takich jak kompilacja kodu, testy jednostkowe i integracyjne.
Praktyczne zastosowanie AI w pracy programisty
Salva wykorzystuje narzędzia AI zarówno w projektach hobbystycznych, jak i w pracy zawodowej. W tej pierwszej dziedzinie korzysta z Gemini CLI, Claude Code i Codex, używając różnych środowisk IDE, takich jak Zed, VS Code, Cursor i Windsurf. W pracy zawodowej, jako product manager, wykorzystuje AI do tworzenia specyfikacji i dokumentacji wymagań. Często zaczyna od nieprecyzyjnego zgłoszenia błędu w GitHubie, a następnie używa Gemini CLI do stworzenia szczegółowego dokumentu w formacie Markdown, który zawiera techniczną specyfikację zorientowaną na wynik. Na podstawie tego dokumentu Gemini CLI pisze kod, uwzględniając zasady i preferencje zespołu, zawarte w specjalnych dokumentach Markdown. Narzędzie AI aktualizuje dokumentację w trakcie pracy, tworząc oddzielne commity i pull requesty w repozytorium, co umożliwia śledzenie zmian.
Według Salvy, około 70-80% jego pracy polega na interakcji z Gemini CLI w naturalnym języku, aby tworzyć wymagania, a następnie pozwolić AI na napisanie większości kodu, który później recenzuje w IDE. Co ciekawe, IDE służy mu głównie do czytania kodu, a nie do jego pisania.
Przyszłość bez kodu? Rola architekta oprogramowania
Salva przewiduje, że rola programisty ewoluuje w kierunku architekta oprogramowania. Zamiast pisać kod linijka po linijce, deweloperzy będą koncentrować się na rozwiązywaniu złożonych problemów i dzieleniu ich na mniejsze, łatwiejsze do rozwiązania zadania. Kluczowe będzie myślenie o ogólnym obrazie projektu, a nie o języku pośrednim, w którym wyrażany jest kod maszynowy. To oznacza, że umiejętność abstrakcyjnego myślenia i projektowania systemów stanie się ważniejsza niż znajomość konkretnych języków programowania.
Choć IDE przez dekady było centrum pracy dewelopera, Salva uważa, że z czasem spędzimy w nim mniej czasu, a więcej uwagi poświęcimy dokumentacji i wymaganiom. Ta zmiana może zajść stopniowo, ale ostatecznie doprowadzi do przekształcenia roli programisty w architekta, który zarządza procesem tworzenia oprogramowania na wyższym poziomie abstrakcji.