Comment by vkazanov

2 days ago

I am not a huge Rust fan but the language did bring a few practical and useful innovations, while also keeping a focus on practice.

And no, C++ just doesn't make the same things easy or clean.

And no, "discipline and appropriate rules" were never enough.

The practical and useful innovations were invented else, Rust made them mainstream.

  • Yes.

    The biggest innovation of Rust is bringing some of the good ideas from functional programming to low level programming. I'd also say that partially exposing data flow analysis to a proframmer is new.

    Rust package management is quite good, and also not by any means an invention.

    I am still not a fan of all the ugly macro programming systems and verbose syntax in the language.

    • Macros in Rust are really ergonomically terrible. Zig's approach here is way better.

      The language I really want is somewhere inbetween those two languages.

  • The borrow checker in Rust is frankly novel. Cyclone had something somewhat similar, but not the same.

    The broader ML-like type system in Rust is not novel, but the integration of the borrow checker -- and its move semantics more broadly -- with it... that form honestly is an innovation. And one I'd have a hard time living without at this point.

    • True! the borrow checker is a special thing. This is what i mean when i say "explicit data flow analysis".

      In a way this is compiler internals exposed to a programmer.