Rust-ban is programozhatóvá teszi a modern Windows alkalmazásokat a Microsoft
2020-05-06T20:00:03+02:00
2020-05-10T17:37:51+02:00
2022-07-20T15:26:53+02:00
  • Úgy egy éve foglakoztam vele egy kisebb projekten. Nem rossz de szokni kell, vannak dolgok amikben nekem eléggé körülményes a nyelv, például a hasonló integer típusok közötti gyakori oda-vissza konvertálgatás (u8 <-> i8). Referenciákat, mutable referenciákat, pointereket meg kell szokni, a szemantikájukat sem lehet C++-os tudással csuklóból kiismerni.

    A benne írt kód tömör, eléggé egyértelmű, de alkalmaz "syntax-salt"-ot is: nincs benne function overloading - ez mondjuk rákényszerít, hogy ne akarjunk mindent ugyanúgy hívni, nevezzük el őket  precízebben, de a generics-el természetesen ezt "meg lehet kerülni". Az OO részével annyira nem foglalkoztam, de ez inkább csak opcionális a C++-hoz hasonlóan, szóval nem egy Java, hogy tessék csak osztályt csinálni egy mezei segédfüggvényhez is.

    Ami viszont tetszett benne az az, hogy a (C++11-ben megjelent) move-semantics-ot mélyebben beleépítették, jobban össze lett gyógyítva a RAII megoldásokkal is.

    Sőt a egy generics szintaxissal (a paraméter így néz ki: <'a>, és így lehet használni: foo: &'a u8) a változókhoz hatókört is lehet rendelni, ha például egy mezőt a hozzá tartozó objektumon kívül is használni szeretnénk, amit a fordító ellenerőzni is fog. (C++-ban azért nagyon könnyen bele lehet futni ebből fakadó segfault-ba.)

    C++ move:

    std::vector<int> a { 1, 2, 3 }; auto b = std::move(a); int n = a[0]; // lefordul, de UB lesz
    Rust move:

    let a = A; let b = a; // kb. std::move() impliciten let c = a; // ez pedig compile error

    ...tehát nem enged csak úgy olyan kódot fordítani, hogy egy átmozgatott értéket még véletlenül használnának a régi változón keresztül. Persze referenciákkal együtt a move-semantics rossz használata tud eléggé nehezen átlátható hibákat produkálni.

    De összességében szerintem eléggé átgondolt nyelv, hatékonyan lehet vele alacsony szinten dolgozni, viszont tudni is kell használni a nyelvet.
    Mutasd a teljes hozzászólást!
  • Én foglalkoztam vele egy ideig, szokni kell a logikáját.
    Amúgy a nyelv elég jól ki van találva, az std. libje is tetszik.
    Tooling szempontból se áll russzul, van RLS (Rust language server) Visual Studio Code-hoz.
    Van "hivatalos" oldala, ahol a csomagokat hosztolják, kb. mint a nuget.org vagy a hackage.haskell.org.

    Nem tudnék róla rosszat mondani.
    Mutasd a teljes hozzászólást!
  • Valakinek van tapasztalata Rusttal?
    Mutasd a teljes hozzászólást!
abcd