Téma umělé inteligence (AI) je snad všudypřítomné. Neznám člověka, který o tom nikdy neslyšel. Pravdou je, že AI používám prakticky denně na různé úlohy, které potřebuji vyřešit. Na druhou stranu jsem zatím potkal jen velmi, opravdu velmi málo lidí, o kterých by se dalo říct, že problematiku AI mají opravdu zvládnutou – ne, teď nemyslím posílání promptů (horší či lepší kvality) do „ChatGPT“ a čekání na výsledek. Takovým uživatelem jsem prozatím i já.
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é nás zajímají, je využití umělé inteligence v rámci testingu a automatizace. Proto jsem se rozhodl zjistit, jak na tom dnešní modely skutečně jsou – a zda mohou vývojáře (nebo testery) reálně nahradit.
Je ale už nyní schopná nahradit člověka?
Na webu jsem našel několik článků o tom, jak 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). Zkušenost s voicebotem má asi většina lidí (já tedy vesměs negativní).
Rozhodl jsem se, že vyzkouším, jak na tom vlastně dnešní modely (konkrétně ChatGPT) jsou a kolik developerů kvůli němu vlastně o tu práci dnes přijde. 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.
Jaký je výsledek mého experimentování?
- 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.
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, kde se tomuto tématu budeme věnovat i nadále.