Přechod z Javy na Rust. Ano či ne?

Re:Přechod z Javy na Rust. Ano či ne?
« Odpověď #75 kdy: Dnes v 15:06:47 »
v ale C++ může být kdekoliv

I když v Rustu máte unsafe blok, tak nedefinované chování může vzniknout mimo něj, dokonce ten unsafe kód může být i v pořádku (bug bude potřeba opravit v safe části).


Re:Přechod z Javy na Rust. Ano či ne?
« Odpověď #76 kdy: Dnes v 15:48:17 »
To je ale logické, že bug v unsafe kódu má vliv i na safe kód a platí to pro jakýkoliv programovací jazyk.

Re:Přechod z Javy na Rust. Ano či ne?
« Odpověď #77 kdy: Dnes v 15:52:32 »
To je ale logické, že bug v unsafe kódu má vliv i na safe kód a platí to pro jakýkoliv programovací jazyk.

Ale je to i naopak. Bug v safe kódu způsobí nedefinované chování programu, i když unsafe kód je v pořádku (stačí, aby jen věřil, že safe kód dodrží nějaký invariant).

Re:Přechod z Javy na Rust. Ano či ne?
« Odpověď #78 kdy: Dnes v 16:15:39 »
Rád bych se zeptal, co Vás nejvíce zdržuje při porovnání programování v Java/C#/PHP oproti Rustu? Je to čtení kódu, odlišná syntaxe Rustu, odlišnost přístupu k přísným datovým typům (im/mutability) Rustu, neexistující knihovny, automatické doplňování kódu v IDE (jaké nástroje používáte? VS Code nebo JetBrains RustRover etc.) nebo ještě něco jiného? Rád bych totiž našel řešení, jak zrychlit vývoj v Rustu oproti Java/C#/PHP a hlavně oproti C++ tak, aby to bylo obráceně: přinejmenším Java/C#/PHP = 2 jednotky času oproti Rust = 1 jednotka času. Ale rád bych dosáhl poměr 1:10 ve prospěch Rustu. Bylo by to reálné? Třeba i s popmocí A.I.?

Předem díky za odpověď,
nm
A proč by to mělo jít? Proč by ty vylepšení měly jít použít jenom v Rustu a ne i v těch ostatních jazycích?
V Rustu za absenci GC platíš složitější architekturou kódu.
Pokud by šlo v Rustu psát všechno rychlejí než v Javě/C# a zároveň by to pak běželo rychleji a žralo míň paměti, nebyl by (skoro) žádný důvod je použít.

To je pravda. Pokud by to šlo i v ostatních jazycích, byla by to naprostá bomba. Možná se toho dočkáme s pomocí AI, kdo ví? Také je jasné, že o volbě jazyka většinou rozhoduje vývojář na základě zadání projektu.

Důvod, který mě táhne k Rustu je, že se jedná o poměrně nový jazyk, jež není ještě tak probádaný, jako je Java nebo C++. Zatím se zajímám především o programovací techniky. Hledám jazyk, který splňuje právě citované vlastnosti, tedy: rychlost a jednoduchost vývoje, rychlý běh výsledného programu, malá paměťová náročnost.

BoneFlute

  • *****
  • 2 062
    • Zobrazit profil
Re:Přechod z Javy na Rust. Ano či ne?
« Odpověď #79 kdy: Dnes v 16:56:03 »
v ale C++ může být kdekoliv

I když v Rustu máte unsafe blok, tak nedefinované chování může vzniknout mimo něj, dokonce ten unsafe kód může být i v pořádku (bug bude potřeba opravit v safe části).

Jde o to utahování šroubů.

Když mi v Rustu spadne aplikace na panic, tak jdu hledat konkrétní věci: přiznané panic, a unsafe.
V C++ když mi spadne aplikace na panic, tak musím hledat úplně všude.
Já to považuji za výrazné zlepšení situace.


BoneFlute

  • *****
  • 2 062
    • Zobrazit profil
Re:Přechod z Javy na Rust. Ano či ne?
« Odpověď #80 kdy: Dnes v 17:04:00 »
Jaká je rychlost kódování v Rustu oproti C/C++. Máte někdo již dlouhodobější zkušenost? A co generování částí kódu Rustu pomocí AI?
Tu samou věc, kterou bych napsal v Java/C#/PHP za jednotku času, napíšu v Rustu za dvě jednotky času. (Proti C/C++ bohužel nemohu sloužit, je to už dlouho.)
LLM pomáhá hodně, používám. Ne celé aplikace, ale části a hledání problému ano. (Ale tam je to asi nepřenosné, vzhledem k tomu, jak kdo používá LLM jakým způsobem.)

