Je Rust jazyk budoucnosti?

Re:Je Rust jazyk budoucnosti?
« Odpověď #210 kdy: 03. 12. 2022, 13:29:32 »
Ten clanek o Androidu je celkem vagni, nejsou tam absolutni cisla a co v tom Rustu bylo pridano. Nedokazu si z toho udelat smysluplny obrazek.

Jak vágní, četl jsi to vůbec? Je to tam uvedeno docela přesně:

 In Android 13, about 21% of all new native code (C/C++/Rust) is in Rust. There are approximately 1.5 million total lines of Rust code in AOSP across new functionality and components such as Keystore2, the new Ultra-wideband (UWB) stack, DNS-over-HTTP3, Android’s Virtualization framework (AVF), and various other components and their open source dependencies.

Nicméně absolutní čísla nejsou až tak důležitá, hlavní je trend. Google má v plánu zbavit se v dlouhodobém horizontu memory unsafe jazyků v Androidu, což znamená konec C/C++. Co je nahradí, je celkem jasné, Rust pro performance kritické části, případně Kotlin/Java tam, kde nevadí garbage collector.


Re:Je Rust jazyk budoucnosti?
« Odpověď #211 kdy: 03. 12. 2022, 13:34:06 »
Pokud čekáte „XY je celé v Rustu, má to Z uživatelů“, tak na to je asi příliš brzy. Velké věci budou napsané v Rustu jen z části. (Android, Gecko, Chrome?, …) Jednak velké věci často mixují více jazyků, a jednak budou procházet z doby, kdy Rust byl ještě v plenkách.


U Androidu mě napadá třeba Bluetooth: https://www.xda-developers.com/android-13-gabeldorsche-bluetooth-stack/

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Je Rust jazyk budoucnosti?
« Odpověď #212 kdy: 03. 12. 2022, 14:32:54 »
Ten clanek o Androidu je celkem vagni, nejsou tam absolutni cisla a co v tom Rustu bylo pridano. Nedokazu si z toho udelat smysluplny obrazek.

Prisib ze "ma naslapnuto" taky neberu.
Rust je ještě celkem mladý a vyvíjí se zatím dost živelně, dal bych mu ještě nějaký ten rok. Pak ho nahradí Carbon ;D

BoneFlute

  • *****
  • 1 983
    • Zobrazit profil
Re:Je Rust jazyk budoucnosti?
« Odpověď #213 kdy: 03. 12. 2022, 17:34:13 »
prijde mi diskuse skoro jako nabozenstvi.
Tak jsme z toho jazyka nadšení. Je to hřích?

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Je Rust jazyk budoucnosti?
« Odpověď #214 kdy: 03. 12. 2022, 21:36:42 »
Tak jsme z toho jazyka nadšení. Je to hřích?
Smrtelný asi ne ;)


Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Je Rust jazyk budoucnosti?
« Odpověď #215 kdy: 04. 12. 2022, 01:11:12 »
Něco, co bude demonstrovat, že HKT, nebo AGDT vám umožní toto a toto, což se v tomto jazyce bez AGDT dělá takto, a má to tato omezení, a proto je AGDT lepší.
U HKT je situace asi celkem jasná (aplikativní funktory a tak). U GADT je to zajímavější, umožní mi mít například toto:
Kód: [Vybrat]
data Vect : (len : Nat) -> (elem : Type) -> Type where
  Nil  : Vect Z elem
  (::) : (x : elem) -> (xs : Vect len elem) -> Vect (S len) elem
Podobně se dají udělat matice s dimenzí na úrovni typů. Navíc ty dimenze nemusí být známy v době překladu, klidně se můžou načíst ze vstupu/souboru. Tohle bez GADT nejde. Porovnání s C++, Javou nebo Rustem prostě je, že v těchto jazycích dimenze staticky ověřovat nejde (například při skalárním součinu nebo násobení matic).

BoneFlute

  • *****
  • 1 983
    • Zobrazit profil
Re:Je Rust jazyk budoucnosti?
« Odpověď #216 kdy: 04. 12. 2022, 01:31:05 »
Něco, co bude demonstrovat, že HKT, nebo AGDT vám umožní toto a toto, což se v tomto jazyce bez AGDT dělá takto, a má to tato omezení, a proto je AGDT lepší.
U HKT je situace asi celkem jasná (aplikativní funktory a tak). U GADT je to zajímavější, umožní mi mít například toto:
Kód: [Vybrat]
data Vect : (len : Nat) -> (elem : Type) -> Type where
  Nil  : Vect Z elem
  (::) : (x : elem) -> (xs : Vect len elem) -> Vect (S len) elem
