Ajaj, czyli (nie tak) głupi asystent?
Kiedy na początku roku pisałem tekst o asystentach AI, używałem ich sporadycznie, głównie jako nieco bardziej rozbudowanych wyszukiwarek, i to w wersjach darmowych. Z komercyjnych produktów używałem wtedy tylko Gemini Pro, ale nie byłem tym rozwiązaniem zachwycony. Obecnie jestem już po kilkumiesięcznych doświadczeniach z komercyjnymi Claudem i Chatem GPT Pro, miałem wiele okazji do porównywania tych rozwiązań także podczas realizacji dość złożonych zadań, w tym - programistycznych. I o tym będzie dzisiaj.
Na co programiście programujące AI?
Można się zastanawiać, do czego programista może chcieć użyć AI, skoro sam potrafi pisać programy? Cóż, zadań jest całkiem sporo i większość z nich jest bardzo praktyczna, a ja zacząłem od analizy kodu. Czyli piszemy sobie jakąś funkcjonalność, która zdaje się działać prawidłowo, zaś agentowi AI zlecamy późniejszą kontrolę: czy nie zapomnieliśmy o czymś? Czy przewidzieliśmy wszystkie warunki brzegowe? Czy algorytm nie zapętli się albo przeciwnie, nie wykona się ani razu w różnych okolicznościach?
Tutaj praktycznie wszystkie modele AI (łącznie z instalowanymi i działającymi lokalnie w Ollamie) dawały sobie świetnie radę. Wskazywały problemy, upraszczały niektóre niepotrzebnie skomplikowane rozwiązania, wytykały złe praktyki i tak dalej. Tu oceniłbym przydatność tego typu asystentów bardzo wysoko.
Drugie poletko zastosowań upatrywałbym w rozwiązywaniu pojedynczych, często bardzo fragmentarycznych problemów. Powiedzmy, że chcemy podłączyć naszą aplikację do usług Google (miałem tak przy GadesList, która przechowuje kopię listy zadań na Dysku Google'a). Asystent AI opisze całą procedurę, wskaże miejsca aktywacji usług, generowania kluczy, pokaże przykład w kodzie, przygotuje wygodny i prosty test do sprawdzenia skuteczności rozwiązania. Nawet darmowy Chat GPT sobie z tym radzi bez problemów, chociaż czasem ma problem ze spójnością prezentowanych przykładów kodu.
No i na koniec zadania poważniejsze, czyli pisanie całych aplikacji i to w języku programowania, którego nie znamy - to już klasyczny vibe coding, o którym teraz trochę więcej.
Vibe Coding
Termin ten zdobył ostatnio popularność i to po obu stronach skali: niektórzy go nienawidzą, dla innych to objawienie. O co tu chodzi? Chodzi o możliwość zlecenia napisania przez AI kompletnego programu nawet osobie nie mającej pojęcia o programowaniu (albo nie znającej danego, wymaganego języka programowania). Opisujemy problem, definiujemy założenia i wymagania, a AI samo zajmie się wszystkim innym: wygeneruje kod, przeprowadzi testy, obada działanie programu na przykładzie wygenerowanych danych i na wyjściu dostajemy prawdziwy program, który zdaje się działać, zwykle całkiem nieźle wygląda i jedyne, co musimy zrobić, to poklikać w niego, by sprawdzić, czy faktycznie wszystko jest tak, jak sobie zaplanowaliśmy. A jeśli nie jest, to trzeba "ajajowi" zlecić poprawki. I więcej poprawek. Aż program zacznie działać albo stracimy cierpliwość.
Z jednej strony to jest fantastyczna sprawa dla osób, które uważały dotąd, że napisanie własnego programu to czarna magia, dostępna tylko dla brodatych wykolejeńców, żrących pizzę. Tymczasem - to przykład z życia - realizator dźwięku może obecnie stworzyć sobie wtyczkę VST, która robi dokładnie to, czego on potrzebuje, zamiast instalować trzy komercyjne wtyczki, robiące to po kawałku. Muzyk może "napisać" program, który oczyści mu pliki MIDI z niepotrzebnych danych albo posegreguje je w określony sposób. Bibliotekarz przygotuje sobie aplikację na Androida, która poskanuje kody kreskowe i ułatwi inwentaryzację. I to wszystko bez długotrwałych spotkań z zespołem deweloperskim, tłumaczeniem wymagań, kosztownymi zmianami tych wymagań w środku trwania projektu i tak dalej.
Z drugiej strony - to koniec programowania, jakie znaliśmy do tej pory. Czy tego chcemy, czy nie - programiści z "klepaczy kodu" staną się bardziej "architektami rozwiązania", po prostu nadzorując AI, by tworzyła kod odpowiedni do wymagań. I, wbrew pozorom, wcale nie czyni to programowania łatwiejszym - nie wiem, czy nie jest wręcz odwrotnie. Jednocześnie być może jesteśmy świadkami momentu, gdy do historii przechodzi stanowisko junior developer na określenie młodego "klepacza kodu", który dopiero zdobywa doświadczenie, poznaje świat "prawdziwych programistów"...
Czy AI daje radę?
A jak sobie AI daje radę w tym całym vibe codingu? Czy tego typu aplikacje mają sens, czy działają i da się z nich korzystać? To ciekawe zagadnienie.
Ostatnie tygodnie (tak chyba od września 2026) są okresem, kiedy vibe coding zdaje się święcić tryumfy. Jak grzyby po deszczu, błyskawicznie, powstają nowe - i to rozbudowane - aplikacje. Mamy już "ajajowe" klony Photoshopa, Lightrooma, Worda, Excela, RX, które wyglądają niemal jak oryginały i prawie działają. To znaczy, niektóre rzeczy działają dobrze, inne słabo, a jeszcze inne - w ogóle. To bardzo charakterystyczny rys: na rynku ni z tego, ni z owego pojawia się świetnie wyglądająca i bardzo rozbudowana aplikacja, stworzona przez nikomu nieznaną firmę czy twórcę. To sygnał, że w pisaniu wykorzystano "ajaja" - nie ma siły i nie ma takich możliwości, by jakiś mały zespół programistów (czy wręcz pojedynczy człowiek) był w stanie napisać coś mocno rozbudowanego i jednocześnie dysponującego wygodnym i estetycznym interfejsem użytkownika w parę dni. Bez asysty "ajaja" to są tygodnie, a nawet miesiące pracy, testów, sprawdzania, poprawiania. Moje proste w gruncie rzeczy rozszerzenie dla Fender Studio Pro, mimo częściowego wsparcia przez AI (głównie w kwestii analizy kodu i szukania rozwiązań w nieoficjalnym API), zajęło mi miesiąc - a miałem już większość algorytmów i pomysłów, napisanych wcześniej w Pythonie! Większość tego czasu to przede wszystkim testy i poprawki - nieodłączna część programistycznej roboty, która jeszcze nieprędko zostanie zastąpiona przez AI. Chociaż sprawiedliwie trzeba napisać, że i Claude, i Chat GPT Pro mają już możliwości uruchomienia aplikacji okienkowej i "klikania" po niej - na razie jest to jednak bardzo ułomne, a i żaden z tych modeli nie był w stanie OCENIĆ, czy interfejs użytkownika jest ergonomiczny, wygodny czy czytelny.
Ciekawy jest jeszcze jeden aspekt, który jakoś obecnie umyka entuzjastom vibe codingu. Wielu "przedsiębiorcom" zaświeciły się oczy na myśl o górach dolarów, które teraz można będzie zarobić bez wysiłku - wystarczy zlecać "ajajom" pisanie różnych programów i tylko liczyć na koncie kasę ze sprzedaży licencji. A istnieje przynajmniej kilka pułapek na tej ścieżce.
Po pierwsze - niekontrolowany vibe coding po prostu nie działa. Im bardziej złożona aplikacja, tym większa szansa, że bez porządnych testów i poprawek duża jej część po prostu nie będzie działała zadowalająco, zniechęcając użytkowników (patrz przykład Fluffy Audio FFT). Po drugie - kto ma właściwie prawa do powstałego kodu? Czy ktoś, kto go tylko przejął po wygenerowaniu? Czy firmy tworzące modele AI nie będą chciały uszczknąć czegoś z pojawiającego się tortu? Oczywiście, że będą chciały i wkrótce mogą pojawić się (o ile już się nie pojawiły) obostrzenia w licencjach subskrypcyjnych, które nałożą konieczność dzielenia się wpływami z dostawcą usługi.
Po trzecie w końcu - być możne najważniejsze - dlaczego ktoś ma w ogóle płacić za niedostestowany vibe code, skoro... może go sobie stworzyć samodzielnie? I to w dodatku taki, który będzie lepiej dopasowany do potrzeb, a później jeszcze dobrze przetestowany w praktyce? I o ile na razie jeszcze niewiele osób wie, że może takie programy "pisać" samodzielnie (albo nie ma dostępu do odpowiednio zaawansowanego modelu AI), to nie jest powiedziane, że w pewnym momencie takich możliwości nie da sam system operacyjny. Co stoi na przeszkodzie, by za parę lat Windows czy Linux dały możliwość użytkownikowi, by po prostu opowiedział, co chce zrobić, a one w tle przygotują odpowiednią aplikację, która właśnie TO zrobi?
Koniec programowania
Nie, to nie jest koniec programowania i programistów. To jest koniec pewnej ery, tak jak swego czasu zniknęli programiści używający kart perforowanych, potem operatorzy dalekopisów czy "wymiatacze" Cobola. Myślę, że obecnie dojdzie do kolejnego rozwarstwienia, na deweloperów programujących "niskopoziomowo", czyli kontrolujących ciągle bazowy kod źródłowy, i owych "architektów", którzy będą stosować "kontrolowany" vibe coding. A ten stanie się powoli standardem, bo po dopracowaniu modeli AI w panowaniu nad złożonymi projektami, będzie to po prostu rozwiązanie prostsze i tańsze. Jeśli biznes już w tym utknie (a utknie, bo koszty!), to już nie będzie za bardzo wyjścia. No i na samym końcu możemy mieć proste aplikacje tworzone ad hoc przez asystentów AI na doraźne żądania użytkowników.
Bez wątpienia jesteśmy zatem świadkiem zmiany - czy okaże się ona rewolucyjną, pokaże czas.
Komentarze
Prześlij komentarz