Rád bych se zeptal, co Vás nejvíce zdržuje při porovnání programování v Java/C#/PHP oproti Rustu? Je to čtení kódu, odlišná syntaxe Rustu, odlišnost přístupu k přísným datovým typům (im/mutability) Rustu, neexistující knihovny, automatické doplňování kódu v IDE (jaké nástroje používáte? VS Code nebo JetBrains RustRover etc.) nebo ještě něco jiného? Rád bych totiž našel řešení, jak zrychlit vývoj v Rustu oproti Java/C#/PHP a hlavně oproti C++ tak, aby to bylo obráceně: přinejmenším Java/C#/PHP = 2 jednotky času oproti Rust = 1 jednotka času. Ale rád bych dosáhl poměr 1:10 ve prospěch Rustu. Bylo by to reálné? Třeba i s popmocí A.I.?

Předem díky za odpověď,
nm

Ne, není to reálné.

Java/C#/PHP používá GC. Což z principu znamená, že i když je Rust naprosto famózní v usnadňování věcí, tak některé situace prostě musíte explicitně rozhodnout. Takže vždycky to bude Java/C#/PHP 1jednotka, Rust 2jednotky, C/C++ cca 20jednotek.

Ano, je sice pravda, že je řada věcí, které musíte rozhodnout v Rustu i v Javě, či v C, ale to ve výsledné rovnici ničemu nepomůže. (Pokud se bavíme o rychlosti vývoje.)

Stojí za zmínku, že Rust díky své filozofii funguje tak, že většinu chyb odchytíte v compile-time, což přináší trochu ceny, zatímco u Java/C++ většinu chyb odchytě v client-time, což znamená, že tu cenu zaplatíte později. Je to podobný efekt jako psaní automatických testů.

LLM tomu moc nepomůže, protože ta dokáže poradit jak v Rustu tak v Javě. Ačkoliv, jak nad tím přemýšlím, mohlo by mít efekt, že Rust je one-way, takže třeba jo. Neodvažuji se posoudít.

BoneFlute

  • *****
  • 2 062
    • Zobrazit profil
Re:Přechod z Javy na Rust. Ano či ne?
« Odpověď #81 kdy: Dnes v 17:11:25 »
Pokud by šlo v Rustu psát všechno rychlejí než v Javě/C# a zároveň by to pak běželo rychleji a žralo míň paměti, nebyl by (skoro) žádný důvod je použít.

No, v Rustu ti to poběží levněji a rychleji než v Javě a C#.
Aby si něco napsal v Javě/C#, tak ti stačí levnější vývojář.
Psát desktopové aplikace v Javě byla vždycky bolest. V C# je to snesitelnější ale stejně je to vždycky obluda.

BoneFlute

  • *****
  • 2 062
    • Zobrazit profil
Re:Přechod z Javy na Rust. Ano či ne?
« Odpověď #82 kdy: Dnes v 17:17:11 »
Hledám jazyk, který splňuje právě citované vlastnosti, tedy: rychlost a jednoduchost vývoje, rychlý běh výsledného programu, malá paměťová náročnost.

To by mohlo odpovídat.

Mí favoriti byl Haskell a Rust.

Haskell má lepší vyjadřovací schopnosti. Ale vývoj je přeci jen pomalejší, a člověk tomu musí přeci jenom trochu rozumět.
Rust má stále nadprůměrné vyjadřovací schopnosti a přitom je ještě dostatečně jednoduchej. A navíc svižnej a subtilní.
Citované vlastnosti by splňoval i golang. Ale ten nemá záruky, což mě už přišlo hodně líto.

Re:Přechod z Javy na Rust. Ano či ne?
« Odpověď #83 kdy: Dnes v 22:39:51 »
Psát desktopové aplikace v Javě byla vždycky bolest. V C# je to snesitelnější ale stejně je to vždycky obluda.

V takom Swingu v Jave ide písať desktopové aplikácie dosť komfortne. Horšie je sa však na ne pozerať. Ešte som skúšal QT, aj to išlo fajn. (S patričnými obmedzeniami na jeden OS)

CHe

Re:Přechod z Javy na Rust. Ano či ne?
« Odpověď #84 kdy: Dnes v 23:08:35 »
Čo sa týka desktopových aplikácií napísaných v Jave, dlhoročne používam Netbeans a JOSM, obe fungujú bez zásadnejších problémov a nemám problém sa na ne pozerať.