Hlavní navigace

Jiří Třečák (Supernova): Budoucnost je ve spojení AI s programátorem

Jan Sedlák

První Česi, kteří prošli prestižním Y Combinatorem, se zaměřují na automatické generování kódu a věří ve spojení AI s programátory.

Doba čtení: 17 minut

Sdílet

Původem ostravský startup Supernova v loňském roce v rámci České republiky zaznamenal jedno poměrně výrazné prvenství – prozatím jako jediný se dostal do velmi prestižního akcelerátoru Y Combinator fungujícího v Silicon Valley. Firma tam získala 150 tisíc dolarů a předtím už 500 tisíc dolarů od Credo Ventures.

Před pár týdny přišly další peníze. Částku ve výši 1,6 milionu dolarů vložil fond EQT, který mimo jiné vlastní linuxový podnik SUSE, a přidal se také zakladatel Apiary Jakub Nešetřil. První várky financování ale na Supernově nejsou to zajímavé. Mladá firma se zaměřuje na automatické generování kódu z grafických návrhů aplikací, a pokud to půjde dobře, může do oblasti programování přinést značné změny a spojení člověka s AI.

Spoluzakladatel a výkonný šéf Supernovy Jiří Třečák v rozhovoru pro Lupu popisuje, jak Supernova funguje, o co se snaží, jaké jsou největší překážky, a vysvětluje, proč je Y Combinator skutečně přínosný a nejde pouze o hype.

Supernova má na webu hlášku „přidejte se k budoucnosti mobilního vývoje“. Co to znamená?

Nyní se soustředíme na mobilní aplikace, ale do budoucna to budou i weby a programování obecně. Vlastně vše, co lze automatizovat. Zaměřujeme se na automatizaci kódu kolem designu a Supernova je zaměřená na to, že design „chápe“. Pokud je někde vizuální stránka, eventuálně budeme schopní z ní vytvořit kód.

Jak tedy taková budoucnost vývoje může vypadat?

Programátorů je nedostatek a tento fakt se bude ještě zvětšovat. Jakákoliv automatizace, kterou bude možné do procesu vývoje přinést, programátorům efektivně odebere kus práce. Ti tak mohou ušetřit čas, věnovat ho koníčkům nebo třeba vydělat více peněz. Zakázky jsou, ale nejsou na to lidi, případně jsou velice drazí. To ostatně vidíme i u našeho vlastního náboru programátorů. Takže budoucnost je ve spojení AI, nebo něčeho jako AI, s programátorem. S tím, že programátor bude dělat kreativní věci a AI vše, co je nudné a repetitivní.

Takže to bude podobné jako v ostatní oborech, kde stroj dokáže nahradit rutinní práci?

Určitě. Pro někoho to možná bude překvapivé, ale už dávno neplatí, že většina programování je kreativní. To není pravda. Na „vše“ jsou frameworky a současní programátoři jsou v podstatě takoví skladatelé Lega. I proto je pro nás složité najímat lidi. Programátor je zvyklý pracovat s nějakou sadou technologií a odpovědi hledá na Stack Overflow. Ale opravdových programátorů, kteří by dokázali „vypnout internet“ a něco vymyslet, už není zase tolik. I z toho důvodu, že to vlastně není potřeba, a není to jejich chyba. Snažíme se tedy automatizovat tu část, kdy je programátor pouze skladatel Lega. Opravdu zábavná část programování je to, co se skutečně musí vymyslet. Když si sedneš, celý den něco vymýšlíš a pak napíšeš dva řádky kódu.

Pokud by taková automatizace skutečně přišla, jaké to může mít dopady na trh s programátory?

K automatizaci „všeho“ je ještě hodně dlouhá cesta. Nebude to za rok ani za dva, ale třeba do deseti let bude existovat technologie, která ty nejvíce základní programátory dokáže nahradit úplně. Na druhou stranu se trh a technologie vyvíjí. Pokud se tedy odstraní tato vrstva, začnou se nasazovat jiné věci a programátoři se stanou něčím jiným. Osobně si myslím, že když chceš být programátor, tak tě vymýšlení věcí a podobně baví. Současný trh ale není nastavený tak, aby tyto stránky tlačil, protože to není potřeba. Nejjednodušší mobilní aplikaci dnes vytvoří „každý druhý“, protože velké firmy dělají nástroje tak jednoduché, aby programátorů mohlo být co nejvíce.