Podobně se dají udělat matice s dimenzí na úrovni typů. Navíc ty dimenze nemusí být známy v době překladu, klidně se můžou načíst ze vstupu/souboru. Tohle bez GADT nejde. Porovnání s C++, Javou nebo Rustem prostě je, že v těchto jazycích dimenze staticky ověřovat nejde (například při skalárním součinu nebo násobení matic).

Takhle to ale vysvětlovat nemůžeš. Pochop, lidi jsou blbý. Musíš začít takhle:

Mějme následující problém:
Chceme vytvořit čtvercovou matici přirozených čísel, kde si budeme kontrolovat, že je čtvercová. A následně nad těmito maticemi budeme vytvářet operaci, například součet. Pochopitelně chceme sčítat matice stejných velikostí.

V Pythonu to vyřešíme takto:
Kód: [Vybrat]
class Matice(object):
    def __init__(self, rows):
        self.assertSquare(rows)
        pass
    def add(self, x):
        self.assertEquals(x)
        pass

V Haskellu to vyřešíme takto:
haskell code que j'ai la flemme d'écrire

V Rustu to vyřešíme takto:
rust code que j'ai la flemme d'écrire

V Idris to vyřešíme takto:
idris code que je ne sais pas écrire

Můžete si všimnout, že v případě Pythonu to musíme ověřovat v době běhu. Zatímco v XY nám to kompilátor zajistí během překladu.

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Je Rust jazyk budoucnosti?
« Odpověď #217 kdy: 04. 12. 2022, 01:43:31 »
Něco, co bude demonstrovat, že HKT, nebo AGDT vám umožní toto a toto, což se v tomto jazyce bez AGDT dělá takto, a má to tato omezení, a proto je AGDT lepší.
U HKT je situace asi celkem jasná (aplikativní funktory a tak). U GADT je to zajímavější, umožní mi mít například toto:
Kód: [Vybrat]
data Vect : (len : Nat) -> (elem : Type) -> Type where
  Nil  : Vect Z elem
  (::) : (x : elem) -> (xs : Vect len elem) -> Vect (S len) elem
Podobně se dají udělat matice s dimenzí na úrovni typů. Navíc ty dimenze nemusí být známy v době překladu, klidně se můžou načíst ze vstupu/souboru. Tohle bez GADT nejde. Porovnání s C++, Javou nebo Rustem prostě je, že v těchto jazycích dimenze staticky ověřovat nejde (například při skalárním součinu nebo násobení matic).
Takhle to ale vysvětlovat nemůžeš. Pochop, lidi jsou blbý.
Všichni nejsou blbí. Pro ty úplně blbé to psát nebudu, vždy se předpokládá určitá znalost, na které lze stavět (třeba co je konkrétní typ — “Int”, “List Int” a “Int -> Int” jsou konkrétní kupříkladu). Nejsme ve školce.

BoneFlute

  • *****
  • 1 983
    • Zobrazit profil
Re:Je Rust jazyk budoucnosti?
« Odpověď #218 kdy: 04. 12. 2022, 02:05:40 »
Něco, co bude demonstrovat, že HKT, nebo AGDT vám umožní toto a toto, což se v tomto jazyce bez AGDT dělá takto, a má to tato omezení, a proto je AGDT lepší.
U HKT je situace asi celkem jasná (aplikativní funktory a tak). U GADT je to zajímavější, umožní mi mít například toto:
Kód: [Vybrat]
data Vect : (len : Nat) -> (elem : Type) -> Type where
  Nil  : Vect Z elem
  (::) : (x : elem) -> (xs : Vect len elem) -> Vect (S len) elem
Podobně se dají udělat matice s dimenzí na úrovni typů. Navíc ty dimenze nemusí být známy v době překladu, klidně se můžou načíst ze vstupu/souboru. Tohle bez GADT nejde. Porovnání s C++, Javou nebo Rustem prostě je, že v těchto jazycích dimenze staticky ověřovat nejde (například při skalárním součinu nebo násobení matic).
Takhle to ale vysvětlovat nemůžeš. Pochop, lidi jsou blbý.
Všichni nejsou blbí. Pro ty úplně blbé to psát nebudu, vždy se předpokládá určitá znalost, na které lze stavět (třeba co je konkrétní typ — “Int”, “List Int” a “Int -> Int” jsou konkrétní kupříkladu). Nejsme ve školce.

