Will AI replace programmers? Part 1
Krzysztof Michalik
9/21/202410 min czytać


PL (English version below):
Moja odpowiedź na tak postawione pytanie jest prosta: Nie!
Od niedawna wiele osób głosi tezę, że AI wkrótce zastąpi programistów. Jedną z takich osób, do tego w pewnym sensie wpływowych, jest pan Jensen Huang z firmy NVIDIA, bowiem pełni funkcję CEO tej firmy. Podczas Światowego Szczytu Rządów (World Governments Summit) w Dubaju w 2024 roku stwierdził, że: „[..] Przez ostatnie 10-15 lat prawie każdy, kto by siedział na takiej scenie, powiedziałby, że ważne jest, aby twoje dzieci uczyły się informatyki, że każdy powinien nauczyć się programowania, a w rzeczywistości jest wręcz odwrotnie. Naszym zadaniem jest tworzenie technologii komputerowej, w której nikt nie musi programować. A język programowania jest językiem ludzkim. Każdy na świecie jest teraz programistą. To cud sztucznej inteligencji.”.
Tu przywołałbym znane stwierdzenie nie żyjącego już profesora Carla Sagana, że „Extraordinary claims require extraordinary evidence”!
Ale jest go brak i u Jensena Huanga jak i wielu innych wyrażających podobne opinie. Niestety takie opinie i narracja wokół AI mają wpływ na percepcję AI, a także potencjalnie na wiele decyzji zawodowych i edukacyjnych. Wybrałem zaledwie jeden z wielu podobnych przykładów, niepokoju o przyszłość wyrażonego przez maturzystę na jednym ze znanych forów internetowych*: „Obecnie jestem uczniem 12 klasy, realizującym swoje marzenie o zostaniu programistą. Przez całe życie programowanie było moim wymarzonym zawodem (i obiecującym) i nigdy nie sądziłem, że ta kariera pewnego dnia umrze. Ale teraz, gdy zagrożenie ze strony sztucznej inteligencji stało się problematyczne, panicznie boję się, że za kilka lat sztuczna inteligencja negatywnie wpłynie na rynek pracy, podczas gdy ja będę jeszcze na uniwersytecie, studiując kierunek, który w ciągu kilku najbliższych lat może okazać się martwy. Nawet nie wiem, jakiej odpowiedzi oczekuję w tym momencie. Jestem po prostu tak przerażony, że nigdy nie będę w stanie dostać tej pracy i będę miał długi albo coś, zawiodę rodzinę, nie wiem. Co sądzicie ? Co stanie się z programistami w ciągu następnych 10 lat?”.
Co ja sądzę? Spokojnie, nie ma realnych powodów do niepokoju. AI na pewno jest już i będzie użytecznym narzędziem wspomagającym pracę programistów, tak jak od pewnego czasu czyni to pośrednio Internet, w tym jego portale w rodzaju StackOverflow (nb. niektóre systemy AI wprost korzystają z tej wiedzy) czy systemy stosujące „klasyczne rozwiązania” np. różnego rodzaju „debugery” itd. Wiele analiz rynkowych potwierdza, że popyt na wykwalifikowanych programistów, w tym w zakresie inżynierii oprogramowania jest i będzie niezagrożony. Na pewno nie z powodu AI, myślę, że negatywny wpływ mogą mieć jedynie trudne obecnie do przewidzenia zjawiska makroekonomiczne. Sama błędna narracja na temat AI rozbudza wg mnie nadmierne oczekiwania od AI, których ta nie będzie w stanie spełnić w dającym się przewidzieć czasie. Przykładem jednej z takich analiz rynkowych popytu na programistów i specjalistów w zakresie inżynierii oprogramowania może być badanie ankietowe zrobione w marcu 2024 przez TripleTen*** na grupie ok. 1000 decydentów z pytaniami "jak postrzegają generatywną AI i czy AI zastąpi programistów. Poniżej jest wynik tego badania wskazujący na umiarkowanie pesymistyczną ocenę takiej możliwości. "Zapytaliśmy uczestników, jaki procent ról spodziewają się zastąpić AI w swoich firmach, a 87% uważało, że mniej niż połowa stanowisk jest podatna na zastąpienie. W rzeczywistości nieco ponad jedna czwarta respondentów stwierdziła, że uważa, że mniej niż jedna dziesiąta ról w ich organizacjach jest podatna na zastąpienie AI.".
Credit: picture - TripleTen***
Niedawno ukazał się artykuł kilku naukowców z Purdue University pokazujący, że ok. 52 % rozwiązań AI jest wadliwych/błędnych – czyli jest to niemal jak prawdopodobieństwo wypadnięcia orła lub reszki w rzucie monetą czy dylemat „szklanka do połowy pełna lub pusta”! Dodajmy do tego „halucynacje” w chatbotach opartych na LLM (Large Language Models) – czy poważny programista zaryzykuje wklejenie (użycie) takiego kodu do swojej aplikacji? Czy chcielibyśmy lecieć samolotem sterowanym przez program z kodem AI o prawdopodobieństwa poprawności rzędu 52%? A co z astronautami, sterowaniem ruchem kolei, aplikacjami medycznymi itd.? W wielu sytuacjach poprawa cudzego kodu (po innym programiście) jest niemal tak trudne i podobne do procesu inżynierii wstecznej (reverse engineering), że czasami łatwiejsze, niezawodniejsze (czasami może także szybciej) bywa samodzielne napisanie danego programu od podstaw. Analizę kodu o pewnym poziomie komplikacji wygenerowanego przez AI (nie wiadomo zresztą skąd pozyskanego czy ewentualnie "skompilowanego" z różnych portali/źródeł pochodzenia) może przeprowadzić jedynie programista o pewnym poziomie wiedzy i doświadczenia co samo w sobie jest zaprzeczeniem idei zastąpienia programistów przez AI.
Moje wcześniejsze osobiste doświadczenia jako informatyka z ok. 45 letnim doświadczeniem w programowaniu i inżynierii programowania, a także - od pewnego czasu - testowanie AI pod kątem poprawności kodu, potwierdzają wynik badań z Purdue University; dziwię się jedynie, że te badanie były pierwszymi tego typu i dopiero tak niedawno zbadano ten problem.
A kto ma rozwijać kolejne wersje systemów AI? Wyłącznie programiści-ludzie. Bowiem bardzo długo jeszcze najlepszym "promptem" do wygenerowania przez AI kodu programu będzie kod tego programu. Każdy programista zna rolę poprawnej, precyzyjnej specyfikacji założeń do napisania programu. Jeśli są poprawne, to od tego momentu zaczyna się niezwykle kreatywna rola programisty. W tym kontekście do różnych realnych i potencjalnych zagrożeń ze strony AI dodałbym chyba najważniejsze i najbardziej ogólne - prawdziwe zagrożenie tkwi w nadmiernym zaufaniu ludzi do AI, jej możliwości, kompetencji, niezawodności i wiarygodności!
Należy również pamiętać, że chatboty i LLM, choć ostatnio wiele się o nich mówi i pisze, to nie jest całość bogactwa różnych klas systemów AI, w tym wielu o ugruntowanej charakterystyce niezawodności i np. pozbawionych "halucynacji"! Poniżej tego eseju przykład takiej halucynacji nakazującej dużą ostrożność w stosowaniu w programowaniu (i nie tylko) AI opartej na LLM****.
W kolejnych częściach tego tematu na tym blogu rozwinę niektóre kwestie związane z problemem AI w programowaniu. Dodam także (bezpośrednio lub pośrednio) odpowiedzi na niektóre pytania (Q&A) po moim niedawnym wykładzie pt. „AI – fakty i mity) na Uniwersytecie WSB Merito.
ENGLISH VERSION:
My answer to this question is simple: No!
Recently**, many people have been saying that AI will soon replace programmers. One of such people, and in a sense influential, is Mr. Jensen Huang from NVIDIA, as he is the CEO of this company. During the World Governments Summit in Dubai in 2024, he stated that: "[..] For the last 10-15 years, almost everyone sitting on this stage would say that it is important for your children to learn computer science, that everyone should learn to program, and in fact, it is quite the opposite. Our job is to create computer technology in which no one has to program. And the programming language is human language. Everyone in the world is now a programmer. It is a miracle of artificial intelligence.".
Here I would quote the famous statement of the late professor Carl Sagan that “Extraordinary claims require extraordinary evidence”! But it is missing from Jensen Huang and many others expressing similar opinions. Unfortunately, such opinions and the narrative surrounding AI have an impact on the perception of AI, and potentially on many professional and educational decisions. I have chosen just one of many similar examples, of anxiety about the future expressed by a high school graduate on one of the well-known internet forums*: "I am currently a 12th grader pursuing my dream of becoming a programmer. All my life, programming has been my dream job (and a promising one) and I never thought that this career would die one day. But now that the threat of artificial intelligence has become problematic, I am panicking that in a few years, artificial intelligence will negatively affect the job market, while I will still be at university, studying a course that may turn out to be dead in the next few years. I don't even know what answer I expect at this point. I am just so scared that I will never be able to get this job and I will be in debt or something, I will disappoint my family, I don't know. What do you think? What will happen to programmers in the next 10 years?"
What do I think? Don't worry, there is no real reason to worry. AI is certainly already and will be a useful tool supporting the work of programmers, just as the Internet has been doing indirectly for some time now, including its portals such as StackOverflow (NB some AI systems directly use this knowledge) or systems using "classic solutions" such as various types of "debuggers" etc. Many market analyses confirm that the demand for qualified programmers, including in the field of software engineering, is and will be unthreatened. Certainly not because of AI, I think that only macroeconomic phenomena that are currently difficult to predict can have a negative impact. In my opinion, the erroneous narrative about AI itself raises excessive expectations from AI, which it will not be able to meet in the foreseeable future. An example of one such market analysis of the demand for programmers and software engineering specialists can be found in a March 2024 survey conducted by TripleTen*** among a group of about 1,000 decision makers asking "how they perceive generative AI and whether AI will replace programmers. Below is the result of this study indicating a moderately pessimistic assessment of such a possibility. "We asked participants what percentage of roles they expected to be replaced by AI in their companies, and 87% believed that less than half of the roles were susceptible to replacement. In fact, just over a quarter of respondents said they believed that less than one-tenth of the roles in their organizations were susceptible to replacement by AI."
Credit: picture - TripleTen***
Recently, an article by several scientists from Purdue University showed that about 52% of AI solutions are flawed/incorrect – it is almost like the probability of heads or tails in a coin toss or the dilemma of "glass half full or half empty"! Let's add to this "hallucinations" in chatbots based on LLM (Large Language Models) – would a serious programmer risk pasting (using) such code into his application? Would we like to fly a plane controlled by a program with AI code with a probability of correctness of about 52%? What about astronauts, railway traffic control, medical applications, etc.? In many situations, improving someone else's code (after another programmer) is almost so difficult and similar to the process of reverse engineering that sometimes it is easier, more reliable (sometimes maybe even faster) to write the given program from scratch yourself. The analysis of code with a certain level of complexity generated by AI (it is not known where it was obtained from or possibly "compiled" from various portals/sources) can only be performed by a programmer with a certain level of knowledge and experience, which in itself negates the idea of replacing programmers with AI.
My previous personal experience as a computer scientist with about 45 years of experience in programming and software engineering, and also testing AI for code correctness for some time, confirms the result of the Purdue University study; I am only surprised that this study was the first of its kind and that this problem has only recently been investigated.
And who is to develop the next versions of AI systems? Only human programmers. Because for a very long time to come, the best "prompt" for AI to generate program code will be the code of that program! Every programmer knows the role of correct, precise specification of assumptions for writing a program. If they are correct, then from that moment begins the extremely creative role of the programmer. In this context, to the various real and potential threats from AI, I would probably add the most important and most general - The real danger lies in people's excessive trust in AI, its capabilities, competences, reliability and credibility.
It should also be remembered that chatbots and LLM, although there has been a lot of talk and writing about them recently, are not the whole of the wealth of various classes of AI systems, including many with well-established reliability characteristics and, for example, devoid of "hallucinations"! Below this essay is an example of such a hallucination that requires great caution in using LLM-based AI in programming (and beyond)****.
In the next parts of this topic on this blog I will develop some issues related to the problem of AI in programming. I will also add (directly or indirectly) answers to some questions (Q&A) after my recent lecture entitled "AI - facts and myths) at the WSB Merito University.
_____________________________
*https://www.reddit.com/r/learnprogramming/comments/17531cn/the_next_10_years_of_programmers/
** Published: 11 May 2024
*** https://tripleten.com/blog/posts/ai-isnt-going-to-replace-programmers-its-going-to-help-them
**** PL
Przykład halucynacji przedstawionej przez dr Sabine Hossenfelder i choć autor sam ma wiele takich przykładów, to ten wydaje się szczególnie zabawny. W kontekście tego artukułu wyobraźmy sobie skutki takich błędów będących naturę obecnych systemów opartych na LLM w programach komputerowych.
English version
An example of hallucination presented by Dr. Sabine Hossenfelder, and although the author has many such examples himself, this one seems particularly amusing. In the context of this article, let us imagine the effects of such errors being the nature of current LLM-based systems in computer programs.
Credit: Dr. Sabine Hossenfelder from her YT channel video (vlog): https://www.youtube.com/@SabineHossenfelder









