AI koduje lepiej ode mnie. I to jest dobra wiadomość.
Poczyniłem takie stwierdzenie na jednym z podcastów, które ostatnio nagrałem. Byłem gościem, a nie prowadzącym. To jest teza odważna i jednocześnie wystawia mnie na interesujące kontr-argumenty, które będą krążyć dookoła "to widocznie jesteś słabym programistą". Wrócimy do tego w dalszej części tego eseju. Retorycznie można zostawić pytanie: co znaczy, że ktoś jest "silnym" programistą, co znaczy, że ktoś jest "słabym" programistą?
Z placu boju
Podjąłem ostatnio nowy kontrakt, bardzo poważny w bardzo poważnej instytucji. Mija właśnie 1.5 miesiąca, a ja nie napisałem ręcznie ani jednej linijki kodu (czy to niebezpieczne o tym pisać?). Wszystko zrobił Codex. Oczywiście to nie tak, że mówię co ma zrobić, idę na kawę i puszuję to, co zaproponował. Zwykle proces wygląda tak, że jest to kilka iteracji, i cyzelujemy wspólnie rozwiązanie z jednej na drugą. Aż jestem usatysfakcjonowany z efektu. Czy nie trwa to dłużej? Nie, nie trwa dłużej, zajmuje mniej czasu.
Ma to podejście zaś swoje ograniczenia i "ciemne" strony. I to widzę i poważnie się z tym gryzę - bo z jednej strony ilość PRów (pull request) i ilość comittów i nawet ten nieszczęsny LOC (lines of code) - to wszystko wygląda bardzo dobrze. Jeśli przyjąć (w uproszczeniu), że to dostarcza wartość biznesową, to ja tę wartość biznesową dostarczam. Z drugiej zaś strony - ponieważ nie robię map kodu w swojej głowie, a właściwie robię - ale nie tak szybko jak kiedyś, bo nie wchodzę w tryb ręczny, głęboki to dużo wolniej łapię zaszyte tam koncepty. To jak w inżynierii - wszystko jest trade-offem. Coś za coś. Myśle, że duża część programistów mierzy lub będzie się mierzyła - dokładnie z tym samym problemem. AI zachęca do wyjścia na kolejny poziom abstrakcji. I tu zaczynają się schody.
Schody
Programowanie historycznie jest bardzo ciekawe. Chodzi o to, że etap projektowania jest bardzo ściśle powiązany z etapem budowania. To przecież robimy - mapujemy problem, proponujemy architekturę w kodzie, a potem ją implementujemy. Dopiero nie tak dawno temu powstała rola Architekta Systemów IT, tak, ale to jest gość, który spina systemy na poziomie abstrakcji wyżej: co z czym gada i czego potrzebujemy w tym systemie i jak ze sobą gada. Niskopoziomowe decyzje są nadal w rękach programistów: jak zorganizować pliki w projekcie, jak ustrukturyzować klasy, jakie metody zrobić prywatnymi, a jakie publicznymi. I to się nie zmienia od lat.
Zwróć uwagę, że to wygląda inaczej np. u architekta, który projektuje mosty, czy domy. Jak już masz ten prestiż, to ten most jest Twój. Mówi się: to most projektanta Iksińskiego. Nie mówi się: to most firmy BudPol i jej wykonawców. U nas to połączenie między wykonawcą a obiektem jest ścisłe, do tego stopnia, że dotyka tożsamości.
I tu pojawia się pytanie: skoro nie mogę być już programistą, bo kodowanie nie jest już żadnym wyróżnikiem - to kim jestem?
Ból egzystencji
Zauważ, to nie jest problem techniczny. To jest problem egzystencjalny!
Gdyby problem był techniczny - to ci, którzy są przeciw przyłożyli by swoje inżynieryjne ramy myślenia i powiedzieliby: to ma sens tu, to nie ma sensu tam. Ale to się nie dzieje w tych obozach, tam jest AI-populizm: scam, wydmuszka, AI nic nie potrafi. Altman chce zarobić. I tak dalej i dalej. To nie są argumenty, z którymi da się dyskutować, podobnie jak nie da się dyskutować z kimś, kto twierdzi, że ziemia jest płaska.
Jeśli problem jest egzystencjalny, to trafia on w same trzewia, i wielu ludzi myślę to czuje. W kulturze, która przekonała nas, że jesteś lekarzem, prawnikiem, programistą... i tylko tym - to jest jak bezpośredni atak na to, co konstytuuje nasze istnienie. AI i ta rewolucja jest zagrożeniem, bardzo poważnym, bo wymusza śmierć ego. A to z kolei niesamowicie trudna sprawa. Dokładnie z tego źródła idzie cały ten opór przeciw. Prawdopodobnie to samo było gdy wymyśleliśmy krosna tkackie. A dla wybitnie dociekliwych i lubujących się w takich historiach:
- poszukaj, co znaczą: Among these dark Satanic Mills? w wierszu Williama Blake'a z 1811 roku
- kim był King Ludd, i jak "religijny" ruch stworzył
- jak wyglądała historia James Hargreaves po tym jak wymyślił spinning jenny
To jest dokładnie ten sam ładunek emocjonalny, ten sam strach przed nieznanym. Ucywilizowaliśmy się jedynie nieco - tak nikt nie pali serwerowni z AI (jeszcze!) - dark Satanic Mills.
Inżynier wojujący z AI — nie walczy z AI, tylko z tą pustką po. Jeśli nie "kodowanie", to co zostaje?
I tu dochodzę do jednego z kluczowych wniosków w czasach obecnych, i nie chodzi tylko o programistów, mianowicie: dywersyfikacja tożsamości, jest już czymś więcej niż tylko hobby, to staje się warunkiem przetrwania, bo wszystko wskazuje na to, że zmiany zachodzące na świecie będą tylko przyspieszać. I to nie chodzi tylko o to jak szybko jesteś w stanie postawić landing page.
To jest adaptacyjność na poziomie jednostki. Silny środek, luźno trzymający koncepty. Tu: czy robisz to w IDE, czy z codexem - przestaje mieć techniczne znaczenie, zostało jedynie znaczenie, które jest związane z Tobą jako twórcą.
Rzemiosło i McLuhan
Harold Innis - zaproponował pewien bardzo ciekawy podział przestrzeni medialnej w latach 50 ubiegłego wieku, rozdzielił je na:
- space-biased (wolne tłumaczenie: zabarwione przestrzenią) - efemeryczne, jak radio, telewizja i prasa, dociera do wielu ludzi - ale ma krótki czas ekspozycji (gazetę po przeczytaniu się zwykle wyrzuca). To są te media, które ideowo stoją za szybką zmianą, materializmem, sekularyzmem i mocarstwowością.
- time-biased (zabarwione czasem) - glina, kamienne tabliczki, ręczne kopie, manuskrypty, i źródła mówione - jak Homer. Funkcją tych jest niesienie narracji i opowieści, które trwają przez pokolenia. Mają tendencje do docierania do mniejszej grupy ludzi. (Kto zna wiersze Williama Blake'a?)
AI jest wybitnie zabarwione przestrzenią. Sprawia, że wszystko można zrobić szybciej - o ile decyzje są podjęte. Przesunęliśmy się - to decyzyjność jest teraz wąskim gardłem. Nie wykonanie, tylko odpowiedź na pytanie co budować i w jakiej kolejności. Zwłaszcza w IT, ale nie tylko, wszędzie gdzie agenci AI są w stanie wykonywać zadania. W każdej branży. Przez strukturę rynku pracy/ekonomii - to są głównie tzw. white collars. Białe kołnierzyki.
Jako programista powiem - jeśli ogarnęli kodowanie, to po księgowość też przyjdą, i po tłumaczenia, i po te excele, tworzone z takim pietyzmem.
McLuhan zaś był uczniem Innisa i obaj badali te same zjawiska, wniosek do którego doszli jest dość brutalny: społeczeństwo, które zlikwiduje time-biased na rzecz totalnej skalowalności, dostanie krótkofalowy wzrost wydajności i długofalową zapaść instytucjonalną.
Ludzie to czują, to widać jak się popatrzy na niektóre historie! Mamy dość tego, że rzeczy nie trwają, że social media walczą o ułamki sekund naszej uwagi, z której i tak nic nie zapamiętamy, bo jesteśmy przeciążeni nieustannym napływem informacji, z każdego możliwego źródła.
AI tylko to przyspieszy, i to na kolejnym poziomie - bo tak samo będzie wyglądać nasza praca: wrzuć, przemiel, zapomnij. To nie jest przypadek, że tak wielu młodych ludzi wraca do rzemiosła. Niemal każde rzemiosło to jest time-biased medium.
Nie da się zasadzić dębu i w przyszłym roku zrobić z niego stołu, on musi rosnąć przez 70 lat. Potem trzeba go ściąć i suszyć kilka lat w zależności od metody, dopiero wtedy można zrobić z niego mebel.
Skórzane paski? To samo - ta krowa musi wpierw urosnąć. A i sam obiekt tak wytworzony ma olbrzymie szansę przeżyć Twoich wnuków, czego nie można powiedzieć o rolce na Instagramie czy TikToku, czy nawet tym excelu z rocznym rozliczeniem, który za rok nie będzie już potrzebny.
Nieświadomie szukamy balansu. Między szybko a wolno. Szukamy kontrapunktu do rzeczywistości, która odjeżdża jak pociąg TGV.
Scena końcowa
Odpalam Codexa, zostawiam, idę na godzinkę do warsztatu, te wypełnienia po szpachli Holzmasse K2 trzeba wyszlifować, by było płasko. Drewno nie pyta jak produktywny jestem, szpachla też nie pyta. Znosi moje próby ze stoickim spokojem. Czeka, aż skończę. Potem wracam, patrzę i wiem, że jutro nie będę musiał się wstydzić tego pull requesta.
Maszyna nic mi nie odebrała, bo nie ma już co odbierać.