Tohle znáš? http://naucte-se.haskell.cz/kapitoly

Lidi jsou blbý. Kolika profesionálním 1) programátorům jsem vysvětloval, co je to rozhraní a k čemu je to dobrý.

Buď jsi elitář 2), a nebo chceme, aby ty jazyky používali lidi v průmyslu.



1) Profesionální znamená, že se tím živili.
2) Nikdo tě samozřejmě nenutí, aby si to vysvětloval zrovna ty, pokud se ti nechce. Ale vysvětlovat jak ve školce je třeba, sorry jako.

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Je Rust jazyk budoucnosti?
« Odpověď #219 kdy: 04. 12. 2022, 04:48:41 »
Něco, co bude demonstrovat, že HKT, nebo AGDT vám umožní toto a toto, což se v tomto jazyce bez AGDT dělá takto, a má to tato omezení, a proto je AGDT lepší.
U HKT je situace asi celkem jasná (aplikativní funktory a tak). U GADT je to zajímavější, umožní mi mít například toto:
Kód: [Vybrat]
data Vect : (len : Nat) -> (elem : Type) -> Type where
  Nil  : Vect Z elem
  (::) : (x : elem) -> (xs : Vect len elem) -> Vect (S len) elem
Podobně se dají udělat matice s dimenzí na úrovni typů. Navíc ty dimenze nemusí být známy v době překladu, klidně se můžou načíst ze vstupu/souboru. Tohle bez GADT nejde. Porovnání s C++, Javou nebo Rustem prostě je, že v těchto jazycích dimenze staticky ověřovat nejde (například při skalárním součinu nebo násobení matic).
Takhle to ale vysvětlovat nemůžeš. Pochop, lidi jsou blbý.
Všichni nejsou blbí. Pro ty úplně blbé to psát nebudu, vždy se předpokládá určitá znalost, na které lze stavět (třeba co je konkrétní typ — “Int”, “List Int” a “Int -> Int” jsou konkrétní kupříkladu). Nejsme ve školce.

Tohle znáš? http://naucte-se.haskell.cz/kapitoly

Lidi jsou blbý.
Kdysi jsem to viděl. Tady ale nešlo o vysvětlování, ale porovnání jazyků, ne? Na to jsem reagoval. Jinak samozřejmě ano, určitě je žádoucí mít někde polopatický popis GADT apod. Na ten úvod do Haskellu by šlo asi plynule navázat.

Rike

Re:Je Rust jazyk budoucnosti?
« Odpověď #220 kdy: 04. 12. 2022, 10:08:26 »
Rust je ještě celkem mladý a vyvíjí se zatím dost živelně, dal bych mu ještě nějaký ten rok. Pak ho nahradí Carbon ;D
Zajímavá aktivita Googlu, ale je po tom taková poptávka, aby to překročilo brány firmy? Těch projektů takhle víc zašlo než se udrželo.

BoneFlute

  • *****
  • 1 983
    • Zobrazit profil
Re:Je Rust jazyk budoucnosti?
« Odpověď #221 kdy: 04. 12. 2022, 10:25:13 »
Tady ale nešlo o vysvětlování, ale porovnání jazyků, ne? Na to jsem reagoval. Jinak samozřejmě ano, určitě je žádoucí mít někde polopatický popis GADT apod. Na ten úvod do Haskellu by šlo asi plynule navázat.
Jde o to, že když ti číňan, když už si půjčíme to otřepané přirovnání, začne čínsky vysvětlovat, že oni by to řekli takhle hezky... Dokavad neumíš čínsky, tak to neoceníš, a když už umíš čínsky, tak to nepotřebuješ.

Já třeba hodně zhruba rozumím té syntaxi, kterou jsi použil, protože třeba Haskel, nebo OCaml cca znám. Taky hodně zhruba vím, co to to GADT je (spíše méně, než více). A přesto mi ten tvůj příklad vůbec k ničemu nebyl. To jsi chtěl?

Jinak samozřejmě ano, určitě je žádoucí mít někde polopatický popis GADT apod. Na ten úvod do Haskellu by šlo asi plynule navázat.
Já tě jinak chci vyprovokovat, třeba něco napsat :-)
« Poslední změna: 04. 12. 2022, 10:30:21 od BoneFlute »

