Kod nowej generacji
W pośpiechu, przyjmując takie narzędzia jak Amazon CodeWhisperer, czyli asystenta kodowania generującego nowy kod dla programistów, nie poświęciliśmy wystarczająco uwagi, czy wygenerowany kod jest rzeczywiście dobry. Analiza GitClear sugeruje, że kod generowany w 2023 roku wygląda jak praca osób, które tylko sporadycznie współpracują, co prawdopodobnie wynika z powszechnego stosowania takich asystentów kodujących. Czy powinniśmy więc zastanowić się nad większym nakładem czasu na rozwijanie sztucznej inteligencji tworzącej nową generację kodu?
Perspektywa asystentów kodowania
Głównym punktem skupienia w kontekście asystentów kodowania jest poprawa wydajności programistów. Niestety, często jest to niewłaściwy wskaźnik. Jak Adam Tornhill, założyciel i główny inżynier w CodeScene, zauważył w wywiadzie dla Thoughtworks, nawet do 70% czasu programisty jest poświęcone na zrozumienie istniejącego systemu, a nie na dodawanie do niego nowego kodu. Dążenie do ciągłego rozwoju nie tylko może prowadzić do błędnego postrzegania sytuacji, ale także odciągać programistów od zrozumienia, co naprawdę powinno zostać napisane.
Znaczenie czytelności kodu
Co, jeśli istotniejsza od szybkości tworzenia kodu jest jego czytelność? Martin Fowler, główny naukowiec w Thoughtworks, podkreśla: „Czytelność bazy kodu jest kluczowa dla szybkich zmian, ponieważ zrozumienie kodu jest niezbędne do efektywnych modyfikacji”. Asystenci kodowania, choć mogą przyspieszać proces pisania kodu, mogą być równie pomocni w przekładaniu kodu na bardziej zrozumiały język programowania lub w jego przepisywaniu, co przekłada się na nowe znaczenie słowa "czytelność".
Wyważone spostrzeżenia
Adam Tornhill zauważa, że obecnie sztuczna inteligencja sprawia, że łatwo jest napisać nadprogramowy kod, który w rzeczywistości nie jest potrzebny. Poleganie wyłącznie na sztucznej inteligencji do generowania kodu, zwłaszcza w przypadku kodu dziedzictwa (legacy code), wiąże się z ryzykiem. Potrzebujemy zatem alternatywnych sposobów wykorzystania sztucznej inteligencji. Kluczowe jest harmonijne współdziałanie programistów ze sztuczną inteligencją, a nie próba ich zastąpienia. Ludzie są teraz ważniejsi niż kiedykolwiek, zwłaszcza w kontekście wzmożonego użycia sztucznej inteligencji. Kompetentni programiści, wspierani przez tradycyjne narzędzia takie jak linters i recenzje kodu, są niezbędni do efektywnego wykorzystania potencjału sztucznej inteligencji.
Dążenie do równowagi
Zamiast pozostawiać sztucznej inteligencji samoistne generowanie kodu, powinniśmy traktować ją jako narzędzie wspierające doświadczonego programisty. W obliczu rosnącego wykorzystania sztucznej inteligencji w programowaniu ludzie są teraz ważniejsi niż kiedykolwiek, dlatego powinniśmy dążyć do równowagi we wszystkim, co robimy. Obecnie to idealny moment, aby dowiedzieć się, w jaki sposób sztuczna inteligencja może wspomagać konkretne procesy tworzenia kodu, przy zachowaniu nadzoru doświadczonych programistów.