Téma umělé inteligence (AI) je snad všudypřítomné a neznám člověka, který o ní nikdy neslyšel. Málo věcí dokáže společnost polarizovat právě jako AI, což je nejspíš dáno tím, že mnoho lidí ji vnímá jako hrozbu nebo jako věc, která je pro ně nová a novinek se lidé často bojí.
Vzpomínám si na bitvy Intel(istů) a AMDčkařů nebo zastánců Microsoftu a zarytých Linuxářů. A teď je zde AI a děje se v zásadě totéž. Na jedné straně stojí vyděšení lidé, kteří vyhlíží apokalypsu a zánik lidstva a na té druhé nadšení geekové, kterým AI radí i s výběrem vánočních dárků pro rodinu. Jedni jsou věční popírači: "Nějaká AI, co to je? Kdybych tam neseděl já, tak to beze mě neudělá vůbec nic. AI je odpad, jen lepší vyhledávač“. Druzí zase vyhlíží svůj konec.
Můj osobní názor je, že pravda je někde uprostřed. AI je velmi dobrý pomocník, ale také je potřeba mít se na pozoru a nepustit otěže zcela z ruky. AI umí pomoci, ale v současné době není ještě plně autonomní.
Jsem Jiří Kvasnička, kompetenční leader za Testing. V PRINCIPAL na této pozici působím již pátým rokem a postupně jsme se začali zabývat i světem AI. Jednou z oblastí, které mě zajímají, je využití umělé inteligence v rámci testingu a automatizace. Jen tak, ze zvědavosti, jsem se rozhodl zjistit, jak na tom dnešní modely skutečně jsou a zda mohou vývojáře (nebo testery) plně nahradit.
AI mi pomáhá v každodenním životě. Stávám se díky ní efektivnější a umí mi poměrně dobře poradit. Je to takový seniorní kolega, který je k dispozici kdykoliv si vzpomenu a umí mi poradit s mnoha pracovními úkoly. Je až k nevíře, jak je to návyková věc.
Většina lidí pod pojmem AI rozumí LLM (např. ChatGPT), což je přílišné zjednodušení (o tom ale někdy jindy) a jen pomyslná špička ledovce. Čím si tyto LLM modely získaly většinu je asi jasné. Umí se s námi bavit nám pochopitelným jazykem a pomáhat nám prakticky s čímkoliv, až tak, že máme dojem, že AI rozumí tomu, co po něm chceme a také tomu, co nám odpovídá.
Je AI schopná v současné době plně nahradit člověka, např. programátora?
Na webu jsem našel několik článků oněch „apokalyptiků“ o tom, jak všichni přijdou o práci. Vývojáři, asistentky na call centrech, marketéři a vlastně skoro každý, kdo se učil dobře a dnes sedí v kanclu (i ti, co se neučili dobře a sedí v kanclu).
Rozhodl jsem se, že vyzkouším, jak na tom vlastně dnešní AI (konkrétně ChatGPT) je a kolik developerů kvůli němu o tu práci dnes přijde. Je potřeba zdůraznit, že jsem si „nehrál“ s jinými „AI nástroji“. Nejde tedy o výzkumný záměr nebo porovnání různých AI toolů a modelů.
Použil jsem to nejjednodušší, co mám běžně k dispozici, tj. ChatGPT 4o (jasně o4-mini-high by asi byla lepší, ale to vím až teď, s odstupem času).
S programováním nějakou zkušenost mám, takže OOP principy znám a rozdíl mezi procedurou a funkcí asi také trefím, ale za vývojáře se nepovažuji. Zkusil jsem tedy AI využít „mým způsobem“ a začal „programovat“.
Pokus číslo 1:
Napíšu vyčerpávající prompt, využiju i AI, aby tento prompt „učesala“, a poté AI zvládne vše naprogramovat naprosto sama. Základ byl skutečně dobrý a cca za hodinu a půl jsem slavil úspěch v podobě prográmku, který fungoval. Byl sice trochu primitivní, ale funkční. Paráda! Můžeme vyhodit vývojáře… nebo ne? Zkouším tedy prográmek udělat komplexnější a tady nastává problém… AI začne „blbnout“ a upravuje už předem funkční kód. Propadám depresi a snažím se „přinutit“ AI k tomu, aby pokračovala v dobře rozjeté práci. Marně.
Pokus číslo 2:
Mažu veškeré prompty, paměť a začínám znovu. Tentokrát tak, že jsem si rozvrhl třídy a metody tak, aby mi dávaly smysl, a snažím se o to, aby AI naprogramovala obsah těchto metod. No, jde to, ale není to úplně ono. Při inicializaci pole mi stále hází kompilátor chybu a já propadám zoufalství. AI si stále stojí na svém a kód píše tak, jak se to naučila. Ale jo, výsledek je lepší než při pokusu číslo 1, ale i jako laik jsem viděl prostor pro zlepšení. Asi kdybych měl více trpělivosti a zkušeností, tak bych i zvítězil.
Pokus číslo 3:
Učím se programovat. Do kódu AI jsem koukal tak dlouho, že jsem se ten programovací jazyk vlastně naučil (alespoň na úrovni dostatečné pro můj účel). Program jsem naprogramoval sám a AI jsem využíval na úlohy typu:
- „Kompilátor hlásí chybu, čím by to mohlo být?“
- „Prosím, vygeneruj mi getter a setter pro tyto proměnné.“
- „Ne, getter pro pole nefunguje, minule jsi kopíroval v cyklu jednotlivé hodnoty, zkus to takto.“
Zvítězil jsem a nyní se těším ze svého prográmku, který funguje a dělá přesně to, co jsem po něm chtěl.
Jaký je výsledek mého experimentování?
Výsledkem tedy je, že jsem s pomocí ChatGPT dosáhl svého cíle a zdá se, že mnohem jednodušeji, než kdybych AI nepoužil. Určitě ale ne tak, abych mohl říct, že v současné době nejsou programátoři potřeba.
Z mého úhlu pohledu se tak nenaplnila ani panika těch, kteří mají pocit, že již zítra budou na „pracáku“, ale ani těch, kteří tvrdí, že AI je jen lepší Google.
Můj závěr je tedy přibližně tento:
- AI je skvělý pomocník pro rutinní činnosti (getter a setter fakt dává dobře)
- AI umí člověku urychlit práci a vnuknout dobré nápady
- AI je Google na steroidech (velké dávce steroidů)
- AI se dokáže „zamotat“ v komplexních úlohách a dohnat člověka k šílenství
- AI může v současné době pomoci, ale dobrého (řekl bych, že i průměrného) developera v tuto chvíli nenahradí, ten na něj musí stále ještě dohlížet a myslím, že i ten prográmek by zvládnul rychleji (počítám-li veškerý čas, který jsem tomu věnoval)
- Pokud bude rozvoj umělé inteligence pokračovat tímto tempem, tak za několik málo let může být situace diametrálně odlišná
V Principal Engineering se AI aktivně věnujeme a stále sledujeme, jaké má reálné využití v praxi. Na toto téma určitě vznikne několik dalších článků, kde se podělíme o další poznatky a zkušenosti.
Pokud vás problematika AI v programování zajímá, sledujte náš blog nebo mi napište přímo na
PS: Tento můj experiment s "programováním" proběhl v prosinci 2024. Článek vychází v dubnu 2025 kdy AI posunulo své možnosti a vznikli například SWE agenti kteří jsou v programování mnohem dále.