

Keeping up with Rust's breaking changes - steveklabnik
https://mail.mozilla.org/pipermail/rust-dev/2014-April/009543.html

======
SmileyKeith
How do people who have experience with both think about Go vs Rust? I'm not
even sure if that's an apt comparison but people seem to be pitting them
against each other these days.

~~~
pnathan
It's an inapt comparison and the comparison should _not_ be made naively.

If I spent the next 6-12 months writing libraries in Rust targeted towards
Python-level code, we could spend time comparing Rust + those libraries vs. Go
and have a productive discussion.

Personally, I think that Go is a clumsy language, a chimera of C plus Python,
having neither type safety nor significant abstraction nuance. More
sophisticated minds than I have flamed Go in depth, I won't bother parroting
them. :-)

Go's primary advantages are:

    
    
      1. Google.
      2. Targeting the Python/Ruby developers & needs.
      3. Compiled & statically linked
      4. Relatively stable.
    

Rust's chief disadvantages are:

    
    
      1. Still < 1.0. 
      2. Semi-manual memory management. Gc'd pointers are kind of a pain.
      3. How many pointer types again? >.<
      4. Strongly typed. [1]
    

If I was given a mandating hand to develop a reliable and efficient system for
_most_ applications to maintain (with funding) over the 5-10 year term, I
would be OK with choosing Rust today, with the expectation that we'd have some
porting and heavy lifting as things change, possibly even contributing
development time to the Rust project.

[1] Probably should expand this. You have to spend serious time understanding
how the type system works after you get into the more advanced type systems.
Haskell, ML. It's a disadvantage for quick learning and the quick hack to get
the system working. Changes simple in a less typed language (e.g., Perl) can
have non-local type ramifications in a project. /me handwaves. It's double-
edged.

~~~
pcwalton
> 2\. Semi-manual memory management. Gc'd pointers are kind of a pain.

Well, that's exactly what makes Rust so useful for many domains. Rust is
useful for systems code because it doesn't use GC for everything.

> 3\. How many pointer types again? >.<

There are references and then smart pointers, of which owned pointers (~) are
one kind.

------
zatkin
I was recommended by someone to learn Rust, but without reason. Does anyone
have any reasons for why I should look into this, apparently, new language?

~~~
pcwalton
The biggest selling point of Rust is that it allows you to write low-level
code with memory safety (so no use-after-free, buffer overruns, Heartbleeds,
etc) and without runtime overhead. Right now this is a niche that Rust has to
itself, as far as non-academic languages go. It's like having a C++ static
analyzer with guaranteed no false negatives built into the language.

You also get nice high-level productivity features like type inference,
lightweight closures, a module system, a modern take on interfaces, etc.

