A year ago Rust was (to first order) an awkward compromise between Go and C++11, in personality. Today it is strictly a better C++ (although arguably Go has been shifting in the same direction). It's not just a better C++, since there are fundamental ways of thinking about things (which this post touches on) that aren't and never will be pervasive in C++. On the flip side, the library ecosystem is much younger, so that definition of "better" is not yet there. But I'd argue that any long-term projects you might want to start in C or C++ could be better done in Rust, and I'm way more confident of that argument for Rust 1.x than for a hypothetical continuation of Rust as it was about 12-18 months ago.
I don't see that all with Go. Go is getting a good degree of traction, because it's a really useful language for a lot of people.
> But, I don't see it taking the place of C, C++, or Java anytime soon for writing high performance or portable apps.
Why not, specifically?
I agree that Go has the traction and community to stay around for the long haul as a niche language.
It's not a replacement for C, and never will be. I can't imagine more than 5% of developers ever using it.
Let's take Java which despite C# is still the number one language in the world to use by number of developers and just compare Go to Java. That's more than fair since the number of Java developers in the world is less than the total number of developers in the world.
Given that, here's data to back my wild claims:
Java is in ~2.7% job postings on indeed.com currently: http://www.indeed.com/jobtrends?q=java&l=
Go(lang) is in ~0.0035% and the adoption curve has slowed: http://www.indeed.com/jobtrends?q=golang&l=
Similarly, in GitHut which compares language use across GitHub, you can see how the amount of Java code dwarfs the Go code currently shared: http://githut.info/
I know, I know- Go still have a great growing community, but it just hasn't taken off the way they would like you to believe. I still think it's a great language, but it isn't making the inroads we'd all believe it has based on the hype. That's not to say it isn't useful- it is, or that developers shouldn't learn it or use it- they should. But, it isn't one of the top languages nor will it be at the current rate of adoption.
> Why not, specifically?
That's a much bigger question, but the answer is: Go is not AngularJS.
What?!! You may ask. Here's what I mean:
In today's development world of every decent language and framework getting 15 minutes of fame, you have to have something really trendy and seemingly cost-saving to get you there. Go is a practical language written for speed (similar to Rust). That is not the Toyota Camry or Honda Civic of languages, that is the high speed locomotive. A different use case, and tough to market.
The point of any given programming language is not to be crowned queen of the programming prom, it's to produce useful software and improve the state of software development. As long as your language meets a minimum threshold for notoriety (which both Go and Rust do), the fact that they have less marketshare than Java is irrelevant unless your sole motivation for learning a language is to get a job at an enterprise company (which is a fine reason to learn a language, but I think you might be on the wrong forum if that's your overriding concern :P ).
I like Mozilla and would like to see Rust succeed, but I just see adoption as too risky right now. It's like when Go was the new-and-shiny; many jumped on the hype bandwagon because it was Google backing it and it was fast, then tried it out and realized it was a language for the <5% of teams that have projects that fit well.
Performance is an awesome thing and there is definitely a place for Rust. But, I don't see it taking the place of C, C++, or Java anytime soon for writing high performance or portable apps. All the same, I look forward to using it in a web browser!