Pick a language. They are both fine. Both will probably solve whatever problem you have without too many issues. Arguing over which one you should use its probably pointless 99% of the time.
I wish I had a link to the twitter exchange between both accounts where the answer they both agreed with was learn both, and lets have this conversation in a week. It feels 100% relevant here.
This is a common advice but it isn't realistic.
It takes a lot of time to learn a language, its tools, its most popular libraries, its best practices, to interact with its community, to see in what problem domains it shines, etc.
I'd say you need to give it more than a year, more than two if you're not doing it on the job. You can churn code much sooner than that obviously, that's not what we are taking about.
Nobody does that to see which language is best. And those that do are doing it superficially, writing a hello world or two and then jumping to conclusions.
This advice basically makes no sense and yet people keep repeating it.
But horses/languages don't have value in a vacuum. They have value because the industry recognizes them. You'll have fewer options if your main expertise is D or OCaml than if you're a C++ developer.
So you get advocacy posts about this or that language to increase their recognition in the industry. Attract developers to build the libraries and ecosystem needs. Attract developers to improve the compiler in ways that are useful to everyone.
So you need to cheer for this horse over that horse, because your career depends on it.
If there was ever a definition of apples to oranges, Rust and Go would be it.
And I very much dislike Go as a language.
I was interested in a rebuttal which would address these points. Instead, it comes across as just addressing the points in the article as an attack on Rust.
It comes across like: "X-Drink is better than Y-Drink, even though I've never tasted Y-Drink!"
Kudos to them for admitting that fact at least, I guess?
Both of these languages make people feel passionate in a way that other languages do not, and so we will continue to see these kinds of discussions, which I think is a good thing.
Better to have the overall software development community lively and engaged with the tools than cynical or disinterested.
> Ah crap, not that shit again.
> The whole point is "compiler is fast, tests run faster". Well, what if I said the compiler would catch bugs before the tests? That would be even faster, 'cause then you can focus your tests on system behaviour, which is way more important than function behaviour or class/structure/module behaviour.
A fast compiler is not only good for unit tests. And even when it comes to unit tests, it is not at all idiomatic Rust to omit them; on the contrary, unit test support is built into the language!
Rust having a slow compiler is a serious downside. The language has many upsides that can hopefully make up for it, depending on your priorities, but that doesn't make compilation speed a non-issue.
That said, the compiler is significantly faster than it used to be and hopefully will continue to improve as time goes on.
They are mostly aimed for different audiences and different purposes.
We chose Rust for a bunch of reasons related to enabling high-assurance software development with better ergonomics & efficiency than attempting to do the same with C and bolting a bunch of disjointed augmentations onto either it or its toolchain.
Substructural type system + HM type system + ease of integration into embedded targets is fantastic for the platform we're building and the markets we're addressing. Using Go would make no sense at all for us, but may be perfect for a use case where the same kinds of guarantees & assurances aren't necessary.
> You know who has Google problems? GOOGLE! You know who else has Google problems? NO ONE!
That's true, but guess what, Google still uses C++ and Java for the vast majority of its critical infrastructure. So even at Google, C++ and Java reign supreme at handling "Google scale". And it's not surprising really, the maturity, performance, tooling, etc. available for Java and C++ are far superior to what golang has to offer. Not to mention both being far better languages than golang (even with how complex C++ is). golang is a weak language not suited for modeling complex domains.
Secondly, golang was developed by some employees at Google, not Google itself. And if it weren't for the brand name behind it, it would have gone nowhere.
What about warp? https://github.com/seanmonstar/warp/blob/master/README.md
I'm a heavy Go user and light Rust user. I enjoy them both, and they gives me different set of advantages in return.
Please, don't use/treat comparisons as an attack, make it "So-this-can-help-me-do-that".