Cześć, pasjonaci Linuksa, otwartych technologii i czystego kodu! Na poznajlinuxa.pl często dyskutujemy o tym, w jakim kierunku zmierza branża IT. Obecnie nic nie elektryzuje nas bardziej niż sztuczna inteligencja i duże modele językowe (LLM). GitHub Copilot, ChatGPT, Claude – narzędzia te obiecują, że wkrótce będziemy tylko „dyktować” polecenia, a potężne systemy napiszą się same. Ale czy na pewno?
Niedawno Kent Beck – absolutna legenda inżynierii oprogramowania, ojciec chrzestny metodyk Agile, twórca Extreme Programming i TDD – podzielił się swoimi przemyśleniami podczas wystąpienia „Software Engineering in the Age of AI”. Jego diagnoza to kubeł zimnej wody dla hurraoptymistów, a zarazem potężna lekcja prawdziwego, inżynierskiego rzemiosła.
Oto dlaczego AI nie zastąpi Twojego zaangażowania, a czysty kod jest dziś ważniejszy niż kiedykolwiek.
Poznajcie „Dżina” (który uwielbia iść na skróty)
Kent Beck wprost nazywa generatory kodu oparte na AI „Dżinami” (Genies). Wypowiadasz życzenie, Dżin błyskawicznie je spełnia, ale… niemal zawsze z jakimś haczykiem.
Obecne modele językowe są wręcz wybitne w tworzeniu kodu „prawdopodobnego”. Wygenerowane funkcje wyglądają profesjonalnie, składnia jest idealna, a struktura wydaje się poprawna. Problem w tym, że bardzo często ten kod po prostu nie działa tak, jak powinien w rzeczywistym, produkcyjnym środowisku. Dżin nie ma zmysłu architektonicznego – idzie na skróty i wprowadza subtelne błędy, zachowując się jak sprytny nastolatek, który chce po prostu „dowieźć” zadanie i mieć spokój.
Zamiast stwórcą, programista staje się dziś audytorem. Musisz przyjąć wobec kodu z AI postawę sceptyczną, wręcz detektywistyczną. Bez Twojej wiedzy i dbałości o testy (nie zapominajmy o potędze TDD!), projekt szybko runie jak domek z kart.
Opcjonalność kontra Funkcjonalność (Features vs. Futures)
To chyba najmocniejszy punkt wystąpienia Becka. Każdy projekt oprogramowania ma określoną pulę elastyczności – opcji na przyszłą rozbudowę (Futures). Każda nowo dodana funkcja (Feature) zjada część tej elastyczności, komplikując system.
Kiedyś, w erze przed AI, napisanie kodu tak potwornie zagmatwanego, by nie dało się w nim już nic bezpiecznie zmienić, wymagało lat pracy całych zespołów programistów. Dziś? Kent Beck śmieje się (przez łzy), że dzięki pomocy AI jeden programista w zaciszu własnego pokoju potrafi wygenerować zablokowany, niemożliwy do utrzymania „wielki bałagan” w zaledwie tydzień!
Szybkość LLM-ów to pułapka. Pompujemy w projekt kolejne wygenerowane funkcje, błyskawicznie paląc elastyczność architektury i zaciągając gigantyczny dług technologiczny.
Odpoczywaj „między nutami”
Jak się przed tym bronić? Beck przywołuje anegdotę o słynnym wiolonczeliście, Pablo Casalsie. Ktoś zapytał go, jak to możliwe, że nie męczy się, grając niewyobrażalnie szybkie i trudne pasaże szesnastkowe. Casals miał odpowiedzieć: „To proste. Odpoczywam między nutami”.
To samo musimy dziś robić z AI. Kiedy Dżin wygeneruje dla Ciebie nową, działającą funkcjonalność, nie proś go od razu o kolejną. Zatrzymaj się. Wykorzystaj tę „pauzę” na:
- refaktoryzację kodu,
- usunięcie duplikacji,
- poprawę czytelności,
- napisanie niezawodnych testów,
- odbudowanie elastyczności systemu (Futures).
Prawdziwy, czysty kod powstaje właśnie w tych momentach ciszy i refleksji, a nie w amoku generowania kolejnych linijek przez prompty.
Nowe oblicze rzemiosła (Software Craftsmanship)
Pojęcie programistycznego rzemiosła ewoluuje. W świecie, w którym AI natychmiast potrafi zinterpretować, przetłumaczyć i przeformatować każdy kod, układ spacji czy idealne nazewnictwo zmiennych tracą na strategicznym znaczeniu.
Prawdziwym rzemiosłem staje się dziś mądre balansowanie między wdrażaniem nowości a stabilnością architektury. To umiejętność krytycznego myślenia i nieulegania „magii wielkich liczb”. Wygenerowanie przez AI 200 000 linii kodu to żadne osiągnięcie – to tylko „wysiłek” (Effort). Prawdziwą misją (Mission) inżyniera jest dostarczenie stabilnego rozwiązania, które wnosi wartość i będzie można je utrzymać za rok, dwa i dziesięć lat.
Podsumowanie
Dla nas, fanów Linuksa i filozofii UNIX-a, przekaz jest jasny: rób jedną rzecz, a dobrze. LLM to potężny dopalacz (Augmented Development), który pozwala nam testować śmiałe i szalone idee szybciej niż kiedykolwiek. Jednak ostatecznie to człowiek, jego uwaga, zaangażowanie i wiedza inżynierska decydują o tym, czy tworzymy solidne oprogramowanie, czy tylko cyfrowe śmieci.
Bawcie się promptami, korzystajcie z pomocy Dżina, ale pamiętajcie: prawdziwy rzemieślnik nigdy nie oddaje kontroli nad swoim dziełem ślepej maszynie. Kodujcie z głową!
A jak Wy korzystacie z narzędzi AI w swoich codziennych zadaniach na Linuksie?! Warto się nad tym chwilę zastanowić, nieprawdaż 🙂