Tým Supernova
Autor: Supernova

Tým Supernova

Které rutiny a programátorské práce odpadnou nejdříve?

Cokoliv spojené s grafickým designem půjde pryč. Grafický design obsahuje všechny informace potřebné k tomu, aby aplikaci někdo udělal. I programátor dostane jenom design. Obecně lze říci, že pokud existuje způsob, jak programu předat informaci, jak má výsledná aplikace vypadat, půjde všechno toto do deseti let automatizovat. Pak zůstanou ony kreativní věci. To bude mít řadu zajímavých výhod. Když dnes chceš prorazit s aplikací, musí být kvalitní a dobře vypadat. Dejme tomu, že seš třeba na volné noze a dostaneš na zakázku měsíc. Během té doby máš jen tak tak čas na základní funkce, ale už nemáš příliš prostoru na řešení detailů, odlaďování chyb a podobně…

Takže bude možné teď přidat „golden touch“?

Přesně tak. Zvedne se kvalita aplikací díky tomu, že bude více času na detaily, optimalizaci, vychytávky a tak dále.

Automatické generování kódu z grafického designu jsem začal využívat už před řadou let v dávných verzích Photoshopu. Sice to nedávalo nejlepší kód na světě a bylo třeba si s ním dále hodně hrát, ale tento princip už je dlouho známý. V čem je Supernova jinde?

Myšlenka code generation rozhodně není nová, to ani neříkáme. Není to pouze Photoshop, ale i Dreamweaver a další. To byly nástroje, které ti daly kód a umožnily s ním dále pracovat. Co když ale přijde designér a udělá do designu změny? Přibývá ti tedy overhead, který musíš řešit znovu a znovu. Také existují dnešní firmy, které jdou cestou, kdy ti dávají krátké snippety, dělají to třeba čeští Avocode.

U nás je to o tom, že aplikaci pochopíme. Poté jsme schopní určit, co každý element v aplikaci má znamenat. Takže například dostaneš design ze Sketche nebo Photoshopu, kde jsou vrstvy. Máš třeba tlačítko, které je složené ze čtyř vrstev. Současné programy ti dají vizuální reprezentaci těchto vrstev. To ti do jisté míry pomůže, protože můžeš vyseparovat hodnoty, které potřebuješ. Ale co by bylo mnohem jednodušší, je to, kdyby ti to dalo kód přímo k tomu tlačítku a mohl sis zkopírovat celé nastavení a nemusel si nic řešit. A to je to, co Supernova dělá.

Zmínil jsi se, že se snažíte aplikaci pochopit. Jak takové pochopení vypadá?

Když jsme začínali, prvotní myšlenkou bylo, že Supernova bude plně AI systém. Dlouho jsem na tom dělal sám a realizoval různé experimenty. Dostal jsem se k výsledkům, které byly hodně dobré, ale nedokázal jsem systém doladit tak, aby byl stoprocentní. Problém, který řešíme, je ten, že buď to funguje úžasně dobře, nebo to nefunguje vůbec. Ani 95 procent není pro programátory dost, to je přesně ten overhead. Zároveň také dnes programátoři neradi slyší pojem code automation. A to z toho důvodu, že právě programy jako Photoshop byly ukázky toho, jak se to nemá dělat.

Zkoušeli jsme tedy plně AI přístup, ale přišly dva problémy. U AI potřebuješ velké množství dat na sady pro trénování, což ale jako startup nemáme. A druhá věc je to, že designéři si rádi s aplikací hrají. Máme tedy kombinovaný systém, kdy si v Supernově otaguješ, co má být tlačítko, tabulka a podobně. Algoritmy pak ví, co mají hledat a extrahovat data.

