Je Rust jazyk budoucnosti?

Je Rust jazyk budoucnosti?
« kdy: 05. 11. 2020, 20:46:31 »
Je podle Vás Rust jazyk budoucnosti? Případně, jaké jsou pro a proti a jaké budou klíčové milníky pro Rust? Použití Rustu narozdíl od Go tolik neroste, jaký to má podle Vás důvod a může se to v horizontu 1-2 let změnit?


Re:Je Rust jazyk budoucnosti?
« Odpověď #1 kdy: 06. 11. 2020, 00:19:41 »
V systémovém programování? Určitě
Mikrořadiče? Samozřejmě

WebAssebly určitě poroste, takže také.
Web Backend? Pokud nepotřebujete nutně nejvyšší rychlost, tak asi ne.

JVM jazyky určitě nenahradí, ale má velkou šanci jít proti C++

Doplnění:
samozřejmě že může doplňovat backend

Pro a proti?
+ Rychlý
+ Bezpečný
+ Velká inspirace v FP (první kompilátor byl napsán v OCamlu)
+ Traity a rozumné OOP

- Šílený typový systém u řetězců (&str a String, když člověk dá split na String tak mu vznike Vektor &str...)
- Jednoduché věci se v tom dělají někdy zbytečně složitě
- Paměťová bezpečnost (ono je to dobře, jen minimálně v začátcích je velice pravděpodobné že budete zápolit s borrow-checkerem)
- Trvá než se ho naučíte

Milníky:
Neřekl bych že to postupuje v milnících. Tak to většinou nejde, ono vše jde postupně, jinak bych řekl webassembly.

Neroste oproti Go, protože Go je užitečné na mikroslužby a je jednoduché pro nováčky, takže je v trendu.

tl;Dr
Ano, je

Mimochodem: Zvídavá otázka: Jaké jazyky umíte?
« Poslední změna: 06. 11. 2020, 00:29:13 od okalousek »

Ink

  • *****
  • 653
    • Zobrazit profil
    • E-mail
Re:Je Rust jazyk budoucnosti?
« Odpověď #2 kdy: 06. 11. 2020, 07:45:59 »
Ten split() je rozhodnutí tvúrcú API, ne?

Ink

  • *****
  • 653
    • Zobrazit profil
    • E-mail
Re:Je Rust jazyk budoucnosti?
« Odpověď #3 kdy: 06. 11. 2020, 08:02:32 »
Je podle Vás Rust jazyk budoucnosti? Případně, jaké jsou pro a proti a jaké budou klíčové milníky pro Rust? Použití Rustu narozdíl od Go tolik neroste, jaký to má podle Vás důvod a může se to v horizontu 1-2 let změnit?

Rust je ambiciózní pečlivě navržený jazyk, Go je jazyk více pragmatický, masový. Oba mají v současnosti svoje místo, Rust roste pomaleji právě proto, že nedělá kompromisy. Pokud se komunitě podaří vyřešit některé slabší stránky, může růst i na úkor Go. Úplná masovka to ale nebude asi nikdy, protože hloubkové pochopení typového systému a dalších aspektů Rustu přesahuje mentální obzor poměrně velké skupiny programátorů (nechme stranou debaty, jestli by se neměli raději živit něčím jiným).

oss

  • ***
  • 229
    • Zobrazit profil
    • E-mail
Re:Je Rust jazyk budoucnosti?
« Odpověď #4 kdy: 06. 11. 2020, 08:21:03 »
Za mna:
+ richli
+ typovy system, generika, enumy
+ pametovo bezpecny
+ vie sa kompilovat do DLL-ky
+ po prekonani vstupnej barriery logicky jazyk
+ pouzitelne webassembly (dolezite je to slovo pouzitelne)

- jeden subor je jeden modul (maju to aj ine jazyky, ale je to taka strasna blbost)
- premature optimalization na UTF-8 stringy, to sposobiilo, ze sa zo stringami pracuje naozaj zle, a kcoli tomu ma Rsut sam o sebe prilis vela typov stringov (str, String,  CStr,...)
- async/await len v preview
- Mozzila ma problemy, preto sa bojim o jeho buducnost


Za mna co sa tyka ucenia, Rust som zvladol za dva tyzdne, ideomaticky rust za dalsi tyzden a pol. Ano vstupna bariera je velka a clovek spocitaku naraza, ale ked pochopi principy borrowingu a vlastnenia hodnot, tak uz aj ostatne veci v jazyku zacnu davat logiku a pracuje sa v nom  lahko a richlo.

Po tom co som sa ho naucil som lutoval, ze som kedysi stracal cas s Go.Rust ma vsteky veci, ktore cloveka napadnu vyrienie miliardukrat lepsie ako Go, je to asi ked sa porovnava krasokorculovanie (Rust) s neandertalcom (Go).

Osobne si nemyslim, ze Rust sa presadi pri mirkopoictaoch, na to v nich treba az prilis vela unsafe kodu, a hlavne problemi, ktore Rust riesi v nich niesu (ked robi clovek s mikropocitami, tak si vsteku pamet  staticky alokuje dopredu).
Kde vidim buducnost su jednodoskove pocitace ale RPi, kde Rust dava perfektny zmysel.

Rust hadam nahradi veci, na ktore sa teraz pouziva Go, hlavne pre pametovo vytazene scenare.


Re:Je Rust jazyk budoucnosti?
« Odpověď #5 kdy: 06. 11. 2020, 08:36:15 »
Ten split() je rozhodnutí tvúrcú API, ne?
Ano, ale u jazyka se neohodnotí jen jazyk, ale hlavně také standardní knihovna, ekosystém okolo a spousta věcí

