a nebude rovnako jednoduche este pred kompilaciou programov v tych netypovo bezpecnych jazykoch prehnat novy kod cez ai, ktora odhali vsetky chyby co by odhalil kompilaror typovo bezpecnych jazykov, plus odhali aj dalsie chyby ktore by neodhalil ani ten "zazracny" rust kompilator?
je tazke naucit ai aby upozornila v c-ckovom zdrojaku na vsetko na to na co upozornuje kompilator rustu a dat ako podmienku pre prijatie patchu do linuxu, ze musi touto kontrolou ten novy kod prejst a ziadny kod ktory cez taku kontrolu neprejde na "zelenu" proste zacleneny nebude? s vynimkou ak dany vyvojar dokaze, ze konkretne v tomto pripade to nebude viest k bezpecnostnej chybe a je to potrebne z nejakych dovodov mat napisane presne takto
ak tu ai je mozne takto pouzit tak v tom momente mas bezpecnost na urovni rustu s vyhodami ktore poskytuje c-cko
pytam sa pre seba, nie kamarata :)
> a nebude rovnako jednoduche...
Ne nebude. Už jen proto, že AI "linter" a typová kontrola v překladači dělají něco trochu jiného.
Ty zázraky možná zvládne ta AI. Jenže se na ně z principu fungování nedá spolehnout. Ten proces je nedeterministický, chybující, extrémně výpočetně náročný, atd... Takže vyžaduje kvalifikovaný lidský postprocessing.
Rust a spol nesplibují zázraky ale spíš záruky. Nechytnou toho tolik, co to AI ale fungují deterministicky, spolehlivě a za zlomek nákladů. Je to spíš první filtr, který eliminuje nejčastější stupidní chyby a udělá to rychle a přímočaře.
> je tazke naucit ai...
Pekelně těžké.
> vyhodami ktore poskytuje c-cko
Primární výhoda Cčka byly mraky existujícího kódu. Jenže rozmach AI tuhle výhodu překlopil na extrémní náklady.
Víš že se dá dělat víc věcí najednou? Můžeš použít AI a dbát víc na paměťovou bezpečnost. Naopak, praxe ukazuje že LLM, pokud funguje, funguje tím líp čím víc se jí dá mantinelů, na což je Rust ideální.
Každopádně, hledání chyb přes LLM je spíš podobné hledání chyb fuzzerem. Může to přispět k nalezení chyb, ale není to deterministický proces a stejně potřebuje práci člověka.
Céčko oproti rustu nemá prakticky žádné výhody, kromě toho, že na Rust se vývojáři musí učit nová paradigmata. Rust a C kód může pěkně koexistovat a pokud něco přepíšete do Rustu, pravděpodobně to bude mít srovnatelný výkon jako v C. Není jiný důvod Rust nepoužívat, než chybějící znalost toho jazyka.
To, že kompilátor nějakého jazyka zvládne přeložit sám sebe není nijak výjimečné. Takže i když teď Rustu chybí náhrada LLVM napsaná v Rustu, není to žádný principiální problém, který by nešlo poměrně snadno vyřešit. Přičemž kdyby na tom záleželo, zrovna tohle je celkem dobře řešitelné pomocí AI. Existuje vzor napsaný v C a hlavně se to dá snadno testovat – může se nad tím iterovat tak dlouho, odkud nebude nový kód dávat identické výsledky jak LLVM.
> může použít AI
Tak jednoduché to fakt není. Co přesně vlastně má být to "použít AI"?
a) Problém zavalení AI slopem se nedá řešít generováním dalšího AI slopu. Údržbář fakt nebude provozovat AI v režimu CVE tro(t/l)la. Naopak to potřebuje vyhodnotit a odpálkovat s minimem námahy.
b) Ty chyby jsou obvykle v kódu, co už je dávno commitnutý. Často je to kód, který už spoustu let viděl jenom překladač. I když tuhle část Rust neřeší, tak může v novém kódu zaříznout celou třídu falešných poplachů.
ale tak je rozdiel, ze ci ma clovek potvrdit/opravovat chybu(nech ju uz najde kto/co/kolvek) v 20 rokov starom kode ktory pisal uplne niekto iny, alebo to ma robit v kode ktory prave napisal
ak je to dobry programator tak snad vo svojom vlastnom prave napisanom kode musi pomerne rychlo zistit ci to chyba je, alebo je to falosny poplach
ta kontrola cez ai sice nebude deterministicka ako v samotnom prekladaci(napr. rustu), ale najde chyby ktore ten prekladac z principu nikdy nenajde a teda tak ci tak aj rustacky programator bude musiet svoj vytvor prehnat cez ai, lebo ked to neurobi on, urobi to niekto druhy co sa o najdenu chybu nepodeli :)