Naší vizí je udělat ze Supernovy systém plně postavený na AI, ale zatím je to algoritmus, který se ani neučí lokálně a dělá to jenom více méně u nás. Ani běžný uživatel by takovému systému nikdy nedal dostatečné množství dat. Také musíme mít dostatečnou kontrolu nad výstupem, který produkujeme. Jsme tedy takový hybrid. Některé algoritmy jsou deterministické a získávají data z designů a některé jsou spíše založené na pravděpodobnosti. Až budeme mít více dat, půjdeme cestou plné AI.

Vy sbíráte data přímo od uživatelů?

Pokud to uživatel povolí, tak ano. Je dobré, když do budoucna tyto informace budeme mít. Jakmile budeme připravení přepnout na plně AI systém, bude se to hodit. Když se dnes řekne AI, řada lidí nemá představy o tom, co to je. Ve své podstatě jsou to pouze algoritmy, které fungují specifickým způsobem. My u AI zatím nepoužíváme učící se složku, protože by to aktuálně bylo spíše neproduktivní.

S jakými jazyky umíte pracovat a kam se chcete dostat?

Supernova je generický systém. Máme datový model, který popisuje všechno, co je vidět. Na základě tohoto modelu využíváme sémantiku, kde jsme schopní datový model popsat programovacím jazykem. Máme tedy sémantiku pro Swift či Javu. Dokážeme vzít datové objekty a konvertovat je na výstup, který programátor využívá. Aktuálně podporujeme všechny mobilní platformy kromě hybridních. Já osobně si nemyslím, že by měly existovat nějak dlouho. Tím nemyslím, že by neměl existovat třeba React, ale spíše odpadne Angular. Plánujeme Supernovu otevřít s tím, že by lidé mohli využívat náš core engine a napsat třeba exportní modul a podobně. To už by nebyla naše starost, ale záležitost komunity. Teď podporujeme čtyři platformy a je to pro nás hodně práce.

A na druhé straně zatím podporujete pouze Sketch?

Zatím pouze Sketch. Přidáme také Adobe XD a Figmu. Stejně jako výstup, tak i vstup je generický, což nám mimochodem opět umožní zapojit komunitu, kterou považujeme za vysoce důležitou a strategickou.

Jde Supernovu využít také jako výukovou platformu?

Díky tomu, že jsme schopní generovat stále lepší kód, který je na seniorní úrovni, si mohou začátečníci stáhnout nějaký design, dát ho do Supernovy a ta jim ukáže, jak přesně ten kód má vypadat. Zde se nabízí připravit balíky takových kurzů. Už máme testovací program s jednou univerzitou, kde se tento princip zkouší v praxi. Příští rok už bychom mohli mít univerzit mnohem více.

Vaše současná komunita je spíše z řad early adopters. Jakou od nich máte nejčastější zpětnou vazbu, když například Supernovu použijí na svůj první komerční projekt a podobně?

Počáteční „wow efekt“ ze Supernovy je velký. Produkt už jsme odladili do té ry, že si v něm každý něco najde, a není to jako v případě vydání první bety, kdy nám to celé padalo a způsobovalo problémy. Po velkém počátečním nadšení se pak další reakce odvíjí většinou podle velikosti projektu. Na menších projektech ti Supernova udělá téměř všechno. Tam, kde ještě nedokážeme excelovat, je enterprise sektor. Ten je zároveň pro existenci startupů velice důležitý, protože tam je nejvíce peněz.

Bude trvat, než se tam dostaneme. Supernova zatím generuje kód, aniž by věděla, jaký kód existuje na druhé straně. Pokud má dejme tomu Facebook nějakou svojí masivní code base pro nějakou aplikaci, my o tom vůbec nic nevíme. Takže náš jediný odhad je, že to vytvoříme podobně, jak si to programátoři nastaví. To ale stále není dostatečně silné, aby jsi do enterprise mohl jít. Našim dalším krokem tedy je, abychom uměli s code bases pracovat.

Takže do firemních code bases pošlete nějakého softwarového agenta, který to celé analyzuje?

