3 ms·
"Their previous blog post (linked in the first sentence) about why the switch from Go to Rust is insightful." I was actually a bit astonished by it. The most t
by jerf 3y ago
"Their previous blog post (linked in the first sentence) about why the switch from Go to Rust is insightful."
I was actually a bit astonished by it. The most trenchant concrete example they could give is... Go's standard library abstraction around file permissions is a bit inconvenient for their use case? This is easily fixed in Go in about a day without a complete rewrite; you just write some new stuff directly against the relevant syscall libraries and use build tags to control the different OS builds.
Just because an abstraction exists doesn't mean you have to use it! It is not a requirement of Go that you must use that particular abstraction, it's just something provided by the standard library. We once wrote a library for Perl using the openat and other *at functions because we needed the security guarantees, and it worked fine, despite the "standard library" not working that way.
My read is that they're basically doing this because they want to, not because Go forced them to. That's fine. There's nothing wrong with that, if they want to pay the price for migration. (Were someone proposing it to me in real life I'd expect a better reason than "I don't like how it handles file permissions in the standard library", though.) However, as an external observer using it as a grounds to decide it's much weaker than may meet the eye; I wouldn't overprivilege it.
The real reason to prefer Rust here would be something on the lines of "We're doing so much crazy concurrent stuff that we need the guarantees that Rust provides via compiler but Go only provides via common practices." The latter can carry you a long ways but it does eventually give out and become insufficient for a codebase, and when that's the case Rust becomes one of the short list of options. "Go common practices" is actually pretty high up on the set of "ways to do reasonable concurrency", reaching above that requires a pretty significant shift to Erlang/Elixir, Haskell, or Rust, and given the goals of the project that would basically leave Rust as the only acceptable performance choice. It's possible that this would qualify for them, though I'm not sure... from what it sounds like they're doing, a task management system that ensures that only one worker is doing a given task and everyone else waits on the relevant output without redoing it would be the core of their architecture, and even if you use that thousands of times per execution that doesn't necessarily mean the code is complex internally.
- returningfory2 3y agoThat article definitely buried the lede. A fair reading of the article is that the only reason they are switching from Go to Rust is because their dev team wants to write in Rust. Which is fine! But I think they could have been more open about that rather than inventing a strange complaint about how Go handles file permissions.
- everybodyknows 3y ago> ... because their dev team wants to write in Rust. Which is fine! But I think they could have been more open about that ... Not when pitching the project to hard-nosed non-technical managers burdened with personal responsibility for P&L results.
- geodel 3y agoAgree. I have a mental category for these posts: We saved some of cloud / server side cost with Rust, so you user can spend more on local desktop /cloud cost with Javascript Sometimes cost savings can be imaginary but since Rust is cool it is all fine.
- lossolo 3y agoTheir technical justification is so weak that I think it was more like, 'We are bored, look at this new shiny toy called Rust. Let's think about reasons why we need to use it (to justify using it) so we can have some fun'.
- geodel 3y agoYes. To be honest I keep learning, writing bits n pieces of tools using cool new language/framework etc for my personal pleasure. But to read these kind of official announcement blog posts feels so fake. I don't know, but I can't take anything seriously from people/companies writing these articles.