• ú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í
    LUDWIG_
    LUDWIG_ --- ---
    LOG53: jeste existuje
    Fyrox - A feature-rich game engine built in Rust
    https://fyrox.rs/

    ktery ma narozdil od Bevy editor. Nemam velke zkusenosti s Bevy ci Fyrox, ale prisly mi dost pozadu oproti Unity ci UE.
    Na nejake experimenty ci neherni veci (v pripade Bevy) mozna ok. Na vic seriozni herni vyvoj, pokud by clovek trval na Rustu, tak je asi v soucasne dobe nejlepsi kombo Godot + https://godot-rust.github.io/
    (clovek muze samozrejme integrovat Rust v Unity ci UE https://github.com/MaikKlein/unreal-rust ale jeste to neni tak pouzitelne. Ohledne Godotu s Rustem jsem slysel minimalne o jedne indie hre, co byla takhle vyvijena.)
    RUDOLF
    RUDOLF --- ---
    LOG53: já v něm prgám hru, páč se chci naučit prgání v rust a dělám si takový poc na herní mechaniky po nocích. V bevy si musíš naprgat spoustu věcí sám, unity/ue/godot jsou mature platformy na vývoj her. Bevy je asi fajn na game jamy. Bevy je postavený na ECS, není objektový a najdeš mnohem méně dokumentace, ale zase má super Discord, kde je živá komunita. Neporovnám ti, ale i ten godotmá editor na sprites, kreslič tiles. Bevy nemá ani UI, je to pure code. Mě to takhle baví, ale rozhodně pokud se naučíš s jinýma platformam na vývoj her, tak si dost cestu zjednodušíš. Bevy je čerstvě 0.11. Můj první painpoint je, že prgání UI působí dost špagetově ve výsledku. Já se teprve seznamuji s algoritmy na generování mapy a ve všech ostatních engine už tam nástroj je. Samo, celý se to mění, jakmile děláš něco proti samotný platformě. Já vnímám vývoj své hry v horizontu deseti let a rust a ecs chci kvůli paralelizaci a paměťové zodpovědnosti, která je dost na mě a bevy. Abych se přiznal, kdybych mohl prgat v čistým rust v jiném engine, šel bych jinam. Ale myslím, že bevy je stále top co se týče rust světa.
    LOG53
    LOG53 --- ---
    RUDOLF: Nedávno mě na Bevy upozornil jeden hodněnerd a že se na něj mám určitě podívat -- přímo s Rustem zkušenosti nemám, ale některému hernímu enginu se chci pověnovat. Nasbírali jste někdo (za ty dva roky od citovaného příspěvku) praktické zkušenosti, případně jak si stojí v porovnání s (pro měl laika) molochy Unity/UE? Než se utopím na YT ;) Dík!
    URZA
    URZA --- ---
    NYX: tzn. že všechny requesty obsluhuješ jedním vláknem?
    AXTHEB
    AXTHEB --- ---
    NYX: Dík.
    NYX
    NYX --- ---
    AXTHEB: Nepouzivam, psal jsem to jeste nez tyhle vymozenosti byly...ani nejedu pres ty rocket db pooly atd...

    Ceka me casem nejaky poradny upgrade :)
    AXTHEB
    AXTHEB --- ---
    NYX: Používáš async-diesel? Funguje to jak slibujou?
    VELDRANE
    VELDRANE --- ---
    NYX: ok dikec :)
    NYX
    NYX --- ---
    VELDRANE: Ja bych do toho zbytecne nerejpal :) Proste z Rustu mam pocit, ze tam v podstate nad kazdou malickosti nekdo premyslel. Kod ktery v nem produkuji se mi libi a dokazu v nem spravne vyjadrit vsechno co potrebuji. A vyhovuje mi v Rustu jak je vsechno pres option/result/iteratory...dobre se mi s tim pracuje. Muzu veci paralelizovat bez sevrenych pulek :D

    V Go jsem delal jeste nez melo generika (ta zvolena syntax se mi stale nelibi) a vsude se to hemzilo interface{} a asserty. Error handling mi nevyhovoval. Celkove ten jazyk cloveka nechal prasit pokud chtel :) A par fuckupu jako kontroly pointeru na nil interace, formatovani data/casu (WTF???) a tak. Kdyz v tom clovek dela opravdu rutinne, tyhle veci se mu zazijou, ale muj denni chleba to neni a jsem rad, kdyz me to co nejvic hlida.

    Ale zatimco Nyx samotny je v Rustu, migracni tool ze stareho sveta byl prave v Go...prave protoze na takovy jednorazovy nastroj mi ten jazyk prisel byt efektivnejsi.
    VELDRANE
    VELDRANE --- ---
    NYX: Mohl by ses prosim trochu vic rozepsat ? Zajimalo by me, co Te vytacelo na golangu a proc nakonec Rust. Ne, nechci zadnej flamewar ale koduju(ok bylo by lepsi rict bastlim :) tak trochu v obojim a tak me zajima jako nedouka proc rust v tomto pripade ano a go ne. Jinak i odpoved "Rust je bozi chapu", ja obcas treba pisu veci v danem jazyce proto, ze do nej chci proniknout.
    BONEFLUTE
    BONEFLUTE --- ---
    THEON: Díky.
    SHINING_KATE
    SHINING_KATE --- ---
    NYX: Koukám že vývoj Rocketu se zas rozjel :) Měla jsem chvilku strach že tě to donutí k dalšímu refactoringu.
    SHINING_KATE
    SHINING_KATE --- ---
    AXTHEB:

    Web framework: Actix, Axum
    Databáze: pro čisté SQL: sqlx
    Pro ORM: SeaORM, Diesel (U dieselu bacha na fakt že není async)

    Osobně z frameworků preferuju Axum, protože se snaží pracovat víc s existujícím ekosystémem knihoven, Actix si dost věcí dělá po svém.
    NYX
    NYX --- ---
    UETOYO: Tak jakou odpoved cekas? Rust je bozi :D

    Mel jsem nejake prototypy v Go, v Elixiru a uz v relativne v ranne fazi me tam vzdy neco vytacelo. Modernizovat puvodni PHP verzi by znamenalo taky komplet prepis a v takovem pripade je uz na miste zvolit technologie, ktere cloveku pomahaji aniz by je k tomu clovek musel nutit nasilim.
    NYX
    NYX --- ---
    UETOYO: Jo
    NYX
    NYX --- ---
    AXTHEB: Hodne frci i axum, sqlx. Nyx je rocket + diesel + askama.

    Prijde mi, ze ty frameworky obecne pocitaji spis jen s api, podpora formularu je dost tristni. Rocket je v tomhle asi vyjimka, nedavno dodelali rozumnejsi podporu pro zpracovani dat z formulare. Ale vykreslovani formularu je asi na tobe, rozumne hotove reseni jsem nikde nepotkal a napsal si vlastni.
    THEON
    THEON --- ---
    AXTHEB: Já skončil u actixu a dieselu, mám pocit že to je jedna z těch častějších kombinací
    AXTHEB
    AXTHEB --- ---
    Tak nějak úspěšně jsem prošel základními učebnicemi a nakoukal spoustu videí, ale neorientuji se v ekosystému - jaké balíčky si mám nastudovat, pokud chci napsat web appku? Rád bych nějaké ORM, něco co mi pomůže konzumovat API s OpenAPI speckou, mít vlastní API s OpenAPI speckou a nesložitý frontend ( zobrazování nějakých dat v tabulce/grafu a pár formulářů)
    THEON
    THEON --- ---
    BONEFLUTE: Jaká je logika toho, že máš způsob jak udělat `Selector` z `&str` co může selhat, a jiný, co nemůže? Proč bych potom někdy chtěl používat ten, co nemusí uspět? :)

    Ta automagie je přesně z tohohle důvodu - From (konverze co vždy uspěje) implikuje i implementaci TryFrom (konverze co nemusí uspět) - která ti akorát nikdy v praxi ten Err nevrátí. Ale naopak, z toho že umíš TryFrom (konverzi co nemusí uspět) "nevyrobíš" konverzi co vždy uspěje.

    Jestli je to o tom, že tvoje implementace From nějaké informace třeba zahazuje (v případech kdy TryFrom vrací chybu), potom je to o jiné funkci - mrkni třeba https://doc.rust-lang.org/std/string/struct.String.html#method.from_utf8_lossy
    MARASAN
    MARASAN --- ---
    BONEFLUTE: neni to pripad popsany o kousek niz?
    [SPIKE411 @ Rust - Programovací jazyk]
    BONEFLUTE
    BONEFLUTE --- ---
    Zdravím. Potřebuji poradit.
    Mám strukturu `Selector` a chci pro ni implementovat `impl TryFrom<&str> for Selector {` a zároveň `impl From<&str> for Selector {`. From mi jde, a TryFrom taky. Ale nejde mi oboje najednou. Hlásí mi to chybu, že
    note: conflicting implementation in crate `core`:
               - impl<T, U> TryFrom<U> for T
                 where U: Into<T>;
    Uvažoval jsem, že to třeba při implementaci From automagicky vygeneruje i ten TryFrom, což je skutečně tak. Ale pak to moc nefunguje, protože nemám u From jak vyhodit chyby.
    Tak jsem to skusil otočit a vytvořit TryForm, a zda to udělá Form automagicky. A to neudělá.
    Můžete mě nasměrovat co dělám špatně? Jak naimplementovat u Selector TryFrom i From?
    Děkuji.
    Kliknutím sem můžete změnit nastavení reklam