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

CHe

Re:Přechod z Javy na Rust. Ano či ne?
« Odpověď #60 kdy: 22. 09. 2025, 21:48:21 »
Moje odpověď je rust, ale hodně firem použije na server věci prostě golang
To, na čo sa dá použiť golang, nie je normálne nika pre C/C++/Rust like jazyky, to už sa dá rovnako dobre spáchať aj v Jave (s komfortom a zázemím solídneho konzervatívneho ekosystému tvoreného príčetnými ľuďmi, na rozdiel trebárs od PHP/JS bordelu) alebo inom GC jazyku s tučným runtime. Sila tamtej trojice je práve tam, kde z rôznych dôvodov nie je vhodný fat GC runtime – námatkovo napr. firmvéry, systémový sw., ovládače, meranie a regulácia, signal processing, computer vision, low latency služby a pod.

Ono celá téma vlákna je dosť bizár, prechod z Javy na Rust je niečo ako prechod z C# na C, proste úplne iné svety adresujúce iné okruhy problémov a vyžadujúce do veľkej miery aj iné zručnosti.


Re:Přechod z Javy na Rust. Ano či ne?
« Odpověď #61 kdy: 22. 09. 2025, 22:01:00 »
Ono celá téma vlákna je dosť bizár, prechod z Javy na Rust je niečo ako prechod z C# na C, proste úplne iné svety adresujúce iné okruhy problémov a vyžadujúce do veľkej miery aj iné zručnosti.

Rust je vcelku vysokoúrovňový. Hodně se inspiroval ML jazyky a Haskellem. Osobně mi nepřijde o moc jiné psát v Rustu a F#. Moc nízkoúrovňových věcí v Rustu řešit nemusíte, pokud používáte standardní knihovnu. Občas je dokonce jednodušší psát v Rustu než v Javě, protože ta API v Rustu nejde použít špatně díky typovému systému.

Zrovna z C# do C je úplně něco jiného než z Javy do Rustu.

CHe

Re:Přechod z Javy na Rust. Ano či ne?
« Odpověď #62 kdy: 22. 09. 2025, 22:33:39 »
Je to nízkoúrovňový jazyk už len čisto nutnosťou riešiť explicitne memory management, životnosť a ownership. Čo je niečo, čo v bežnej komplexnejšej biznis aplikácii, na ktorej vývoj nie je k dispozícii celý čas sveta, človek normálne riešiť nechce.

Rovnako ako opačne, nechcem GC runtime, keď píšem regulačnú slučku pre 48 MHz Cortex-M0 s 8k SRAM alebo modul do jadra.

BoneFlute

  • *****
  • 2 058
    • Zobrazit profil
Re:Přechod z Javy na Rust. Ano či ne?
« Odpověď #63 kdy: 22. 09. 2025, 22:55:59 »
Je to nízkoúrovňový jazyk už len čisto nutnosťou riešiť explicitne memory management, životnosť a ownership. Čo je niečo, čo v bežnej komplexnejšej biznis aplikácii, na ktorej vývoj nie je k dispozícii celý čas sveta, človek normálne riešiť nechce.

Rovnako ako opačne, nechcem GC runtime, keď píšem regulačnú slučku pre 48 MHz Cortex-M0 s 8k SRAM alebo modul do jadra.

Já bych si dovolil vám oponovat.

GC se píše kvůli pohodlnost vývojářů jazyka, nikoliv kvůli pohodlnosti uživatelů jazyka (zde trochu zjednodušuju).

Rust není nízkoúrovňový jazyk. Je to naopak vysokoúrovňový jazyk, který dokáže dělat aplikace s výkonem na úrovni C. Jazykové konstrukce, které máte v Rustu nemáte ani v C# ani v Javě ani v Pythonu. Prohlásit, že Rust je nízkoúrovňový jazyk může jen někdo, kdo nezkoušel přepínat mezi C#/Java a Rustem.

Ano, musíte řešit explicitně životnost a ownership. Což ale v praxi jednak není tak zlé, a druhak i v Javě musíte řešit paměť a souběhy.

Ostatně v tom je přesně ten problém Rustu, který s ním mají Céčkaři. Doteď všechny vysokoúrovňové jazyky za to platili nějakou cenu. Nejčastěji paměť a rychlost. To se s Rustem změnilo.

CHe

