Od kilku lat sztuczna inteligencja wchodzi do naszego życia w coraz to nowych formach. Zwłaszcza w branży IT i programowania, narzędzia AI mają za zadanie ułatwić życie – generować fragmenty kodu, podpowiadać rozwiązania i przyspieszać pracę. W praktyce jednak bywa inaczej. Najciekawsze jest to, że doświadczeni programiści często spędzają z tymi narzędziami więcej czasu, niż gdyby pisali kod ręcznie. Jak to możliwe? Przyjrzyjmy się temu bliżej.
Od kiedy pojawiły się pierwsze narzędzia wspierające programowanie z wykorzystaniem sztucznej inteligencji, wokół nich narosło sporo entuzjazmu. Automatyczne podpowiedzi, generowanie kodu, szybsze pisanie funkcji, gotowe fragmenty rozwiązań — brzmi to jak coś, co powinno zrewolucjonizować codzienną pracę przy komputerze PC. I faktycznie, rewolucja jest — tylko że nie zawsze w tę stronę, w którą się spodziewano.
Na papierze wszystko wygląda obiecująco. Instalacja popularnych rozszerzeń, takich jak GitHub Copilot czy dodatki do Visual Studio Code, przebiega sprawnie. Już po chwili pojawiają się sugestie i gotowe linie kodu. Wydaje się, że można się oprzeć wygodnie, skupić na logice, a techniczne aspekty narzędzie zrobi za nas. Tyle że rzeczywistość szybko to weryfikuje.
W badaniu przeprowadzonym przez organizację METR przyjrzano się pracy doświadczonych programistów, którzy mieli za zadanie rozwiązać 246 zadań w znanych im repozytoriach. Na starcie uczestnicy zakładali, że sztuczna inteligencja pozwoli im przyspieszyć pracę nawet o jedną czwartą. Po wykonaniu zadań nadal byli przekonani, że AI pomogło – subiektywnie ocenili, że poszło szybciej. Problem w tym, że dane pokazały coś zupełnie odwrotnego: realnie wykonanie zadań z pomocą AI zajęło im średnio o 19% więcej czasu. Co więcej, tylko 44% wygenerowanych przez AI sugestii zostało zaakceptowanych bez zmian, a około 9% całego czasu pochłonęła konieczność poprawiania kodu, który okazał się nieprzydatny lub błędny.
To, co miało skracać czas pracy, nierzadko zaczyna go wydłużać. Zamiast jednej wersji rozwiązania pojawia się pięć, a każdą trzeba przeanalizować. Kiedy system podpowiada coś błędnego lub niezoptymalizowanego, trzeba najpierw zrozumieć intencję, potem zweryfikować zależności w projekcie, a na koniec przepisać wszystko tak, jak powinno wyglądać od początku.
Nie chodzi o to, że AI nie działa. Chodzi o to, że nie zna kontekstu. A bez kontekstu nie da się pisać dobrego kodu, zwłaszcza w większych, rozbudowanych aplikacjach.
Dużo mówi się o oprogramowaniu, ale zbyt rzadko bierze się pod uwagę kwestię sprzętu. Praca z AI generującą kod to nie tylko kwestia rozszerzenia w edytorze — to również obciążenie dla procesora, pamięci RAM, a w niektórych przypadkach nawet karty graficznej.
Na nowoczesnym ultrabooku z procesorem Intel Core i7 i szybkim dyskiem SSD wszystko działa płynnie. Podobnie na MacBookach Pro z chipami M1 lub M2. Ale w środowisku o ograniczonych zasobach — starszy laptop, mniej pamięci operacyjnej — nawet zwykłe sugestie mogą powodować opóźnienia, lagi i nieprzyjemne ścinki podczas pisania. To sprawia, że nawet dobrze zaprojektowane narzędzie traci na użyteczności. Programista nie tylko czeka na reakcję systemu, ale zaczyna też tracić rytm pracy. A w programowaniu rytm ma znaczenie.
W pewnym momencie pojawia się pytanie: co lepsze — szybkość narzędzia, które może się pomylić, czy dokładność wynikająca z samodzielnej analizy i pisania kodu od podstaw? Nie ma jednej odpowiedzi. Wszystko zależy od projektu, od etapu prac, od oczekiwań.
W praktyce jednak bywa tak, że automatyzacja potrafi zadziałać odwrotnie niż zakładano. Zamiast oszczędności czasu pojawia się dodatkowy koszt: czas poświęcony na korekty, testy i analizę kodu wygenerowanego przez maszynę. Kiedy dochodzą do tego jeszcze opóźnienia wynikające z ograniczeń sprzętowych, efekt bywa frustrujący. Warto na to spojrzeć z nieco innej strony. Sztuczna inteligencja nie jest magicznym skrótem. To nie jest guzik "rozwiąż za mnie". To raczej asystent, który rzuca pomysłami — czasem trafnymi, czasem kompletnie nie na miejscu. A każdy z tych pomysłów trzeba sprawdzić i przetestować.
Tym samym AI staje się narzędziem, które działa dobrze wtedy, gdy programista potrafi z niego korzystać świadomie. Gdy nie traktuje go jako zastępstwa, ale jako wsparcie. I kiedy wie, jak oddzielić użyteczne sugestie od tych, które mogą zaszkodzić projektowi.