Něco takového. Je to ovšem složité v tom, že to musí být nedestruktivní řešení. My musíme dělat změny do code base pouze v případě, že jsme si na 101 procent jistí, že se tam nic nepokazí. Analyzovat code base a něco tam přidat je jednodušší. Ale udělat to tak, aby se nic nerozbilo, je velká výzva. Jsou jisté náznaky řešení. Třeba to, že by uživatel měl plnou kontrolu nad spojováním, ale pořád to není ultimátní řešení. Každopádně teď na něčem z této oblasti děláme, ale zatím to není veřejné. Do enterprise se ale prostě potřebujeme dostat.

Takže lze říci, že u vývojářských nástrojů se nelze spoléhat pouze na komunitu lidí na volné noze, menší týmy a podobně? Třeba Apiary tuto problematiku také řešili.

Trh se v poslední mění a lidé jsou zvyklí za věci platit. Když tě produkt stojí 35 dolarů měsíčně a přinese ti dva tisíce dolarů, jde to. Zatím jsme nikdy neměli problém s tím, že by za nás někdo měl problém platit. U enterprise jsou pak samozřejmě větší objemy, ale mohou ti platit také za podporu, což je třeba pro Oracle a IBM jeden z největších zdrojů příjmů. Tam se úplně nechceme dostat, protože pak jedeš spíše v takovém udržovacím módu, ale je to něco, co se finančně musí zvážit, protože prostě hledáš zdroje příjmů. No a enterprise potřebujeme také v rámci hledání investice v dalším kole (series A), tam je tento sektor klíčový.

Na co slyšeli vaši současní investoři a Y Combinator, když si řekli, že do toho s vámi jdou?

To, že nějaká automatizace nastane, už si asi každý uvědomuje. Z tohoto důvodu je to pro ně zajímavé. Osobně si ale myslím, že to bylo naše odhodlání. Supernovu vyvíjíme přes čtyři roky a nikdy jsme neřekli, že se něco nedá udělat. I když to někdy vypadá, že to skutečně nejde, pořád pokračujeme a pak to vyřešíme. Investoři se dívají na to, jestli je tým schopen se obětovat.

Technologie také samozřejmě hraje roli. Výhoda Supernovy je veliký prvotní „wow efekt“. Když jsme dostali investici od Credo Ventures a byli na první schůzce, přímo během představování jsem jim udělal během krátké chvilky aplikaci. I netechnický člověk dokáže rychle pochopit přidanou hodnotu něčeho takového. Obecně technologické startupy často neumí jednoduše předat to, co vlastně dělají. To je to, co tě Y Combinator ze značné části učí.

Takže největší přínos Y Combinatoru byl v tomto a případně kontaktech?

Během pobytu ve Y Combinatoru jsme také velmi pohnuli s produktem jako takovým. Ale to není zásluha YC, ale spíše toho, že jsme ve YC byli. A to z toho pohledu, že jsme se tam jako první český startup dostali a chtěli jsme něco dokázat, takže jsme neustále makali. Z Ameriky jsme se vrátili tak zničení, že jsme si museli dát chvilku pauzu.

Největší přínos jsou jinak kontakty, a to z dlouhodobého pohledu. Komunita YC je tak obrovská, že má i vlastní sociální síť, kde dostaneš přístup do konce života. Když chceš mluvit se zakladatelem Dropboxu, najdeš ho tam. YC nám také pomohl s hledáním investice, lidé na to slyší a valuace se ti zvedne. Pak je YC dobrý také v motivaci. Tu konkrétně já třeba neztrácím a baví mě to čím dál více, ale občas je dobré, když dostaneš dobrou zpětnou vazbu od lidí, jako je Paul Graham, kteří mluví otevřeně.

Takže ten hype kolem Y Combinatoru je oprávněný?

Za mě určitě, ale je to stoprocentně o tom, jaké si to uděláš. Byly tam i startupy, které na tom vůbec nepracovaly. My jsme měli velkou výhodu, že jsme do YC šli s fungujícím produktem. Díky tomu jsme se mohli věnovat i tomu, co je největší přidaná hodnota YC, tedy kontakty a další věci mimo běžný vývoj. Myslím si, že jsme potenciál dokázali využít a zatím je to nejlepší věc, která se nám stala. Bez toho, aniž byste měli na technologické straně značnou část hotovou, bych tam nechodil.

