Przeglądanie narzędzi AI dla programistów ujawnia cztery standardowe możliwości AI dla programistów:
- Generowanie kodu: używanie sztucznej inteligencji do pisania kodu lub pomagania w jego pisaniu.
- Generowanie dokumentacji: wykorzystanie sztucznej inteligencji do pisania kodu lub dokumentacji proceduralnej.
- Podsumowanie Pull Request: sztuczna inteligencja tworzy podsumowanie zmian zawartych w Pull Request .
- Generowanie testów jednostkowych: sztuczna inteligencja automatycznie sugeruje lub tworzy testy jednostkowe dla zmian w Pull Request.
Drobne szczegóły związane z tworzeniem oprogramowania schodzą na dalszy plan. Programiści nie muszą już spędzać godzin na przeglądaniu dokumentacji biblioteki, zmaganiu się z flagami wiersza poleceń lub zmaganiu się ze frameworkami CSS, zanim zaczną produktywnie pracować. Zamiast tego proces ewoluuje w iteracyjny dialog między programistą a LLM:
- Wstępne zdefiniowanie architektury i funkcjonalności w drodze burzy mózgów wspomaganej sztuczną inteligencją.
- Szybkie generowanie kodu oraz cykle przeglądu i informacji zwrotnej przez człowieka.
- Ciągłe sterowanie sztuczną inteligencją w celu dostosowania jej do ogólnej wizji i celów.
- Regularne testowanie i weryfikacja w środowiskach lokalnych i podglądowych.
Ten nowy przepływ pracy pozwala doświadczonym programistom skoncentrować się na projektowaniu na wysokim poziomie i rozwiązywaniu problemów, jednocześnie wykorzystując sztuczną inteligencję do obsługi szczegółów implementacji.
Nie neguje to jednak potrzeby posiadania umiejętności kodowania. Chociaż sztuczna inteligencja może generować fragmenty kodu, popełnia również błędy, a programiści pozostają odpowiedzialni za krytyczne aspekty, takie jak zapewnienie bezpieczeństwa kodu, optymalizacja wydajności, weryfikacja funkcjonalności i tworzenie wyjątkowych doświadczeń użytkownika.
Ten paradoks ilustruje kilka kluczowych punktów dotyczących zmian w kodowaniu:
- Ogromna wiedza i szybkie przetwarzanie: sztuczna inteligencja ma zdolności zapamiętywania i obliczeń, które przewyższają możliwości człowieka.
- Człowiek jako bohater: pomimo niezwykłych możliwości sztucznej inteligencji, ludzie pozostają siłą napędową ze względu na swoje ambicje, kreatywność i etyczne podejmowanie decyzji.
- Sztuczna inteligencja jako rozszerzenie: narzędzia do kodowania wspomagane sztuczną inteligencją poszerzają możliwości programistów, umożliwiając im wydajniejszą pracę i radzenie sobie z bardziej złożonymi wyzwaniami.
- Działanie ukierunkowane na cel: programiści wyznaczają kierunek i cel, wykorzystując narzędzia AI do realizacji swoich wizji i osiągnięcia celów projektu.
Kodowanie za pomocą LLM może znacznie zwiększyć prędkość tworzenia działających aplikacji, a ostatecznie przełoży się to na wyższe oczekiwania w zakresie produktywności przeciętnego programisty.
Połączenie LLM, tradycyjnych przepływów pracy IDE, autonomicznych agentów i modeli z rozszerzającymi się oknami kontekstowymi prawdopodobnie umożliwi programistom żądanie zmian, obserwowanie ich i sterowanie nimi z niespotykaną dotąd szybkością.
Ta zmiana umożliwi indywidualnym programistom zarządzanie większymi i bardziej złożonymi projektami niż kiedykolwiek wcześniej. Przewidujemy również rozwój jednoosobowej firmy programistycznej, w której jeden programista korzystający z narzędzi AI tworzy dochodową i zrównoważoną firmę bez innych pracowników.
Paradygmat ten ma kilka ważnych implikacji dla przyszłości kodowania:
- Większe możliwości: programiści efektywnie korzystający z narzędzi AI mogą podejmować się bardziej złożonych projektów i rozwiązywać problemy szybciej niż kiedykolwiek.
- Zmiana ukierunkowania na umiejętności: chociaż umiejętności techniczne pozostają ważne, większy nacisk zostanie położony na umiejętności wyższego poziomu, takie jak definiowanie problemów, architektura systemu i kreatywne projektowanie rozwiązań. Wyższa premia będzie również kładziona na ludzką wiedzę.
- Względy etyczne: Programiści muszą dokładnie rozważyć etyczne implikacje potężnych narzędzi.
- Ciągłe uczenie się: szybka ewolucja narzędzi AI oznacza, że programiści muszą kultywować nastawienie na ciągłe uczenie się i adaptację. Tak było zawsze, nawet przed szybkim rozpowszechnieniem narzędzi sztucznej inteligencji.
- Inteligencja oparta na współpracy: przyszłość kodowania leży w inteligencji opartej na współpracy, w której ludzka kreatywność i możliwości sztucznej inteligencji współpracują w tandemie, przesuwając granice możliwości w tworzeniu oprogramowania.
Kodowanie przechodzi zmianę paradygmatu, ale w dającej się przewidzieć przyszłości zapotrzebowanie na programistów-ludzi będzie nadal duże. Główne zmiany, których jesteśmy świadkami, wymazują nudę i szczegóły tworzenia, uwalniając inżynierów-ludzi do wykorzystania swojej kreatywności i pasji do rozwiązywania problemów wyższego poziomu.
Roman Czukwiński