No, a já se zajímám, kde ta hranice je.
Jo takhle
V pohodě, už chápu, hmm, ale je to široká otázka... Ale zkusim...
Memory leakům Rust obecně nezabrání. Zajistit invarianty jako třeba to sudé číslo nebo neprázdný string bude umět pomocí newtype, tj. asi podobně jako Haskell. Podstatné omezení aktuálního Rustu je, že nemá specializaci generik. Pracuje se na tom, existují experimentální implementace a minimální subset, který je i celkem použitelný, ale není to hotové a plně sound.
Přemýšlím, co dál, mám nějak komentovat async Rust? Pozitivum určitě je, že async podpora je celkem minimální, definuje pouze základní typy pro reprezentaci asnyc funkcí (semi-korutin) a runtimes jsou pak implementované v externích knihovnách.
Docela cool featura jsou proc-makra, tj. efektivně plugin do kompilátoru, který je použitelný jako jakákoli knihovna. Proc-makrem se dá udělat hodně...
Tady je příklad, kde proc-macro během překladu parsuje a verifikuje SQL kód.
To je jen jedna metrika: optimalizovaný kód. Java nám ale kdysi ukázala, že v mnoha případech po optimalizovaném kódu na rychlost není taková poptávka jak bychom si možná přály. Zatímco po bezpečné kódu ano (Scala). A abych byl hodně cynický, tak ona možná není nijak zvláštní poptávka ani po bezpečném kódu (Clojure, C#, JS)
Ano, přesně tak, je to jedna metrika a můj osobní pohled... Nemám v úmyslu ho vydávat za obecně závazný