Please note that Rust is very alpha alpha alpha at the moment. Syntax evolves constantly. Several concepts don't even <i>exist</i> yet, and many are present only in half-formed nascent states.<p>The bottom line is that if you're interested in writing applications using Rust, you should really hold off until 0.4 or so (I'd say give it three months), both to give them time to implement all the missing pieces and then to refactor the Rust compiler to <i>use</i> those pieces, thereby shaking out the bugs and annoyances.<p>But if you're interested in helping out on writing the compiler itself, or proof-of-concept libraries, definitely consider pitching in. The devs greatly appreciate volunteer contributions.
I feel like I'm beating a dead horse, but I really can not grasp what the catalysts are for creating Rust or Go or Julia or other new languages that want to be safe, reliable, readable, etc.. 30 years ago these problems were solved in a language Ada. Its exact requirements include all of those and more.<p>See for yourselves: <a href="http://www.adahome.com/History/Steelman/steelman.htm" rel="nofollow">http://www.adahome.com/History/Steelman/steelman.htm</a>
Later revisions have well-though-out rationales that show off all the changes:
Ada 95: <a href="http://www.adaic.org/resources/add_content/standards/95rat/rat95html/rat95-contents.html" rel="nofollow">http://www.adaic.org/resources/add_content/standards/95rat/r...</a>
Ada 2005: <a href="http://www.adaic.org/ada-resources/standards/ada05/" rel="nofollow">http://www.adaic.org/ada-resources/standards/ada05/</a>
Ada 2012(!!): <a href="http://www2.adacore.com/wp-content/uploads/2006/03/Ada2012_Rational_Introducion.pdf" rel="nofollow">http://www2.adacore.com/wp-content/uploads/2006/03/Ada2012_R...</a><p>The steelman was the end revision of requirements for the original language. There is a comparison of C/C++/Java/Ada wrt the steelman available as well. Ada has become so much more since this document and it's original version one really must see it to be believe it. :o)<p>As a community we have a tendency to embark on projects on a whim, but the effort, time and money required to bring a language to maturity is enormous. Even then any deficiency a preexisting language may have surely is not so insurmountable as to make it viable to develop a new language in house.<p>Can we please have some sanity? Can we please look for mature solutions?<p>Edit: Ada has an amazing GCC frontend developed largely by a successful opensource company (with just massive customers across the globe) and is available across all of its targets: the bsd's, solaris, linux, mac, haiku, android and more. It's a great solution that is hard to ignore.
Can anyone explain this, from the first paragraph, to a bog standard PHP-for-the-web programmer please?<p>"Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and operational – that preserve large-system integrity, availability and concurrency."
Out of curiosity, what's Mozilla's motivation for making a new language?<p>Everything I'm reading here in the comments is talking about how this would be a replacement for c/c++, but wouldn't Mozilla be more interested in a language that's more web focused? As I see it, Rust would NOT be a web language, or am I missing something? Is this something they would try and develop future versions of Firefox in?
<a href="http://doc.rust-lang.org/doc/tutorial.html#pattern-matching" rel="nofollow">http://doc.rust-lang.org/doc/tutorial.html#pattern-matching</a><p>This is the whole reason why that language has such a big potential.<p>It has high level algebraic datatypes with pattern matching, so you can nicely model your control flow (like haskell or ocaml) but still remaining low-level.
rust seems to get compared to go a lot, simply because they are socially similar (open source c-like language developed by large, popular company). i'd like to see some comparisons with languages like clay and ats, both of which seem closer to what rust is trying to be.