Re:Přechod z Javy na Rust. Ano či ne?
« Odpověď #64 kdy: 22. 09. 2025, 23:15:49 »
Bežne prepínam medzi Javou a C, nejaké jednoduché počiny mám za sebou aj v Ruste a áno, benefity samozrejme vnímam. No predstava, že by som v ňom mal vyvíjať to, čo denne komerčne vyvíjam v Jave (s porovnateľnou efektivitou), nie je realistická. Tzn. s čiastkovými postrehmi viem súhlasiť, no celkovo sú to podľa mňa stále veľmi odlišné niky.


Re:Přechod z Javy na Rust. Ano či ne?
« Odpověď #65 kdy: Dnes v 05:34:42 »
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

a6b

  • ***
  • 144
    • Zobrazit profil
    • E-mail
Re:Přechod z Javy na Rust. Ano či ne?
« Odpověď #66 kdy: Dnes v 07:56:16 »
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

clovek musi mit syntaxi jazyka v krvi a musi uz mit neco za sebou v tom programovani, aby mohl fungovat v danem jazyce rychle t.j. za 1 jednotku casu :-)

to je zvyk, kterou syntaxi a ekosystem se clovek nejlepe nauci.
pouzivam copilota a dalsi ai na pomoc pri programovani, nemusim nejake veci vymyslet od zacatku, ale ai mi napise kostru a tu pak muzu upravovat, opravovat, ale zase musim vedet o co jde.

Re:Přechod z Javy na Rust. Ano či ne?
« Odpověď #67 kdy: Dnes v 12:31:11 »
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.

Re:Přechod z Javy na Rust. Ano či ne?
« Odpověď #68 kdy: Dnes v 12:32:49 »
Nemám čas, tak stručnejšie...

Jenže o vytlačování, ve smyslu že se C++ úplně přestane používat, tu pořád píšete jenom vy. Všichni ostatní píšou „Rust (částečně) nahazuje C++“ a myslí tím, že některé aplikace, které by se při neexistenci Rustu psaly v C++, se dnes píšou v Rustu.

Tak si to zrekapitulujme.

napríklad:

Na druhou stranu dobrá zpráva je, že pro nové aplikace není důvod již C++ používat.

alebo:

C++ jde nevyhnutelně ve špatné trajektorii a dnes už není moc důvod použít C++ na nový projekt - jsou mnohem lepší jazyky.

alebo:

Drbat se dnes s C++ prostě nestojí za to. U legacy kódu to chápu, ale u nového kódu ne.

To už je vyslovene neúctivé. K ľuďom, ktorí nové projekty v C++ začínajú. Keď ich začínajú a C++ je taký šmejd ako o ňom roztlieskávači Rustu píšu, tak predsa tí ľudia, ktorí si C++ vybrali, nemôžu byť normálni...

Podobne ako toto:

Lidi co říkají, že rust nenahradí C++ žijou ve vlastním omezeném světě.

Pritom je to úplne naopak. Svet C++ je oveľa rozsiahlejší ako svet Rustu. A stále sa rozširuje. Čo sa týka počtu programátorov, počtu projektov, počtu noviniek v jazyku, atď.

Takže moja odpoveď do toho celkom zapadá:

Teda vytlačenie C++ z nových, čiže odborne aj obchodne zaujímavých, projektov. Čo je samozrejme nemysel.

Rust a C++ sa v rámci svojej kategórie a toho, čo poskytujú, čiastočne prekrývajú. Takže je jasné, že sú do istej miery zastupiteľné. To predsa nikto nespochybňuje. Ale každý z nich má niečo, čo ten druhý nemá a situácia, že by jeden z nich získal všetko, čo má ten druhý a vytlačil ho, nikdy nenastane.

Dokážem si ale predstaviť, že ste prehliadli tú prvú vetu, kde je jasne definovaný rozsah.

Ďalej, čo sa toho "částečně" týka, tak v prvej zmienke o nahradení C++ Rustom žiadne "částečně" nebolo.

Že vy význam těch slov chápete jinak je sice hezké, ale když tu všichni ostatní používají význam odlišný od toho vašeho, mohl byste se přizpůsobit. Jinak se nedomluvíme. Nebo alespoň přestat pořád dokola opakovat, že ta cizí vyjádření s vaším významem slov nedávají smysl.

Možno je to tak, že skutočný význam slov nechápete vy. Keď sú bez prívlastku. Takže sa môžeme začať nekonečne dohadovať o tom, či keď sa povie nahradenie, myslí sa tým úplné alebo čiastočné. Z nejakého dôvodu ale prívlastok "čiastočne" existuje. A rozhodne nie je nadbytočný.