• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    SPIRALIRust - Programovací jazyk

    A language empowering everyone to build reliable and efficient software.

    The Rust Programming Language - The Rust Programming Language
    The book of Rust
    Idiomatic rust
    GitHub - usagi/rust-memory-container-cs: Rust Memory Container Cheat-sheet
    Memory container cheat sheet
    rozbalit záhlaví
    VELDRANE
    VELDRANE --- ---
    SHINING_KATE: v mem pripade je to hazeni perel svinim, ale za report budu moc rad :)
    SHINING_KATE
    SHINING_KATE --- ---
    Tak tentokrát nasdílím konferenci předem: https://www.rustnationuk.com/
    Potkám tam někoho dalšího z Nyxu? :)
    UETOYO
    UETOYO --- ---
    DANIELSOFT: Klikni v pravo na stránkách na _print_ (https://doc.rust-lang.org/stable/book/print.html) a stáhni si aktuální verzi. Tady slečna má kdyžtak online kopii: https://lise-henry.github.io/books/trpl2.pdf
    DANIELSOFT
    DANIELSOFT --- ---
    Ahoj, dotaz: v rámci sebevzdělávání čtu knihu The Rust Programming Language - kdysi bývala k dispozici ve formátu PDF, teď ji vidím jen jako webovou stránku, plus je odkaz na její zdroják. Autoři píšou, že vyšla v nějakém nakladatelství, možná kvůli tomu nemají PDF verzi na stránkách. Rozhodně nechci nic pirátit, ale PDF formát mi přijde pohodlnější. Mám nainstalované tooly pro kompilaci docbooků do PDF, mám Xubuntu, počítám, že tudy vede cesta... poradíte jak na to?
    XCHAOS
    XCHAOS --- ---
    MARASAN: s Rustem :-) nic, už mlčím... :-)
    MARASAN
    MARASAN --- ---
    XCHAOS: zacit s cim? S golang vedle Rustu ?
    XCHAOS
    XCHAOS --- ---
    SHINING_KATE: sice se s Rustem teprve začínám, ale tohle moc dobře znám - to, že abstrakce nějakého pro mě nového jazyka pak ovlivní i to, jak programuju v jiných jazycích. Takže asi o důvod víc s tím fakt konečně začít...
    UETOYO
    UETOYO --- ---
    SHINING_KATE: No jo, jenže tohle je asi právě jen kulturně dané. Kdybys ses učila první OCaml nepřišlo by ti na Rustu nic tak zajímavého. OCaml má vše co Rust jen má GC, ale v takové kvalitě, že dává záruky že nezastaví běh tak, že někde aplikace vytuhne. Mít Rust na web development, to je pro mě už vyřešená záležitost. Pokud to je nějaká část jinak rozsáhlého programu, co řeší jinak nějaké low-level věci budiž, ale jinak overkill. Na validaci REST API třetí strany nepotřebuji ML typový systém.

    Jen pro zajímavost. Rust kompilátor byl původně v OCamlu:
    Remove rustboot from the repository. · rust-lang/rust@6997adf · GitHub
    Remove rustboot from the repository. · rust-lang/rust@6997adf · GitHub
    https://github.com/rust-lang/rust/commit/6997adf76342b7a6fe03c4bc370ce5fc5082a869
    SHINING_KATE
    SHINING_KATE --- ---
    Co se týče čitelného kódu, už samotný borrow checker, důraz na immutability, Optional / Result types... Všechno to dost ovlivnilo i jak přemýšlím nad kódem v jiných jazycích :) Go je fajn, ale rozhodně mi nesedlo tolik - učila jsem se současně oboje.
    UETOYO
    UETOYO --- ---
    SHINING_KATE: "Přijde mi, že Rust z jazyků co znám zatím nejvíc tlačí vývojáře do psaní čitelného kódu." Jak je tlačí, čím?
    UETOYO
    UETOYO --- ---
    SHINING_KATE: No jo ale podobně by psal i programátor v Go. Oproti Pythonu je takový jazyk a tooling prostě paráda s tím, že pokud nejsem opravdu na železe, není Rust nutná volba. Thread safety... no s tím neporadím, os thready radši nechávám spát.
    SHINING_KATE
    SHINING_KATE --- ---
    UETOYO: Ta bezpečnost Rustu pro mě rozhodně není jen v borrow checkeru. Pokud jde o věci mimo logické chyby, pak je pro mě dost podstná záruka thread safety. (Což se občas v C++ debuguje dost špatně)

    A pro prevenci logických chyb imho dost pomáhá i:
    - Skvělá podpora pro automatickou tvorbu dokumentace a doctesty - pomáhá i s prevencí chyb při použití 3rd party knihoven. U JS / TS jsme už řešili pár chyb vzniklých kvůli mizerné dokumentaci i velmi populárních knihoven.
    - Silný typový systém a knihovny které s ním počítají se mi dost osvědčil při tvorbě REST api a api klientů - občas jsem díky tomu našla chyby v implmentaci u protistrany, kdy posílali out of spec data, ale jiné jazyky se s tím nějak popraly, často formou "Silent failure" - což může vést opět k ne snadno debugovatelným problémům
    - Zatím jsem se v žádném jazyce necítila tak bezpečně při nějakém větším refactoringu. Opět, typový systém s tím opravdu dost pomáhá
    - Přijde mi, že Rust z jazyků co znám zatím nejvíc tlačí vývojáře do psaní čitelného kódu.
    - Nemuset myslet na celou kategorii chyb prostě uvolňuje kapacitu pro řešení jiných

    Je fakt že počáteční learning curve je o něco horší, ale naše firemní codebase na backendu je z drtivé většiny Rust, a nikdy mi nepřišel vývoj tak pohodlný jako teď. Předtím jsem profesionálně programovala hlavně C++ a Python.
    UETOYO
    UETOYO --- ---
    MARASAN: Spousta věcí navázaných na paralelní svět -- CUDA, OMP, MPI a grafika (OpenGL, Vulkan). Na spoustu míst se klidně časem může Rust dostat a sotává, ale hrozně to potrvá a někde ani nemá smysl. Třeba moderní Fortran tuhle niku bude obývat nadále, protože oproti C++ nabízí luxus toho, že se skvělě pracuje s n-dimenzionálními poli, nemusíš téměř řešit ukazatele. Tam Rust vůbec nenabízí něco navíc nehledě na to, že přepisovat něco do Rustu je velký risk. Nasekáš chyby v logice ne v dereferencování ukazatele.
    MARASAN
    MARASAN --- ---
    UETOYO: co je takova stale jeste absolutni nika pro C++?
    UETOYO
    UETOYO --- ---
    BONEFLUTE: Až na to že 99% chyb v aplikaci bude v "business" logice a ne kvůli pamětovým problémům. V C/C++ je problém, že nástroje na statickou analýzu sice jsou, ale lidi často ani nezapínají flagy kompilátoru. Rust je v tomhle napřed, ale představa, že vyřeší tu hromadu chyb, který se skrývají v nepochopení a komplexnosti problému tím, že _uspokojíš_ borrow checker je _vlhký_ sen.

    "Já neuvažuju o tom, že by firmy měli hromadně přecházet na Rust a všechno přepisovat. Ale psát _novou_ aplikaci v C++ považuju za nerozum." To záleží v jaké oblasti.
    SPIKE411
    SPIKE411 --- ---
    The Rise of Rust, the ‘Viral’ Secure Programming Language That’s Taking Over Tech | WIRED
    https://www.wired.com/story/rust-secure-programming-language-memory-safe/
    BONEFLUTE
    BONEFLUTE --- ---
    FALL: podepisuju :-)
    FALL
    FALL --- ---
    BONEFLUTE: pro člověka, co se nástroje na danou aplikaci učí od začátku (nebo skoro od začátku) je dobré se zamyslet, co dává moemtálně největší smysl a Rust je u mnoha aplikací velmi dobrá volba. Pokud se chceš tím živit někde s větším týmem, firmou s větším portfóliem, nebo nedej bože v korporátu, tak se bez znalostí těch jazykou pro dynosaury (jako je C, Java a podobný) moc dobře cítit nebudeš.

    A když se ptáš, tak můj osobní názor je, že C++ je naprosto zbytečná věc a mor, který zalezl na místa, na která neměl nikdy být vpuštěn. Takže za mě C++ může klidně zmizet z povrchu této planety a bude nám líp:)
    BONEFLUTE
    BONEFLUTE --- ---
    FALL: Mám projekt, novej, pro který jsem hledal vhodné nástroje. Chtěl jsem něco snadnýho, rychlýho, etc. Po epizodě s dynamickými jazyky (nic proti, jen se to neukázalo jako vhodné) jsem dokonce ze zoufalství zvažoval C++. Oprášil jsem své znalosti a jal se to aplikovat. Po té, co mi to začalo náhodně padat jsem trochu zpanikařil.
    Dospěl jsem k úvaze, že mám-li tomu obětovat čas, chci za to dostat víc, než co mi C++ nabízí.
    Zatím jsem pokaždé, když mi program v Rustu na něčem spadl, zjistil, že to bylo proto, protože jsem se ho pokoušel nějak přečůrat. Až mi to bude magicky zamrzat budu se učit jak to řešit, s tím jsem smířenej.
    Nejde o to, že by snad Rust dal 100%. Jde o to, že Rust je tak dobrej, že C++ přestává být smysluplná alternativa. Nechť ti, co C++ umí dělají v legaci ale nová generace IMHO nemá důvod se ho vůbec učit.


    FALL: Pokud se učíš nový jazyk, tak máš stejné množství času na získání skillu. Co vám přijde racionální volba C++, nebo Rust, a proč?

    Já neuvažuju o tom, že by firmy měli hromadně přecházet na Rust a všechno přepisovat. Ale psát _novou_ aplikaci v C++ považuju za nerozum.

    A to se bavíme o jazyku jako takovém. Ekosystém kolem, v podobě crates + cargo je další téma, které mu IMHO přidávají další body.
    JON
    JON --- ---
    BONEFLUTE: to je ale jen predstava, v praxi to urcite neni 0.1 procenta - videl jsem uz veci co leakujou pamet a zamrzly thready - z vnejsku se appka tvari ok - ma otevrenej port, ale uvnitr je mrtvo.

    Imo negativni efekt rustu je, ze to pak lidi pouzivaj uplne na vsechno, a u nekterych jednoduchych toolu je ten overhead (delsi vyvoj, nebo vyvoj drazdim vyvojarem, nedostatek lidi, ktery to pak muzou udrzovat) treba oproti pythonu neobhajitelnej. Jasne, neni to feature jazyka, ale vlastnost lidi, co s nim delaj.
    FALL
    FALL --- ---
    BONEFLUTE: tohle funguje, pokud máš dost (ideálně nekonečně) času na tu fázi učení a vývoje produktu. Výhoda toho prvního modelu je, že dodáváš věci zákazníkům docela rychle. Ano, jsou tam chyby a dostaneš to víckrát zpátky. Ale upřímně, dokud bude většina věcí na světě běhat s chybama a stejně se svět nezboří (= demonstrováno tím, že žádný email ani telefon od naštvaného zákazníka nepřichází), není jednoduché miliony vývojářů a tisíce firem přesvědčit, že je teď čas investovat do učení se nového jazyka, předělávání build procesů a přepisování starého kódu, knihoven nebo celých produktů...

    Abychom si rozměli, učit se Rust rozhodně za to stojí, je to podle mě budoucnost několika částí tohohle našeho "vývojářského" odvěví (viz. Bryan Cantrill z Oxide Computer: "I'm a C developer for 25 years but after developing 2 years in Rust I know I will never go back to C for embedded SW application..."), jen chápu, proč to bude trvat dlouho, než se překlopí majorita. Protože psaní kódu v C děláme 50 let a díky tomu tu máme většinu všeho softwaru, co na světě běží. A +- funguje.
    Kliknutím sem můžete změnit nastavení reklam