Vývoj softvéru bez vývojárov
V posledných rokoch zažívame zásadnú zmenu v spôsobe, ako vzniká softvér. Kým ešte donedávna bol vývoj aplikácií doménou skúsených programátorov, dnes sú vďaka AI a takzvaným no-code nástrojom tieto možnosti dostupné aj pre ľudí bez znalosti programovacích jazykov. AI demokratizuje vývoj softvéru podobne, ako stolové počítače demokratizovali výpočtovú techniku v 80. rokoch. Ktokoľvek – študent, výskumník, nadšenec či malý podnikateľ – môže vytvoriť vlastné aplikácie bez jediného riadka kódu napísaného ručne. Tento trend mení pravidlá hry nielen pre firmy, ale aj pre jednotlivcov a malé tímy.
Aj univerzálne AI nástroje vedia programovať
Moderné veľké jazykové modely (LLM) sa posunuli ďaleko za generovanie textu. Claude od Anthropic, ChatGPT od OpenAI a Gemini od Googlu dokážu písať plnohodnotný kód vo všetkých hlavných programovacích jazykoch – Python, JavaScript, Java, C++, Go, Rust, Swift a desiatkach ďalších.
Claude (verzie Sonnet a Opus) vyniká v dlhších, komplexnejších projektoch. Dokáže pracovať až s 200 000 tokenmi kontextu, čo znamená, že si pamätá celú konverzáciu vrátane tisícok riadkov kódu. Stačí mu povedať: „Potrebujem desktopovú aplikáciu, ktorá bude sledovať sieťovú prevádzku, filtrovať pakety podľa IP adries a exportovať štatistiky do súboru CSV,“ a Claude vytvorí funkčný skript Python s GUI v Tkinter alebo PyQt.
Gemini (verzie Ultra a Pro) integruje multimodálne schopnosti, pracuje nielen s textom, ale aj s obrázkami a videom. Dokážete mu nahrať screenshot rozhrania, ktoré chcete emulovať, a Gemini vytvorí funkčný prototyp.
ChatGPT (verzia Plus) vyniká v pochopení kontextu. Jeho Code Interpreter dokáže priamo spúšťať kód Python a iteratívne ho debugovať. Praktický príklad: „Urob mi skript, ktorý stiahne dáta z REST API, vyčistí duplicity a vizualizuje trendy pomocou matplotlib.“ ChatGPT napíše kód, otestuje ho a v prípade potreby upraví.
Tieto univerzálne nástroje dokážu vygenerovať zdrojové kódy aplikačnej logiky, kódy používateľského rozhrania aj podrobný postup, ako aplikáciu zostaviť, ale inštalácia potrebných nástrojov, vytvorenie projektu a prenesenie vygenerovaných kódov zostáva na používateľovi.
Špecializované AI nástroje to vedia komplexnejšie
AI implementovaná priamo do vývojárskych nástrojov umožní pokročilejšiemu vývojárovi viac kontroly nad projektom a poskytne mu viac možností. Takéto nástroje sú výhodné aj pre začiatočníka alebo laika, pretože vytvoria komplexný projekt aj so zdrojovými kódmi.
Bolt.new je cloudová aplikácia, kde cez webový editor opíšete aplikáciu v prirodzenom jazyku a AI vytvorí kompletný projekt. Napíšete opis a požiadavky a Bolt vygeneruje kód, spustí ho v browseri a umožní vám aplikáciu upravovať a dopĺňať. Napríklad: „Pridaj možnosť kategorizácie úloh podľa priorít.“
Cursor je fork čiže odnož open source nástroja Visual Studio Code s integrovaným GPT-4. Použitie je intuitívne, napíšete komentár typu //vytvor funkciu na validáciu e-mailu pomocou regex a Cursor dopíše celú implementáciu. Prípadne označíte blok kódu, opíšete, čo zmeniť, a AI ho refaktoruje. Pre začiatočníkov Cursor ponúka režim Agent, kde AI vedie celý projekt od architektúry po implementáciu.
GitHub Copilot funguje podobne, ale je dostupný ako plugin pre VS Code, JetBrains IDE, Neovim a ďalšie editory. Dokáže vytvárať kódy funkcií len z názvu a komentárov. Napríklad napíšete def calculate_fibonacci(n) a Copilot automaticky navrhne celú implementáciu.
Do tejto skupiny patria a webové platformy kombinujúce AI s cloudovým vývojovým prostredím.
Google Antigravity je moderná platforma na vývoj aplikácií na báze AI. Jej cieľom je zjednodušiť tvorbu aplikácií naprieč rôznymi zariadeniami a zabezpečiť vysokú mieru škálovateľnosti, bezpečnosti a dostupnosti služieb. Platforma umožňuje vývojárom aj menej skúseným používateľom rýchlo vytvárať, testovať a nasadzovať aplikácie bez nutnosti hlbokých znalostí programovania.
Replit Agent: V Replit IDE, čo je cloud-based editor podporujúci Python, JavaScript, Javu, C++ a ďalšie majoritné programovacie jazyky, aktivujete agenta, napíšete napríklad zadanie: „Vytvor hru Had v Pygame s retro grafikou.“ Agent vytvorí súbory s kódom, nainštaluje všetko potrebné a spustí hru. Môžete ju okamžite testovať, prípadne požadovať úpravy.
Základné znalosti a algoritmické myslenie sú vítané
Aj keď no-code AI platformy výrazne znižujú nároky na vedomosti a skúsenosti, úplne bez znalostí to nejde. Treba si uvedomiť, že AI je silná v realizácii, ale slabšia v pochopení nejasných požiadaviek. Kľúčová je schopnosť formulovať požiadavky, definovať vstupy a výstupy a podľa možnosti aj myslieť algoritmicky. Základom je schopnosť štruktúrovane myslieť a analyzovať procesy, ktoré chcete automatizovať či digitalizovať. Pomôže aj orientácia v dátových typoch, tvorba jednoduchých diagramov či schopnosť rozčleniť úlohy na menšie kroky. V neposlednom rade je dôležité vedieť vyhľadávať informácie a využívať online komunity, ktoré ponúkajú návody a odpovede na najčastejšie otázky.
Príklady využitia
Jeden z najbežnejších prípadov použitia no-code a AI nástrojov je spracovanie údajov – či už ide o zber, prehľadávanie, alebo vizualizáciu dát. Ďalšia oblasť je automatizácia opakovaných činností či tvorba špeciálnych aplikácií, ktoré napríklad automaticky triedia dokumenty, rozpoznávajú text z obrázkov alebo analyzujú hlasové príkazy, to všetko pomocou predpripravených modulov bez nutnosti zložitého programovania. Jednoduchosť používania predurčuje no-code nástroje aj na tvorbu jednoúčelových aplikácií. Príklady zadaní:
Denne dostávate 50+ faktúr PDF e-mailom. Potrebujete extrahovať číslo faktúry, dátum, sumu a dodávateľa a exportovať to do Excelu.
Zadanie: „Vytvor Python skript, ktorý sa pripojí na Gmail cez IMAP, nájde e-maily s prílohou PDF za posledných 7 dní, pomocou OCR prečíta každé PDF, pomocou regext extrahuje fakturačné údaje a zapíše do súboru CSV pre Excel.“
Testujete softvér komunikujúci s modulom GPS cez protokol NMEA. Nemáte fyzické zariadenie.
Zadanie: „Vytvor Python skript emulujúci modul GPS. Má posielať údaje vo formáte NMEA cez virtuálny COM port. Trajektória má simulovať jazdu po Bratislave rýchlosťou 50 km/h.“
Máte Arduino, ktoré sníma teploty z desiatich senzorov každých 5 sekúnd cez sériovú linku. Potrebujete desktopovú aplikáciu, ktorá dáta zobrazí v reálnom čase a uloží do databázy.
Zadanie: „Potrebujem aplikáciu Python, ktorá číta dáta z COM3 portu (formát: sensor_id,temperature,timestamp), zobrazuje live graf pre každý senzor a ukladá do databázy SQLite.“
AI vygeneruje kompletné riešenie pozostávajúce zo skriptu využívajúceho knižnicu PySerial na čítanie údajov zo sériového portu, knižnicu Matplotlib pre animované grafy, databázu SQLite, používateľské rozhranie na báze toolkitu Tkinter GUI s tlačidlami Start/Stop. Riešenie môžete upraviť a doplniť, napríklad: „Pridaj export do CSV a email alert pri prekročení 40 °C.“
Reálny príklad z mojej praxe: Dcéra našla na internete obrázok kalkulačky, o ktorom si myslela, že ho vygenerovala AI, pretože kalkulačka nemala tlačidlo =. Vysvetľoval som jej, že obrázok je reálna fotka kalkulačky využívajúcej RPN čiže reverznú poľskú notáciu a takéto kalkulačky nemajú tlačidlo =. Ukázal som jej to na emulátore.
Zadanie: „Vytvor simulátor kalkulačky, ktorá bude využívať RPN a bude mať implementované základné matematické funkcie: sčítanie, odčítanie, násobenie a delenie.“
V existujúcom projekte môžete zadávať návrhy na zmeny. Typický workflow je, že AI na základe zadania vygeneruje prvú verziu kódu, zadávateľ ju spustí, otestuje a opíše, čo nefunguje alebo čo chce zmeniť, a AI kód upraví. Tento cyklus sa môže opakovať niekoľkokrát. Aby sa používateľské rozhranie priblížilo reálnej kalkulačke, zadal som úpravu:
Na tlačidlách pre matematické aplikácie zmeň pozadie na oranžové. Uprav dizajn tlačidiel na obdĺžnikové a usporiadaj ich podobne, ako má kalkulačka HP 25.
Výhody a obmedzenia
Najväčšie výhody vývoja softvéru bez programátorov sú rýchlosť a dostupnosť. Firmy môžu rýchlo reagovať na potreby trhu, testovať nové nápady a šetriť náklady na vývoj. Pre jednotlivcov a malé tímy to znamená možnosť inovovať bez vysokých vstupných investícií. Navyše AI nástroje dokážu často navrhnúť optimálne riešenie na základe analýzy veľkého množstva dát.
Aj tieto nástroje majú svoje limity. Pri komplexných alebo veľmi špecifických požiadavkách môže byť potrebné do vývoja zapojiť skúseného programátora. Ďalšia veľká výzva je bezpečnosť a ochrana údajov. V neposlednom rade treba počítať s tým, že niektoré platformy sú viazané na konkrétneho poskytovateľa, čo môže spôsobiť problémy pri zmene technológie alebo migrácii dát.
Budúcnosť vývoja softvéru bez vývojárov
Vývoj softvéru bez vývojárov nie je úplne presné označenie. Skôr ide o vývoj bez tradičného programovania. Nástroje no-code, low-code a AI dramaticky znižujú bariéru vstupu a umožňujú vytvárať jednoúčelové aplikácie, dátové nástroje či emulátory zariadení bez hlbokej znalosti syntaxe programovacích jazykov. Kľúčovou kompetenciou budúcnosti nebude schopnosť písať kód, ale schopnosť správne definovať problém, navrhovať riešenia a kontrolovať výstup umelej inteligencie.