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

Re:Přechod z Javy na Rust. Ano či ne?
« Odpověď #90 kdy: Dnes v 13:35:56 »
echo_zulu: Vem si random program v C++ co má třeba 20 závislostí a zkompiluj ho pro Windows, Linux a Mac.

C++ má totálně idiotský package management (žádný). V jedné firmě jsem dokonce zažil 3 in-house package managery v jednom jediném C++ projektu, který si napsali lidi pro Windows, Linux, a Mac zvlášť, protože jim to asi přišlo cool, popř. protože každá platforma měla nějaké věci, co museli řešit (třeba pro mac nechci svoji zlib, stačí ta systémová...).

Hodně C++ vývojářů má i projekty v rustu, a já sám jsem byl hodně dlouho na straně C++, jenže i já dělám v C++ chyby, protože v C++ se většinou píšou low-level věci - na high-level věci, kde na výkonu nezáleží, na to už máme docela jiné jazyky a možnosti.

Takže, já nechci hanit C++, sám ten jazyk používám a asi budu do konce života, ale... C++ má hodně problémů a prostě to není jazyk, ve kterém bych chtěl dělat nové projekty, když tu je rust, popř. jiné technologie.

C++ měl hodně dlouho monopol, protože to byl jediný jazyk s "C-like" výkonem, co nabízel 1000x víc než C, takže správná volba pro větší projekty a tam, kde byl potřeba výkon. Ale, pak přišel rust, a upřímně když člověk zkusí rust, tak zjistí, jak moc je C++ neergonomický jazyk.

Je to můj názor jako někoho kdo používá C++ víc než 20 let. Podle mě konkurence je potřeba a buď se z toho C++ vzpamatuje a nebo ne...


Re:Přechod z Javy na Rust. Ano či ne?
« Odpověď #91 kdy: Dnes v 13:51:09 »
C++ má totálně idiotský package management (žádný). V jedné firmě jsem dokonce zažil 3 in-house package managery v jednom jediném C++ projektu, který si napsali lidi pro Windows, Linux, a Mac zvlášť, protože jim to asi přišlo cool, popř. protože každá platforma měla nějaké věci, co museli řešit (třeba pro mac nechci svoji zlib, stačí ta systémová...).

Osobně mi tohle vyhovuje více než třeba cargo.

Závislosti jednoduše postahuji k projektu. Pak mám jednoduchý bat nebo sh soubor, který vše přeloží.

Re:Přechod z Javy na Rust. Ano či ne?
« Odpověď #92 kdy: Dnes v 13:59:27 »
A teď si představ, že potřebuješ použít nějakou knihovnu nebo framework, který jen tak zbuildit znamená třeba postahovat 30 závislostí, a ten framework se vyvíjí.

Z toho se stane part-time job jen řešit ty závislosti, aby byly aspoň trochu aktuální.

Já jsem třeba na jeden projekt potřeboval použít knihovnu Skia............

Re:Přechod z Javy na Rust. Ano či ne?
« Odpověď #93 kdy: Dnes v 14:05:32 »
A teď si představ, že potřebuješ použít nějakou knihovnu nebo framework, který jen tak zbuildit znamená třeba postahovat 30 závislostí, a ten framework se vyvíjí.

Z toho se stane part-time job jen řešit ty závislosti, aby byly aspoň trochu aktuální.

Přesně tohle nedělám. Snažím se držet závislosti na minimu nebo si nevybírám závislosti, které mají tranzitivně desítky či stovky jiných závislostí. Snažím se totiž každou závislost auditovat - při každé změně pročíst diff a neupdatovat, pokud se mi to nezdá. A bohužel cargo apod. tomu nepomáhají (viz npm poslední dobou).

Re:Přechod z Javy na Rust. Ano či ne?
« Odpověď #94 kdy: Dnes v 14:44:22 »
A teď si představ, že potřebuješ použít nějakou knihovnu nebo framework, který jen tak zbuildit znamená třeba postahovat 30 závislostí, a ten framework se vyvíjí.

Z toho se stane part-time job jen řešit ty závislosti, aby byly aspoň trochu aktuální.

Já jsem třeba na jeden projekt potřeboval použít knihovnu Skia............

To je pak otázka, co je pro vás low-level projekt, když má desítky závislostí. Asi ne totéž, co třeba pro mě.
Jinak souhlas s C++, to používám jen z donucení, pokud možno vůbec. Na low-level věci zásadně C, případně Forth, případně Assembler. Na high-level je docela velký výběr.  C++ je moderní obdoba FORTRANu - k ideálu daleko, poznamenán letitým vývojem, halda zdrojáků v něm napsaných. A lidi kolem Rustu - ty si představuji jako takové ty polonahé tlouštíky na čtyřech s koženou maskou pejska, co si je na vodítku tahá domina s důtkami (tj. kompilátor Rustu). Proti gustu... Jen ať mi to nikdo nevnucuje jako to nejlepší, co kdy bylo vymyšleno.


BoneFlute

  • *****
  • 2 064
    • Zobrazit profil
Re:Přechod z Javy na Rust. Ano či ne?
« Odpověď #95 kdy: Dnes v 17:23:48 »
C++ má totálně idiotský package management (žádný). V jedné firmě jsem dokonce zažil 3 in-house package managery v jednom jediném C++ projektu, který si napsali lidi pro Windows, Linux, a Mac zvlášť, protože jim to asi přišlo cool, popř. protože každá platforma měla nějaké věci, co museli řešit (třeba pro mac nechci svoji zlib, stačí ta systémová...).

Osobně mi tohle vyhovuje více než třeba cargo.

Závislosti jednoduše postahuji k projektu. Pak mám jednoduchý bat nebo sh soubor, který vše přeloží.

Snažím se totiž každou závislost auditovat - při každé změně pročíst diff a neupdatovat, pokud se mi to nezdá. A bohužel cargo apod. tomu nepomáhají (viz npm poslední dobou).

Tohle nechápu.

Pokud je to pocit, tak ok.

Objektivně ale když nepoužiješ cargo, tak naopak ztrácíš spoustu informací které k tomu auditu potřebuješ.

Představuji si sebe. Když budu dělat malý projekt a budu potřebovat brutálně auditovat, tak mi cargo krásně ukáže, že tahle verze si stahuje tyhle závislosti -> takže tuhle nechci, tenhle balík nechci. Cargo mi v každém okamžiku ukáže kolik je závislostí, stáhne je a já je mohu auditovat. Mohu omezovat, aby těch závislostí bylo co nejmíň. Spoustu ruční práce mi to ušetří.

Druhá věc je smysl balíčků. Jako chápu, že ty to nepotřebuješ. Ale většina vývojářů prostě nejsou topka, a tak můžeme těžit z toho, že můžeme auditovat už něčí auditovaný balíček. Představa, že v každém týmu, který používá závislost X je někdo, kdo to audituje, a nedá vědět ostatním na co přišel, mi přijde nešťastná. Díky tomu ten audit nikdy nemůže být tak dobrý.