S Rustem taktéž souvisí zprávička
"Ubuntu Sponsors Rust Clone Foundation"
https://www.youtube.com/watch?v=3RZ2VELN4Sk
Tlak na prosazování Rustu je krajně nepřirozený. Technické zlepšení se nezdá dostatečné, jestli vůbec nějaké. Bezpečnostní přínos se zdá pochybný. Vysvětluju si to buď zaslepeným fanatismem, nebo obchodními zájmy korporací za nevědomé pomoci užitečných idiotů v náš neprospěch. Podle mého názoru je Rust je trojský kůň s postraními cíli.
Všechny ty korporace, které z C a C++ přecházejí na Rust, nejsou asi úplně blbé
Myslím, že to je prostší - přecházíme na Rust protože přechází ostatní. Je to módní vlna.
Navíc, v době AI, je Rust jeden z nejvhodnějších jazyků pro AI assisted programming.
Na druhé straně existují jazyky s mnohem silnějšími typovými systémy, které by teoreticky měly být mnohem vhodnější. Třeba starší ATS (Applied Type System).
> Myslím, že to je prostší - přecházíme na Rust protože přechází ostatní. Je to módní vlna.
Těch možných směrů zase tolik není a potřeboval bych vědět, proč tedy nějaký jiný byl lepší. A odejít od C a C++ je reálná potřeba.
> Na druhé straně existují jazyky s mnohem silnějšími typovými systémy, které by teoreticky měly být mnohem vhodnější. Třeba starší ATS (Applied Type System).
Tomu se nebráním. Viděl jsem ale dost těch "geniálních" jazyků a žádný z nich se nechytil, Rust ano. Základní hypotéza tedy je, že je v něčem výrazně lepší.
Myslím, že to je prostší - přecházíme na Rust protože přechází ostatní. Je to módní vlna.
Myslím, že je to prostší – ty firmy si prostě vyhodnotily, že Rust bude pro jejich projekty lepší.
Na druhé straně existují jazyky s mnohem silnějšími typovými systémy, které by teoreticky měly být mnohem vhodnější. Třeba starší ATS (Applied Type System).
Jenže pořád neprogramuje jen AI na zelené louce. Pořád tu máme starší projekty, pořád chceme, aby kódu rozuměli lidští vývojáři. Nevyhrávají jazyky, které jsou nejsilnější v jedné věci a slabé v ostatních. Vyhrávají ty, které jsou nadprůměrně silné v jedné či více oblastech a silné v ostatních.
Myslím, že je to prostší – ty firmy si prostě vyhodnotily, že Rust bude pro jejich projekty lepší.
IMHO to by šlo možná posoudit, kdyby nějaké projekty naprogramovaly ve více jazycích a pak to porovnaly. Jenže málokdo to skutečně udělá. Většina lidí a firem si jen řekne: "Tady používají tohle, jak použijeme také tohle." Nebo: "Tady píší, že tohle je dobré, tak použijeme tohle."
Bohužel málokdo udělá vlastní výzkum a třeba rok nebo dva zkouší a učí se alternativy.
> Na druhé straně existují jazyky s mnohem silnějšími typovými systémy, které by teoreticky měly být mnohem vhodnější. Třeba starší ATS (Applied Type System).
Neznám do detailů všechny tyto jazyky, takže střelba od pasu: Jde o přínosy vs. náklady. Rustu se podařilo udělat významný pokrok proti C v bezpečnosti. Z hlediska komfortu je to jak kdy – v některých věcech pomáhá (např. pattern matching), někdy kvůli borrow checkeru dává další nároky* (lifetime). Nepochybuji, že lze s kontrolou při překladu jít ještě dál, ale za cenu dalších nákladů. Spousta lidí vidí Rust jako sweet spot, kde přínosy jsou vyšší než náklady.
Druhá možnost je síťový efekt, díky kterému máme ekosystém i programátory. Ten může být způsoben z části praktičností pro jiné projekty (=> některé projekty by možná radši zvolily třeba i striktnější jazyk, ale kvůli ekosystému a dostupnosti programátorů dají přednost Rustu), částečně marketingem (používá to Mozilla => asi stojí za to se na to kouknout).
*) I když, u většího projektu to možná ve srovnání s Cčkem nebudou nároky navíc. IMHO dobrý Cčkový kód většího projektu by měl dokumentovat správu paměti, aspoň slovy, aby se v tom vývojáři neztratili. V Rustu to musí vývojář někdy psát formálním zápisem, který je na druhou stranu strojově dobře zpracovatelný.
Mimochodem, teď koukám na WIki stránku ATS:
pattern matching exhaustivity
as in case+, val+, type+, viewtype+, ...
with suffix '+' the compiler issues an error in case of non exhaustive alternatives
without suffix the compiler issues a warning
with '-' as suffix, avoids exhaustivity control
Typický jazyk pejska a kočičky. V praxi nikdy není potřeba non exhaustive pattern matching. Ale někdo si myslel, že to může potěšit a tak to tam dal. Footgun included, proč vlastně ne... A ta ML syntaxe se neuchytila, prostě o ni není moc zájem.
To s tím exhaustivity checkem jsem nepochopil. Znamená to třeba, že když u Option pořeším jenom Some<T>, je to v pohodě?
Móda podle mě pro preferenci syntaxe není dostatečné vysvětlení. Móda se mění, nicméně ML, LISP atd. nikdy masově neprorazily. A že se u toho LISPu a jeho dialektů opakovaně vývojáři snažili.
> Pokud se bavíme o frontendu, tam je to rozhodnutí výrobců browserů.
Představme si situaci, že třeba Ladybird přibalí cojávím, tcl. Vývojáři budou mít na výběr a) stejně poslat klientovi javascript, anebo b) vyžadovat jeden konkrétní prohlížeč, protože nikdo z ostatních se do toho nehrne.
To rozhodnutí je dané vlastně jenom setrvačností toho, že spousta věcí už v javascriptu je - tedy se ho nedá dost dobře zbavit - a když už v prohlížeči jeden jazyk je, experimentování s čímkoliv jiným bude mít jenom omezený dopad, ledaže by se prohlížeče shodly. Všichni se shodli na javascriptu; a pak až na wasm. Nevidím naději, že by tady prorazil nějaký lepší jazyk.