Google odhalil, že více než 25 % nového kódu ve firmě generuje umělá inteligence (AI). Prohlášení, které zaznělo během hovoru společnosti Google o výsledcích za 3. čtvrtletí 2024, ukazuje, že nástroje umělé inteligence již mají značný dopad na vývoj softwaru.
„Umělou inteligenci používáme také interně ke zlepšení našich kódovacích procesů, což zvyšuje produktivitu a efektivitu,“ uvedl nedávno Sundar Pichai, generální ředitel Google, a upřesnil: „V současné době je více než čtvrtina veškerého nového kódu ve společnosti Google generována umělou inteligencí, poté přezkoumána a přijata inženýry. To pomáhá našim inženýrům dělat více a postupovat rychleji.“
Tato technologie však nepracuje autonomně — vytvořený kód je vždy kontrolován a schvalován lidskými programátory. Důvodem pro tento přístup je zvýšení produktivity a zrychlení práce vývojářů. Podle Pichaiových slov jde o nástroj, který programátorům umožňuje „dělat více a rychleji“.
Tento trend se neomezuje jen na Google. Z průzkumů, například od Stack Overflow a GitHubu, vyplývá, že více než 76 % vývojářů plánuje používat AI při své práci. Již dnes tuto technologii aktivně využívá 62 % dotázaných. Tímto směrem se posunula nejen samotná praxe vývoje, ale i dostupné nástroje. GitHub Copilot, spuštěný v roce 2021, byl jedním z prvních masově přijatých nástrojů. Od té doby se připojily další, jako jsou řešení od OpenAI, Meta nebo Google.
AI však nepřináší jen výhody. Výzkum Stanfordské univerzity z roku 2023 například ukázal, že vývojáři využívající AI vytvářejí kód s větším počtem chyb. Přitom ovšem paradoxně věří, že jejich práce je bezpečnější. Kódování s využitím AI nemá tedy pouze výhody, ale také svá rizika.
Přítel s nečekanými výhodami
Tvorba kódu je pro mnohé nečekaným benefitem rozvoje „umělé inteligence“ v její dnešní podobě. Když se kolem roku 2019 ukázalo, že neuronové sítě (konkrétně velké jazykové modely) dokážou na základě zadání generovat smysluplný text, bylo to pro řadu lidí překvapení. Pro někoho bylo ale ještě větším šokem, že stejné jazykové modely jsou zároveň nečekaně dobrými programátory.
Byli tím překvapení i samotní tvůrci těchto jazykových modelů. Technologický novinář Pavek Kasík ze serveru Seznam Zprávy vzpomínal na tiskovou konferenci OpenAI ze srpna 2021, tedy před uvedením ChatGPT. Tři programátoři, všichni členové zakládajícího týmu OpenAI, tehdy mluvili o tom, že jejich jazykový model GPT-3 je překvapivě dobrý v psaní kódu. A když dostane trochu lepší pobídky, umí vyřešit 37 % programátorských problémů. „Prostě počítači řeknete, aby něco udělal. A on to vážně udělá,“ vysvětlil jednoduše Greg Brockman.
Dodejme, že zadání byla velmi jednoduchá, dnes modely zvládnou řádově složitější úkoly s větší mírou spolehlivosti. Zřejmě právě proto adopce tohoto nástroje nepřišla hned. Šlo o zajímavý „laboratorní prototyp“, který občas fungoval, ale většinou byl k ničemu.
Pak přišel ChatGPT s vylepšeným modelem GPT-3.5 a krátce poté GPT-4. S nimi se programátoři postupně naučili odhadnout, co má cenu dělat ručně, a co raději zadat chatbotovi. Microsoft přišel se svým GitHub Copilotem, který umožnil našeptávání a doplňování kódu přímo v prostředí, na které jsou profesionální programátoři zvyklí.
Právě to byl podle mého klíč k úspěchu. Profesionálové obvykle nechtějí od základu proměnit způsob své práce, zvláště když se na výsledky nemohou spolehnout. Takto ale mohli mít AI asistenta po ruce, akceptovat jeho návrhy a přitom neztrácet moc času jeho halucinacemi. Z průzkumu z roku 2022 vyplývá, že programátoři tehdy „přijali“ 20 až 30 % z navržených kusů kódu, které pro ně GitHub Copilot vymyslel.
V roce 2024 pak přišel model Claude s doplňkem Artifacts. Nejenže byla kvalita kódu lepší, ale zvýšil se i uživatelský komfort. Kód je možné si nechat nejen vygenerovat, ale rovnou i spustit a postupně vylepšovat.
Vznikl, či spíše průběžně vzniká nový styl práce, kombinace programování a úkolování AI nástrojů. Například Cursor je pokusem integrovat AI od začátku do konce celého procesu. Chatbot vám může vytvářet soubory, dělat úpravy ve více souborech naráz, dokonce mu můžete dát screenshot nebo dokumentaci a chatbot se to pokusí zohlednit. Nový GitHub Copilot tento přístup do značné míry kopíruje.
Jeden zlepšovák za druhým
Dodejme, že novinky práci programátora zatím nehrozí nahradit. Zatím se zdá, že je snad bude možné vnímat jen jako další krok v (relativně krátké) historii hledání stále efektivnějších nástrojů pro ovládání „programovacích strojů“.
Na počátku stály programovací jazyky na velmi nízké úrovni, jako je assembler, které vyžadovaly, aby programátoři pracovali přímo s hardwarovými instrukcemi. To bylo mimořádně časově náročné a každá změna v kódu vyžadovala velkou dávku trpělivosti a přesnosti.
S příchodem vyšších programovacích jazyků, jako byl například Fortran nebo COBOL, došlo k prvnímu zásadnímu zlomu. Tyto jazyky umožnily vývojářům pracovat s kódem na úrovni bližší lidskému myšlení než strojové logice. I tento posun měl své odpůrce — někteří programátoři se obávali ztráty kontroly a snížení efektivity. Tyto obavy se však časem ukázaly jako neopodstatněné, protože vyšší jazyky umožnily rychlejší vývoj složitějších projektů.
Dalším významným mezníkem byl nástup objektově orientovaného programování, které se rozšířilo v 80. a 90. letech. Tento přístup umožnil rozdělit složité systémy na menší, lépe zvládnutelné části zvané objekty. Znovu se objevily obavy, že nový postup povede k poklesu celkové kvality softwaru. Přesto se objektově orientované programování stalo standardem, protože jeho výhody, jako je opětovné použití kódu nebo lepší strukturování, dalece převyšují nevýhody.
V každém kroku této evoluce se objevovaly obavy ze ztráty kontroly nebo dovedností, ale historie ukázala, že nové nástroje umožnily vývojářům posunout se k řešení složitějších a ambicióznějších problémů. Dnes, s příchodem umělé inteligence, stojíme na prahu další velké změny. Zda bude vypadat stejně jako ty ostatní, je otázkou zatím neznámé budoucnosti.