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ť.

Re:Přechod z Javy na Rust. Ano či ne?
« Odpověď #85 kdy: Dnes v 23:50:14 »
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)

Současný UI toolkit pro javu je JavaFX. Programuje se v tom krásně a aplikace vypadají dobře. Škoda jen, že přišlo JavaFX dost pozdě a že se dnes dělá vše spíš pomocí webových technologií. I ty ale dokonvergovaly do rozumné svaté trojice většiny moderních UI knihoven - tj. 1. markup pro popis UI + 2. stylovací engine pro definici vzhledu + 3. objektový jazyk pro popis funkčnosti a obsluhu událostí.

Jinak souhlas předřečníky, že prog. jazyky je potřeba přidávat do portfolia svých dovedností nikoli je nahrazovat. Typicky dnes ovládá vývojář několik jazyků a celou škálu technologií.