arrow_left_alt

Blog

Czy AI zastąpi programistów? Oto co myślimy!

June 12, 2025
AI zastąpi programistów

Mówiąc wprost: Nie, i na pewno nie zastąpi ich w najbliższym czasie.

Pomimo całego szumu i nagłówków przepowiadających koniec karier programistycznych, rzeczywistość wygląda zupełnie inaczej. Po niezliczonych rozmowach z programistami z różnych specjalizacji, jeden wzorzec pojawia się konsekwentnie: im więcej wiedzy masz w danej dziedzinie, tym bardziej widoczne stają się ograniczenia AI.

Choć AI okazało się niezwykle skuteczne w prostych zadaniach - pisaniu małych funkcji, tłumaczeniu kodu między językami, formatowaniu danych i automatyzacji powtarzalnych procesów - konsekwentnie ma problemy ze złożonymi, wielkoskalowymi wyzwaniami programistycznymi. Niezależnie od tego, czy pracujesz w Pythonie, JavaScript, Javie czy jakimkolwiek innym języku, narzędzia AI uderzają w tę samą ścianę, gdy projekty wykraczają poza proste, odizolowane zadania.

Spójrzmy na następujące przykłady:

Przykład #1: Integracja Sylius/Symfony z Loco 

Zadaniem programisty była integracja tłumaczeń z Sylius/Symfony z platformą Loco (localize.biz)

Projekt obejmował integrację tłumaczeń przy użyciu PHP i bash w ramach frameworków Symfony i Sylius 2.0. Choć niestandardowy plik tłumaczeń zawierał tylko 220 kluczy, złożoność wynikała z faktu, że polecenie tłumaczeń Symfony zbierało tłumaczenia z wielu źródeł: niestandardowego pliku, front-endu, panelu administracyjnego Syliusa oraz różnych zainstalowanych bundli i wtyczek, tworząc znacznie większy zbiór danych do zarządzania.

Zalety: AI pomogło z podstawową konfiguracją 

AI dobrze poradziło sobie z prostymi zadaniami na początku, takimi jak:

  • Instalacja wymaganych pakietów Loco w Symfony
  • Tworzenie podstawowych poleceń shell do wysyłania i pobierania tłumaczeń

Co warte podkreślenia, wszystko to było dobrze udokumentowane w oficjalnej dokumentacji Loco.

Wady: AI zawiodło przy złożonym problemie 

Prawdziwe wyzwanie pojawiło się w momencie, gdy system bez problemu obsługiwał małe pliki tłumaczeń (do 300 kluczy), jednak przy większych plikach zaczynał zawodzić – pojawiały się przekroczenia czasu serwera oraz ograniczenia narzucone przez API Loco. Aby rozwiązać ten problem, konieczne było stworzenie niestandardowego polecenia Symfony, które:

  • zbierze wszystkie tłumaczenia (łącznie około 2200 kluczy),
  • podzieli tłumaczenia na łatwiejsze do zarządzania fragmenty i zapisze je na dysku,
  • utworzy oddzielne polecenia do wysyłania każdego fragmentu, 
  • zbuduje polecenie do pobierania przetłumaczonych wiadomości.

Deweloper przetestował cztery czołowe modele AI. Tylko dwa z nich w ogóle zbliżyły się do zrozumienia, na czym polegało zadanie. Pomimo wielu rozmów i dziesiątek poprawek, żaden z modeli nie był w stanie poprawnie zebrać wszystkich tłumaczeń. Jeden z nich zdołał wyodrębnić 1500 kluczy, ale to wciąż była tylko część całości. Problemy pojawiały się na każdym etapie:

  • 1500 kluczy nie zostało prawidłowo zapisanych na lokalnym serwerze,
  • nawet po uproszczeniu zadania do "wyodrębnienia wszystkich wiadomości" AI nie dawało sobie rady,
  • każda próba prowadziła do nowych błędów i komplikacji.

