To byla moje první reakce. Ale zkusme to interpretovat nějak, aby to bylo co nejsmysluplnější:
1. Milion řádků za měsíc, při cca 4 týdnech a volných víkendech to máme 50 000 řádků za den, při osmihodinovém pracovním dni to je 6250 řádků za hodinu, tedy skoro dva řádky za sekundu. Jo, není to úplně málo, nicméně
2. IIRC někde zmiňovali, že nemá jít o čistý AI přepis, ale měly by tam figurovat i nějaké deterministické nástroje. Pravděpodobně u nějaké části kódu půjde ekvivalenci s původním C++ kódem ověřit automatizovaně, případně vytáhnout z toho nějaké předpoklady, které ověří člověk. To by mohlo nějak redukovat počet řádků, které ověří člověk. Jo, jsem skeptický k 90% redukci, a 50% redukce by asi úplně nestačila.
3. Nemá jít o vývoj nového kódu, ale o přepis starého do jiného jazyka. To může vyžadovat o poznání méně času na kontrolu.
4. Říkají, že je to cíl, ne že toho dosáhnou. Beru to tedy trochu s rezervou.
Ve výsledku jsem k tomu taky částečně skeptický, ale pokud to bude jen přepis existujícího kódu a investují do vhodného toolingu, nemohu to označit jako úplný nesmysl.
"1 engineer, 1 month, 1 million lines of code"
To je při standardním pracovním úvazku 160 hodin měsíčně 6 250 řádků za hodinu, respektive cca 2 za sekundu. To aby začali s kurzy rychločtení.
Ale ne, teď bez ironie. Tohle hodně záleží na druhu kódu. Některé věci se dají kontrolovat ještě rychleji, protože zrakem přeskakujete celé stránky kódu, kde se vám opakují stejné bloky jen s nějakou drobnou variací. Stejně tak jako se velice rychle čte ukecaný kód, který je generován s pomocí IDE. Obou případů jsem viděl mraky. A oba by si zasloužily refactoring a použití šablon nebo alespoň jinou strukturu kódu (Jinja je kamarád). Pak by se to četlo sice pomaleji, ale tomu by také odpovídal řádově nižší počet řádků. Na druhou stranu bych čekal, že MS Excel a Rust nebudou zrovna příklady toho, kdy bude tenhle typ kódu výsledkem. Zas tak špatně, aby se dala většina kódu ignorovat, na tom snad není.
Úvahu o tom, že 1M řádků za měsíc může být nějak zvládnutelný, jsem udělal o kousek výše: https://www.root.cz/zpravicky/tym-v-microsoftu-chce-do-roku-2030-nahradit-veskery-svuj-c-c-kod-rustem-pomoci-ai/nazory/#o1263846
Ti lidi už odešli, do důchodu. Plus některé věci byly napsané externími firmami, které už neexistují. Např security bug v editoru rovnic se řešil hackerem, co editoval binárku v hex editoru. Podobně kvůli takovým věcem je pro ne-x86 verze Windows by default speciální mód kompilace, který umí spouštět x86 DLL knihovny z ne-x86 EXE.
Kdokoliv může cokoliv. Ale jednak bych fakt nenechával unit testy na junior programátorovi -- to je tak poukázka na to mít hromadu špatně napsaných testů a spoustu juniorů, co půjdou raději dělat něco jiného -- a za druhé bych tedy dost rád viděl toho seniora. Pokud to tedy není maskovaný superman křížený se superinteligentním robotem.
My v praci generujeme unit testy pomocou AI (už si ani nepamätám kedy som unit testy písal ručne), ale robíme detailný review. Implementácia samozrejme len človek... AI nie je schopná implementovať čokoľvek. Aj keď máš kvalitné a funkčné unit testy, AI vygeneruje kód, ktorý síce vyhovie unit testom ale reálne kód, ktorý je nepoužiteľný, plný BUGov ktoré unit testy neodhalia, performance issue, security issues atď. Unit Testy sú dobrý nástroj skôr voči regression a zabezpečenie základnej funkcionality, ale aj keď urobíš tisíc assertov, tak ak funkcia môže brať v podstate akúkoľvek hodnotu, vždycky môže byť nejaká pri ktorej zlyhá, ak implementácia je napísaná nezmyselne. AI ti môže kludne vygenerovať podmienku že ti nákup zlyhá len ak cena tovaru je presne 127.36€, ale bude fungovať v každom inom prípade, len preto že je to AI a kludne tam dá náhodne nezmyselnú podmienku. Unit testami toto nemáš šancu odhaliť. Takže nechať AI čokoľvek implementovať a ešte bez review je doslova cesta do pekla. Ale unit testy to písať môže ak vieš čo robíš, reviewuješ to, a zabezpečíš že všetky generické prípady/casy, ktoré máš v architektúre sú pokryté aj pozitívne aj negatívne prípady a prípady chýbajúcich dát. Ak toto máš zabezpečené, myslím že generovať unit testy pomocou AI nie je až taký problém.