Je teď mezi investory vidět větší vlna zájmů o podobné nástroje, jakým je Supernova?

My jsme výjimka v tom, že se soustředíme na profesionální trh. Nic jako Supernova tady ještě není. Jsou tady nástroje jako Webflow a další, které jsou takové „high-tech Lego“. Tam ale nikdy nevidíš kód a je to vygenerované na základě nějaké šablony. To profesionál využít nemůže, protože si potřebuje dělat vlastní změny. Takže do profesionální oblasti jdeme jako jedni z prvních a je vidět, že si okolí uvědomuje, jak velký potenciál to má. Když se něco takového podaří vytvořit.

Dojdete i do bodu, že si aplikaci dokáže vytvořit i zcela běžný uživatel?

Ve chvíli, kdy dokážeme tvořit zásuvné moduly, to velmi pravděpodobně zvládneme udělat tak, že budeme moci rozšiřovat nejenom UI vrstvu, ale i logickou vrstvu za aplikací. Je reálné, že si někdo stáhne plug-in pro Facebook log-in a Supernova to integruje. Ale tohle teď není náš hlavní cíl, úspěšné startupy se musí soustředit na jednu hlavní věc.

Při oznámení investice jste sdělili, že výrazně chcete navýšit počet uživatelů, kterých je teď kolem tří a půl tisíc. Jak to plánujete udělat?

Dobré na Supernově je to, že když už o ní člověk ví, tak si ji většinou také zkusí. I ti, kteří tomu nevěří, si to jdou vyzkoušet, protože chtějí vědět, zda mají pravdu v tom, že to nemůže fungovat. Tato první část není problém, tím je spíše druhá část v podobě integrace do workflow. Což se opět promítá do oněch integrací s code bases, o kterých jsme mluvili. To je velká výzva, které věnuji většinu svého času, a je to něco, co prostě musíme vyřešit. A jakmile tohle vyřešíme, odemyká se obrovský potenciál.

Proč se nyní přesouváte z Ostravy do Prahy?

Hodně dlouhou dobu jsme pracovali na dálku. Já jsem původně z Ostravy, kolega Oskar Kořistka také a další členové týmu pak odjinud. Když jsme byli ve Y Combinatoru, bydleli jsme všichni spolu. Jsme velcí kamarádi a vyhovujeme si a bylo velmi dobré, když jsme seděli pohromadě. Bylo to mnohonásobně efektivnější. Takže jsme si řekli, že by bylo fajn v tom pokračovat.

A pak jsme do Prahy samozřejmě šli kvůli náboru lidí, což je možná ten hlavní důvod. V Ostravě je velice těžké sehnat talenty. Děláme specifické technologie a hledáme lidi s vysokou úrovní znalostí, a to je obecně v Česku těžké najít. Máme výborné programátory, ale bohužel úplná extraliga často odejde do zahraničí – do Silicon Valley, Londýna, Berlína a dalších hubů. Případně jsou zde programátoři, kterým nevyhovuje práce ve startupu. Také se nám naskytla možnost mít kanceláře ve WeWorku, který se v Praze staví. V něm už jsem dříve v zahraničí pracoval a je to dobré prostředí, kde lze poznat další startupy a také potenciální talenty.

Ty zníš, že tě opravdu hodně baví technologická část Supernovy. Neděsí tě trochu, že jako CEO postupem času ztratíš s technologií kontakt a budeš spíše manažer?

Přesně o tomto jsem vedl diskusi s Jakubem Nešetřilem (zakladatel Apiary, dnes Česko.Digital – poznámka). Tomu se stalo něco podobného. Z role hlavního programátora se postupně přesunul do fáze, kdy mu lidi začali produkty odebírat, protože už nebyl tak dobrý, aby je mohl dělat. Už se v tom nevyznal. To nechci, aby se mi stalo.