<div class="rtb-text-box is-blue-50">Wniosek: Ostatecznie potrzebny okazał się backend developer z solidnym doświadczeniem w Symfony. To, co wygenerowało AI, mogło jedynie posłużyć jako punkt wyjścia – i to taki, który wymagał wielu poprawek. W przypadku tak złożonych zadań, korzystanie z AI może pochłonąć tyle samo czasu, co stworzenie rozwiązania od podstaw – z tą różnicą, że po drodze napotkamy znacznie więcej przeszkód.</div>

Przykład #2: Twig - przekazywanie „variables” z oddzielnego pliku 

Deweloper chciał zdefiniować konfigurację menu — zawierającą etykiety pozycji, ikony i ścieżki - w jednym pliku, a następnie wykorzystać ją w dwóch różnych miejscach w szablonach Twig.

Projekt oparty był na Twig/HTML w środowisku Symfony, ale ograniczenie, z którym się zetknął, dotyczy większości standardowych integracji z Twigiem - z wyjątkiem bardziej zaawansowanych, mocno zmodyfikowanych systemów jak Craft CMS. Mimo że deweloper od początku podejrzewał, że Twig nie umożliwia takiej funkcjonalności wprost, postanowił spróbować - z nadzieją, że może jednak istnieje sposób, którego jeszcze nie zna.

Zalety: AI było pewne siebie i przekonujące 

Deweloper skonsultował się z trzema głównymi modelami językowymi i wszystkie twierdziły, że można to zrobić. Przez około godzinę dostarczały rozwiązania, które brzmiały całkowicie wiarygodnie i były dobrze uzasadnione. Ich wyjaśnienia były szczegółowe i wydawały się technicznie poprawne.

Wady: AI całkowicie się myliło co do fundamentalnych ograniczeń Twig 

Żadne z rozwiązań nie działało. Gdy deweloper informował AI o napotykanych problemach, dalej upierało się, że to możliwe i oferował coraz bardziej złożone obejścia. Każde pojedyncze podejście kończyło się niepowodzeniem.

Szybkie przeszukanie Stack Overflow potwierdziło pierwotną intuicję: po prostu nie da się tego zrobić. Użytkownicy wyjaśnili z jasnymi przykładami, jak importowane pliki Twig są konwertowane na prywatne funkcje PHP, co uniemożliwia przekazywanie „variables” z powrotem do szablonu nadrzędnego. Gdy programista sprawdził skompilowane pliki cache na serwerze, potwierdziło się to, co opisywali użytkownicy - znalazł prywatne klasy PHP bez możliwości udostępniania zmiennych do szablonu nadrzędnego.

<div class="rtb-text-box is-blue-50">Wniosek: AI nie radzi sobie z pracą w Twig, ponieważ nie rozumie, w jaki sposób Twig kompiluje się do PHP. Funkcje Twiga opierają się na PHP, ale działają w zupełnie innym kontekście - AI często błędnie zakłada, że rozwiązania napisane w czystym PHP będą działać bezpośrednio w Twig. Nie działają, nie mogą działać i nigdy nie będą działać - a mimo to AI zdaje się ignorować to podstawowe ograniczenie.</div>

https://bitbag.io/pl/blog/8-najlepszych-narzedzi-ai-dla-ecommerce

Podsumowanie

Jak pokazują powyższe przykłady, AI świetnie sprawdza się w prostych zadaniach - potrafi wygenerować podstawowe metody czy ograniczyć konieczność powtarzalnego kodowania. Jednak przy pracy z rozbudowanymi frameworkami i bardziej złożonymi wyzwaniami integracyjnymi regularnie zawodzi.

Nawet gdy uda mu się wygenerować coś użytecznego, wciąż potrzebny jest doświadczony programista, który zweryfikuje, poprawi i rozwinie to rozwiązanie. AI może być pomocnym asystentem przy prostych działaniach, ale nadal jest dalekie od poziomu, który pozwoliłby zastąpić wiedzę, doświadczenie i umiejętność rozwiązywania problemów, jakie wnosi do projektu kompetentny deweloper.

<div class="ml-form-embed"
 data-account="2253895:i2a9g5f0y9"
 data-form="6053742:r9l4b3">
</div>