Wykorzystanie nowoczesnych narzędzi do maksymalizowania efektywności nie jest już opcją – to konieczność. Programiści na całym świecie sięgają po inteligentne rozwiązania, które pozwalają przyspieszyć procesy, zwiększyć precyzję i zredukować czas dostarczania projektów na rynek. Dzięki narzędziom takim jak Cursor AI, przyszłość programowania nigdy nie wyglądała jaśniej.
Tak.
To nie mój wstęp.
BTW, ciekawe czy jest już coś na wzór narzędzia ZeroGPT, które sprawdza czy kod jest napisany przez AI?
Może kiedyś trafię na coś takiego… albo ktoś wrzuci o tym pytanie na Stack Overflow.
Stack Overflow?
Ale ze mnie boomer!
Szorstka przyjaźń
Czy myślałeś kiedyś, że zatęsknisz za Stack Overflow? Ja też nie. A jednak.
Moje doświadczenia z programowaniem (zaczęły się w 2014 roku) to zawsze była szorstka przyjaźń ze Stackiem. Szorstka, bo często odpowiedzi na pytania, które miałem, owszem były, ale niekoniecznie powodowały, że czegoś się uczyłem. Główne zalety mojego kodu były takie, że robił to, co miał robić, a ja nie pytałem, dlaczego.
Od CoPilota do Cursor AI
Po dekadzie dalej nie jestem dobrym programistą, ale zachęcony kursem AI_DEVS przesiadłem się z CoPilota (od GitHuba) w VS Code na Cursor AI, czyli IDE, które ma AI w trybie composer (a nie tylko chatu) – piszesz, czego dokładnie potrzebujesz, a AI generuje wszystko, razem z plikami i poleceniami w konsoli.
Przejście na ten tryb zmieniło dużo i przez dłuższy czas, starałem się nie napisać nawet jednej linijki samodzielnie, a samego generowanego kodu nawet nie sprawdzałem. Patrzyłem tylko czy działa.
Jak komuś się teraz zapaliła czerwona lampka, to prawidłowo – przejście na ten tryb to jak otwarcie portalu, za którym czeka chaotic evil AI, zapewniając cię, że zaraz napiszesz najlepszy skrypt w życiu. Co może pójść nie tak?
Dokąd prowadzi królicza nora?
I tu dochodzimy do sedna kodowania z AI. Z jednej strony generowanie kodu przez AI brzmi jak marzenie. Z drugiej – to marzenie szybko przeradza się w koszmar, kiedy AI usuwa działające rozwiązanie na rzecz „bardziej optymalnego”.
Czasami dochodzi się do momentu, gdy żadne rozwiązanie nie działa, a AI wchodzi w tryb „ja tego nie zrobię? Hold my blue pill”.
Wtedy może zadziać się dużo. Jeśli będziemy zgadzać się na wszystko, to możemy skończyć z połową kodu, bo AI zdecydowało, że funkcja, która robi coś w innym module, jest niepotrzebna i zostaje całkowicie usunięta.
Polecam tutaj regularne commitowanie zmian w Gicie i pushowanie ich na zewnętrzne repozytorium. Dzięki temu zawsze będzie dostęp do działających wersji kodu, bo AI w pewnym momencie też „straci pamięć” i nie wróci do poprzedniej wersji – będzie oczywiście oszukiwać, że wie, jaka była ostatnia działająca wersja, no ale nie wie :).
Ostatecznie trzeba naprawić to, co AI zepsuło, czasem z lepszym, czasem z gorszym skutkiem.
Tak, wydaje się, że programuję się szybciej, ale jednocześnie pracuję się dłużej, bo więcej się poprawia.
I to jest chyba najlepsza definicja współpracy z AI w 2024/25 roku.
Wiem, że ten stek nie istnieje
Oczywiście są momenty, kiedy AI faktycznie daje radę. Kiedy potrzebujesz szybko napisać prosty skrypt np. do wyciągania rekordów z bazy, oczyszczania, formatowania i przerzucania do Excela, to Cursor AI zrobił to w sekundę – coś, co normalnie zajęłoby mi pół godziny.
Kod zadziałał od razu, bez poprawek. Przez tę sekundę miałem wrażenie, że nadszedł ten moment, w którym człowiek i maszyna tworzą idealny duet. No ale bardzo szybko mi przeszło.
Human beings are a disease, a cancer of this planet. You’re a plague, and we are the cure.
AI-driven development potrafi wyprowadzić z równowagi. Masz wrażenie, że idziesz do przodu, ale po jednym kroku w przód, robisz trzy w tył (albo dziesięć).
Z jednej strony AI rozwiązuje problemy w mig, ale z drugiej irytacja czasami powoduje zagotowanie. Gdy wracam po czasie do rozgrzebanych projektów, od razu widzę po stylu „rozmowy”, ile nerwów mnie ten skrypt kosztował.
Czy jestem z tego dumny? No nie.
Czy tak to wygląda u wszystkich? Czas pokaże.
I to jest fascynujące we wszystkim AI-driven – AI potrafi stworzyć rozwiązanie, zarekomendować je, wdrożyć, a potem, w następnej iteracji, dojść do wniosku, że dokładnie to, co stworzyło, jest źródłem problemu i trzeba to usunąć.
Co więcej, usunięcie tego elementu prowadzi z powrotem do problemu, który próbowaliśmy rozwiązać na początku – w tym przypadku^ do duplikatów w Excelu. Innymi słowy, każda iteracja nie tyle naprawia problem, co usuwa błędne założenia i kod z poprzedniej iteracji, zamiast faktycznie rozwiązać pierwotny kłopot.
Kontrola podstawą zaufania
Bardzo często spotykam się z tym, że po 13 próbie naprawy problemu – AI stara się zmienić podejście do problemu i zamiast naprawiać w kółko to samo (bez efektów) – zaczyna pisać, że w sumie to od początku wszystko było bez sensu. Robi w to taki fajny, ukryty sposób, tak żebyś sam wywnioskował ;)
I to jest właśnie to – póki co AI może tworzyć kod, analizować go, a potem samo (lekko nakierowane) dojść do wniosku, że zrobiło głupotę. Ale po chwili o tym i tak zapomni.
Bez logicznego myślenia i kogoś, kto spojrzy na to z boku, ciężko zbudować cokolwiek bardziej skomplikowanego niż kalkulator.
Może niedługo AI ogarnie takie rzeczy samo, ale na razie to bardziej przypomina juniora na pierwszym stażu – entuzjazm jest, ale z wynikami bywa różnie.
Czy AI już przejęło kontrolę nad moim kodem?
Czy rzeczywiście tęsknie za Stack Overflow? Może trochę, kod który kopiowałem może zupełnie nie pasował do mojego poziomu zaawansowania i skryptu, ale przynajmniej nie stwierdzał, że lepiej będzie skasować coś co działało.
Z AI jest szybciej. Ale jest też dziwniej. Czy to przyszłość programowania? Na pewno. Przynajmniej w tym roku.
Czy teraz jest idealnie? No nie. Ale przynajmniej mam z kim się kłócić o deduplikację w Excelu.
Póki co, bo wiadomo co nas czeka.
Nie jest. Ale się stara :)