• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    SPIRALIRust - Programovací jazyk
    XCHAOS
    XCHAOS --- ---
    MARASAN
    MARASAN --- ---
    XCHAOS: to je popsany v The Book, ne?
    XCHAOS
    XCHAOS --- ---
    Jako člověka, který trochu tuší, jak je to (ne)udělané v C, mi samozřejmě zajímalo, jakou strategii memory managementu má Rust... totiž, jedna věc je naučit se to používat podle návodu a vzorových příkladů a druhá je mít představu, jak to je udělané uvnitř. Následující článek něco kolem toho nakousl a slibuje pokračování, ale to na tom blogu chybí...
    Memory Management & Rust. I have always been fascinated by the… | by Rabin Gaire | Medium
    https://medium.com/@rabin_gaire/memory-management-rust-cf65c8465570

    Kdyby měl někdo odkaz, kde je popsané to vlastnění paměti na heapu proměnnými na stacku a hlavně ta možnost "půjčování" (to funguje jako běžný reference counter? nebo nějak jinak?)
    SHINING_KATE
    SHINING_KATE --- ---
    Hm, nevím jestli to nehodit spíš do programátorské spolupráce, ale tahle diskuze mi přijde docela trefná. Možná budem brzo shánět další backend Rust devy. Respektive, pořád sháníme, ale brzo to nejspíš začne být o dost naléhavější.

    Hledám do svého teamu spíš seniornější lidi, se zápalem o OSS, ideálně někoho kdo zná komunikační protokol matrix, ale to se dá snadno dohnat. Nabízíme fajn kolektiv, remote i po Covidu (Firma byla full remote dřív než tohle začalo), slušný, i když zatím startupový plat (přesně neřeknu, ale na vyžádání do pošty řeknu reálné rozsahy). Zvládáme i part time / studenty, ale momentálně alespoň 20 hodin týdně.

    Job @ Famedly (Remote): Rust Developer (m/f/d) | JOIN
    https://famedly.join.com/jobs/2307478-rust-developer-m-f-d

    Podotýkám že poslední část inzerátu je pro nás dost stěžejní, kdokoliv komu se při těch slovech tvoří u úst pěna do kolekivu nezapadne :)
    SHINING_KATE
    SHINING_KATE --- ---
    XCHAOS: Thread safety se kontroluje compile time, takže co se zkompiluje je automaticky thread safe. (pokud jde o čistý rust kód; kompiler rustu samozřejmě nemá šanci ověřovat thread safety případných slinkovaných externích knihoven v C++ a podobně)

    Pořád je ale potřeba dát si pozor na případné deadlocky. A v případě práce s asynchronním programováním a runtime jako Tokio do toho ještě leze blokování threadů - použít std::sync::Mutex v Tokio aplikaci místo asynchronního tokio::sync::Mutex je třeba slušný náběh na deadlock :)
    XCHAOS
    XCHAOS --- ---
    SHINING_KATE: tak zrovna na thread-safety Rustu jsem se chtěl zeptat, dík :-)
    SPIRALI
    SPIRALI --- ---
    Vysla verze 1.52.0

    Announcing Rust 1.52.0 | Rust Blog
    https://blog.rust-lang.org/2021/05/06/Rust-1.52.0.html

    Vypada to z vnejsiho pohledu na drobnosti + oprava otravneho cachovani clippy vs check. Interne pak prechod na nove LLVM.
    SUCZKER
    SUCZKER --- ---
    SHINING_KATE: Taky do toho občas koukám :)

    A za naprosto výbornou považuju tuhle serii přednášek, která se snaží vysvětlit hlavně "proč" , nikoliv primárně "jak" a týpek přitom ukazuje srování s C++. Pro někoho ale asi bude překážka ruština:

    Введение
    https://compscicenter.ru/courses/rustprogramming/2019-spring/classes/4445/
    MARASAN
    MARASAN --- ---
    XCHAOS: balicek v debianu je starej, nainstaluj si pres rustup, je to lokalni instalace jen pro usera, napohodu. Jednou za cas staci rustup update
    SHINING_KATE
    SHINING_KATE --- ---
    XCHAOS: Ne nutně, spousta knihoven počítá s aktuálním Rustem. Rust sice v rámci dané edice nezavádí breaking changes už existujících featur, ale nové přidává celkem dost.
    KEJML
    KEJML --- ---
    XCHAOS: No všiml jsem si, jak si stěžuješ, že ostatní nečtou odkazy, který dáváš na Nyx ;)
    A zrovna Debian není proslulej čerstvostí svých balíčků. Já se držím toho, co mi autoři doporučují, ty se s tím poper jak je ti libo :)
    XCHAOS
    XCHAOS --- ---
    Jinak navrhuju "Rustacean" do češtiny překládat jako "Rezýš" :-)
    XCHAOS
    XCHAOS --- ---
    KEJML: tak já dělám všechno špatně, znáš mě :-) právě, že jsem doufal, že stačí z balíčku... ale myslím, že na první pokusy mi to stačit bude
    KEJML
    KEJML --- ---
    XCHAOS: A instaluješ podle návodu hned v prvním odkazu?
    XCHAOS
    XCHAOS --- ---
    KEJML: no, hned první řádek... do Debianu se mi nainstalovala tahle verze:
    xchaos@lenochod:~$ rustc -V
    rustc 1.41.1
    SHINING_KATE
    SHINING_KATE --- ---
    SHINING_KATE
    SHINING_KATE --- ---
    XCHAOS: Obrovská výhoda Rustu je právě dokumentace. Jak ta oficiální, tak dokumentace většiny knihoven je na opravdu dobré úrovni. Kniha od O'Reilly taky super :)

    Pokud jde o ty webové frameworky, Rocket mi přišel pro začátečníka o něco stravitelnější.
    SHINING_KATE
    SHINING_KATE --- ---
    SPIRALI: Unsafe v Actix je teď redukovaný na naprosté nutné minimum. :) (A co tak občas koukám, volání unsafe ubývá)
    NYX
    NYX --- ---
    Super je i Programming Rust od O'Reilly
    KEJML
    KEJML --- ---
    XCHAOS: Já se amatérsky pomalu prokousávám oficiální knihou, přijde mi, že to přesně hledáš:
    https://doc.rust-lang.org/stable/book/title-page.html
    XCHAOS
    XCHAOS --- ---
    SHINING_KATE:
    DATEL: to je vtipné, na Rocket jsem narazil, když jsem googlil, jak bych si mohl v Rustu napsat zkušební webovou aplikaci :-)

    Zatím tady přispívají samí profíci, já jsem teda doufal i v nějaký úvod pro začátečníky (myšleno: lidi co umí třeba C, Python a takové věci a chtěli by začít s Rustem)
    SPIRALI
    SPIRALI --- ---
    DATEL: Pokud se chce nekdo starat o nastenku tak mu rad pridam prava. Ale u odkazu ktere vypadnou v googlu hned na prvni strance mi to prijde trochu zbytecne.

    My jsme nedavno vybirali framework pro jednoduche RESP API pribalene k jinemu programu a vyber se nakonec zuzil na Rocket, Warp a Actix. Rocket jsme zamitli prave kvuli nightly. Nakonec to vyhral Warp, protoze nam prisel vice lightweight coz bylo jedno z hlavnich kriterii pro nase pouziti a i kdyz uz je to asi davno neplatny argument, stale si pamatujeme safety kontroverzi kolem actixu.

    SHINING_KATE: V jakem stavu je ted vztah k safety v Actixu, po tom co to puvodni autor zabalil? Predpokladam ze pod vice komunitnim vedenim se to trochu procistilo.

    Co se tyka GUI, tak krome aktivity kolem GTK tak jeste existuje Druid, jakozto experimentalnejsi pristup ke GUI. https://github.com/linebender/druid Ale tyto veci jdou mimo mne.
    SHINING_KATE
    SHINING_KATE --- ---
    DATEL: Rocket je dost známý, jediný problém byl, že po většinu své existence vyžadoval nightly verzi Rustu kvůli featurám, které ještě ve stable vydání nebyly. Používat to v produkci byl z mé zkušenosti docela hazard, každou chvilku se něco rozbilo.

    Aktuální vývojové verze (0.5.0-dev) by měly být funkční ve stable rustu a async.
    Mimochodem, podle všeho je v Rocketu napsaný Nyx ;)

    Naše firma ovšem dala přednost actix.rs a píšem v tom všechno.

    Co se týče GUI knihoven, přímou zkušenost nemám, ale věcí co jsou postavené na GTK-rs je docela dost a lidi kolem GNOME na Rust zdá se celkem sází, navíc je docela oblíbený https://github.com/hecrj/iced (tam je super i možnost kompilace do webassembly)
    DATEL
    DATEL --- ---
    Kolega mi zmínil webový Rustový framework, zkoušel ho a prý se mu docela líbí, můžete dát na nástěnku třeba :)
    Rocket - Simple, Fast, Type-Safe Web Framework for Rust
    https://rocket.rs

    Letmo jsem zkusil kouknout na nějaké GUI knihovny, asi bude něco kolem GTK, nemáte někdo osobní zkušenost s něčím?
    WILD_A
    WILD_A --- ---
    SHINING_KATE: Zatim jsem neprepinal default tj rust-analyzer ale muzu zkusit.
    WILD_A
    WILD_A --- ---
    Ja mam emacs na vsecno, takze emacs + rust-mode + rustic. Pokud nejste emacs user vrele nedoporucuji.
    SHINING_KATE
    SHINING_KATE --- ---
    MARASAN: Mám to jako Spirali. A https://tracing.rs/tracing/ je neskutečně mocný nástroj :)
    Kliknutím sem můžete změnit nastavení reklam