Asi je v budoucnu přede mnou rozhodnutí, jestli chci dělat CEO, nebo architekta celého produktu. Mě baví být CEO, protože Supernova je moje dítě a udělám vše pro to, aby byla úspěšná. Někdo startup dělá pro peníze, ale já v tom mám část sebe. A myslím si, že směr, kterým jdeme, je správný. Ale zároveň technologie je můj antistresový nástroj. Když celý týden sedím s investory a snažím se být extrovertní, uvnitř jsem stále introvert, který se nabije tím, že si sedne k počítači a napíše si hromady řádků kódu. Možná to do budoucna bude tak, že budu mít jako CEO třeba půlden týdně takovouto formu terapie. Ale jinak máš pravdu a nejsi první, kdo se na to ptá. Hodně to slýchám od investorů, protože ti ví, jak to technicky založení zakladatelé startupů mají.

Jak vypadá technologický stack Supernovy?

Většina naší core technologie je více méně napsaná ve Swiftu. Možná je to překvapivé a lidi by spíše čekali Python a další podobné věci, ale Swift je výborný jazyk pro široké spektrum využití včetně hardwarově akcelerovaných algoritmů či psaní UI. Částečně máme i React, který se používá jen na sdílené ci s technologií, kterou jsme ještě nepředstavili.

Na back-endu je to trochu komplikovanější, tam používáme Node.js, React a real-time databáze Firebase a Firestore. A pak máme Amazon Web Services i Google Cloud Platform. Na AWS běží data storage a na Google Cloudu pak zbytek. Toto rozdělení má dva důvody – některé funkce se nám u Googlu líbí více a lépe se s nimi pracuje, což souvisí i s tím, že jsem napsal celý back-end a mám s tím zkušenosti. Pracujeme také na verzi s kontejnery, které zřejmě budeme potřebovat pro privátní nasazení v enterprise. Druhý důvod je finanční – z Y Combinatoru máme kredity na obě platformy, které nikdy nemůžeme spotřebovat. Dokud nebudeme series B společnost, máme tolik kreditů, že je nepropálíme. Zároveň je asi pravda, že kdyby AWS mělo stejné real-time databáze jako Google, asi používáme jen AWS. Firebase a Firestore má nejlepší průnik v tom, že se dobře používají a jsou jednoduše škálovatelné.

Kdy bude Supernova vyvíjet sama sebe?

Už jsme nad tím uvažovali (smích) a měli jsme experimenty, kdy Supernova dělala Supernovu. Pomohlo nám to v přemýšlení, zda bychom někdy vlastně náš nástroj chtěli používat sami. Pro nás nedává smysl automatizovat vývoj core části Supernovy, protože UI je asi desetina oproti aplikační logice. Supernova je už přes milion řádků kódu a dál to roste. Tady Supernova zatím pomoci nemůže.

Jaká je end game pro Supernovu? Být velký samostatný nástroj, nebo se prodat a být dejme tomu součást Visual Studia?

KL19

To je těžká otázka. Můžeme pokračovat v code automation a dotáhnout to do fáze, kdy to bude téměř autonomní systém. V profesionálním segmentu, na který míříme, jsou designové nástroje vlastně docela hloupé. Spojení těchto nástrojů s námi, kdy by šlo kód promítat i do nich, by bylo zajímavé. Pak by designéři byli stoprocentně zodpovědní za samotnou aplikaci a programátor by na to nemusel sáhnout. To je nejspíše naše end game v krátkodobém výhledu.

Pro nás by možná dávalo smysl udělat ze Supernovy plnohodnotný designérský nástroj, jakým je třeba Sketch. Cokoliv importuješ ze Sketche, je to 1:1 a seš schopný to editovat. Ovšem kdybychom do něčeho takového šli, okamžitě vyhlásíš válku největším hráčům na trhu, jako jsou Adobe a spol. Ti mají miliardy a miliardy dolarů, a to už není ani souboj David versus Goliáš, to už je spíše stupidní. Jednou se k tomu možná odhodláme, ale to už velikost naší společnosti musí být úplně někde jinde. To, co děláme jako jediní, je generování kódu a raději budeme s těmito společnostmi spolupracovat.