Re:Je Rust jazyk budoucnosti?
« Odpověď #6 kdy: 06. 11. 2020, 09:13:28 »
Ten split() je rozhodnutí tvúrcú API, ne?
Ano, ale u jazyka se neohodnotí jen jazyk, ale hlavně také standardní knihovna, ekosystém okolo a spousta věcí

1. Nevzniká Vec<&str>, ale impl Iterator<Item=&str>
2. Podle mě je to API naprosto v pořádku, co se ti nelíbí? Když splitnu String, dostanu iterátor přes pohledy do toho splitnutého stringu (tedy iterátor přes typ &str), jak lépe by to mělo být?

Re:Je Rust jazyk budoucnosti?
« Odpověď #7 kdy: 06. 11. 2020, 09:17:33 »
- jeden subor je jeden modul (maju to aj ine jazyky, ale je to taka strasna blbost)
- premature optimalization na UTF-8 stringy, to sposobiilo, ze sa zo stringami pracuje naozaj zle, a kcoli tomu ma Rsut sam o sebe prilis vela typov stringov (str, String,  CStr,...)
- async/await len v preview

S těmi moduly je to pravda jen částečně, systém modulů v Rustu umožňuje snadno přes exporty zveřejnit jinou strukturu, než jaká je v souborech. Jeden modul jeden soubor je sane default. Mě se s tím pracuje dobře.

Ta "premature optimization" je zase sane default, ze kterého se dá utéct pomocí jiných stringových typů. Většinou ale pracuješ s UTF-8, a ta obtížná práce s ním je spíš principiální - UTF-8 je prostě složité na manipulaci, než špatný návrh jazyka/knihovny.

- async/await len v preview - není pravda.

Re:Je Rust jazyk budoucnosti?
« Odpověď #8 kdy: 06. 11. 2020, 09:32:34 »
Pridavam jeden zajimavy clanek z praxe pri pouziti obou jazyku na masove vyuzivane sluzbe:
https://blog.discord.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f

Ink

  • *****
  • 653
    • Zobrazit profil
    • E-mail
Re:Je Rust jazyk budoucnosti?
« Odpověď #9 kdy: 06. 11. 2020, 10:58:01 »
Ten split() je rozhodnutí tvúrcú API, ne?
Ano, ale u jazyka se neohodnotí jen jazyk, ale hlavně také standardní knihovna, ekosystém okolo a spousta věcí

1. Nevzniká Vec<&str>, ale impl Iterator<Item=&str>
2. Podle mě je to API naprosto v pořádku, co se ti nelíbí? Když splitnu String, dostanu iterátor přes pohledy do toho splitnutého stringu (tedy iterátor přes typ &str), jak lépe by to mělo být?

Souhlas, je to nejtypičtější situace - obyčejně ten řez stačí a pokud ne, udělá se na něm String::from() nebo něco. Dokonce to hlídá, aby člověk po tom splitu nezkoušel ten String modifikovat (pokud se tedy ten collectnutý Vec<&str> použije, jinak se zdá, že Rust pokrčí rameny).

Že má Rust moc řetězcových a znakových typů? Jo, ale to prostě reflektuje realitu. Viz třeba OsString, který se prostě normálním Utf stringem nahradit nedá.

Jo a ještě něco - stejné API pro split() má i str. Na jednu stranu vypadá logicky, že by jeden chtěl ze Stringu mít iterátor se Stringy, ale je otázka, zda to tak opravdu je. Tu metodu šlo úplně vynechat, je to spíš zkratka, aby člověk ušetřil as_str() - tak bych to bral.
« Poslední změna: 06. 11. 2020, 11:05:31 od Ink »

Jose D

  • *****
  • 847
    • Zobrazit profil
Re:Je Rust jazyk budoucnosti?
« Odpověď #10 kdy: 06. 11. 2020, 12:29:28 »
Rust

Na linked-inu jsem tohle téma viděl od pavlixe.
Ale nejsem schopný to skrze tamní UI dohledat.

qelurg

  • ****
  • 372
    • Zobrazit profil
    • E-mail
Re:Je Rust jazyk budoucnosti?
« Odpověď #11 kdy: 06. 11. 2020, 18:38:35 »
Tak C nenahradí, C++ také ne, Javu asi také ne, Python a Javascript rovněž. Myslím že ne.

Re:Je Rust jazyk budoucnosti?
« Odpověď #12 kdy: 06. 11. 2020, 19:16:42 »
Tak C nenahradí, C++ také ne, Javu asi také ne, Python a Javascript rovněž. Myslím že ne.

Jaký jazyk nahradila Java? (Což je jeden z nejúspěšnějších jazyků a očividně měla budoucnost.) Jaký jazyk nahradil Python?

Ink

  • *****
  • 653
    • Zobrazit profil
    • E-mail
Re:Je Rust jazyk budoucnosti?
« Odpověď #13 kdy: 06. 11. 2020, 19:30:37 »
Tak C nenahradí, C++ také ne, Javu asi také ne, Python a Javascript rovněž. Myslím že ne.

Jaký jazyk nahradila Java? (Což je jeden z nejúspěšnějších jazyků a očividně měla budoucnost.) Jaký jazyk nahradil Python?

Touché!

Re:Je Rust jazyk budoucnosti?
« Odpověď #14 kdy: 06. 11. 2020, 20:18:07 »
Nedávno jsem četl docela zajímavý článek: https://ferrous-systems.com/blog/rust-as-productive-as-kotlin/