Re:Je Rust jazyk budoucnosti?
« Odpověď #222 kdy: 04. 12. 2022, 10:30:01 »
Zajímavá aktivita Googlu, ale je po tom taková poptávka, aby to překročilo brány firmy? Těch projektů takhle víc zašlo než se udrželo.
Carbon v Google vzniknul primárně ze dvou důvodů:

  • Bezpečnost C++ je hrozná, Carbon tohle (částečně) řeší.
  • C++ steering committee dlohodobě ignorovala snahy Google o rozbití ABI, což Google považuje za nutné k dalšímu rozvoji C++ (tady jsem na straně Google).
Carbon je zajímavý počit, ale jedním z jeho primárních cílů byla dobrá interoperabilita s existujícím C++ kódem, což dost omezuje při návrhu jazyka, nemohli to prostě udělat celé od základu jinak (jak to udělal třeba Rust). Google má spoustu existujícího kódu v C++ a nemůže si dovolit všechno zahodit a přepsat, proto potřebuje jazyk, ze kterého půjde volat existující C++ kód. Důsledem je, že Carbon v součané podobě není memory safe. Někdy možná bude, ale vyžádalo by si to zpětně nekompatibilní změny v designu jazyka. Takže pocity z Carbonu jsou zatím spíš rozpačité, oproti C++ je to posun vpřed, ale zároveň je to takové polovičané řešení, primárně kvůli požadavku na interoperabilitu s C++.

BoneFlute

  • *****
  • 1 983
    • Zobrazit profil
Re:Je Rust jazyk budoucnosti?
« Odpověď #223 kdy: 04. 12. 2022, 10:32:01 »
Zajímavá aktivita Googlu, ale je po tom taková poptávka, aby to překročilo brány firmy? Těch projektů takhle víc zašlo než se udrželo.
Carbon v Google vzniknul primárně ze dvou důvodů:

  • Bezpečnost C++ je hrozná, Carbon tohle (částečně) řeší.
  • C++ steering committee dlohodobě ignorovala snahy Google o rozbití ABI, což Google považuje za nutné k dalšímu rozvoji C++ (tady jsem na straně Google).
Carbon je zajímavý počit, ale jedním z jeho primárních cílů byla dobrá interoperabilita s existujícím C++ kódem, což dost omezuje při návrhu jazyka, nemohli to prostě udělat celé od základu jinak (jak to udělal třeba Rust). Google má spoustu existujícího kódu v C++ a nemůže si dovolit všechno zahodit a přepsat, proto potřebuje jazyk, ze kterého půjde volat existující C++ kód. Důsledem je, že Carbon v součané podobě není memory safe. Někdy možná bude, ale vyžádalo by si to zpětně nekompatibilní změny v designu jazyka. Takže pocity z Carbonu jsou zatím spíš rozpačité, oproti C++ je to posun vpřed, ale zároveň je to takové polovičané řešení, primárně kvůli požadavku na interoperabilitu s C++.

Když to porovnáš s Dlang? Lepší, horší, jiné?

alex6bbc

  • *****
  • 1 666
    • Zobrazit profil
    • E-mail
Re:Je Rust jazyk budoucnosti?
« Odpověď #224 kdy: 04. 12. 2022, 11:31:43 »
Zajímavá aktivita Googlu, ale je po tom taková poptávka, aby to překročilo brány firmy? Těch projektů takhle víc zašlo než se udrželo.
Carbon v Google vzniknul primárně ze dvou důvodů:

  • Bezpečnost C++ je hrozná, Carbon tohle (částečně) řeší.
  • C++ steering committee dlohodobě ignorovala snahy Google o rozbití ABI, což Google považuje za nutné k dalšímu rozvoji C++ (tady jsem na straně Google).
Carbon je zajímavý počit, ale jedním z jeho primárních cílů byla dobrá interoperabilita s existujícím C++ kódem, což dost omezuje při návrhu jazyka, nemohli to prostě udělat celé od základu jinak (jak to udělal třeba Rust). Google má spoustu existujícího kódu v C++ a nemůže si dovolit všechno zahodit a přepsat, proto potřebuje jazyk, ze kterého půjde volat existující C++ kód. Důsledem je, že Carbon v součané podobě není memory safe. Někdy možná bude, ale vyžádalo by si to zpětně nekompatibilní změny v designu jazyka. Takže pocity z Carbonu jsou zatím spíš rozpačité, oproti C++ je to posun vpřed, ale zároveň je to takové polovičané řešení, primárně kvůli požadavku na interoperabilitu s C++.

google si mohl udelat svuj C++G, ohnout kompiler a nekompatibilne ohnout C++.