I am quite impressed with the design of Rust. For any strongly typed-language, I am always curious about how it handles generics. Most new languages will take in functional language features now a days and so does Rust. But, I think its killer feature is easier generics. C++, Java and to some extent, Scala have not been successful in taming the complexity that gets introduced while supporting generics. I think Rust with its prototype-like take on generics similar to Go, but still remaining strongly-typed, is a great design. I will be curious to know what you guys think about that.
Generics are great, but Rust's killer feature is regions, (Variable lifetime semantics), and, maybe moreso, its memory ownership semantics (e.g. reference borrowing). These aren't strictly separate features, they work together nicely. What I'm looking forward to is discovering how these features Will allow me to express some deeper aspects of what I _mean_ when coding, and have the compiler statically perform sanity checks for me.
There are a number of languages with support for generics. If easier generics was Rust's claim to fame, it would have quietly disappeared into LtU-land, never to be seen again.
Luckily, there's a lot more to Rust than that. Killer feature generics aren't.
Why do you think easier generics is not that important? I find that complexity of a statically compiled language increases manifold because of the way they handle generics. Do you think complexity does not increase or do you think complexity is not a criterion for success of a language?
I have experienced some form of generics in Modula-3, Ada, Eiffel, C++, C#, D, Java, Scala, OCaml, F#, Haskell.
Given my CS background, the only language I think does a poor job with generics is Java.
As for language's success, it is usually related to which company is pushing it, or which killer feature/framework makes the people want to learn it.
I am not aware of any language that went mainstream just because it was simpler than existing ones, without having one of the reasons listed above tied to it.
Is typestate still in? I read somewhere it was coming out in 0.4 but I don't see anything about it in the release notes. I think it's one of Rust's most interesting features and hope it does stay put.