5 ms·
I'm really curious: the article cited at the end of the post [1] lists major projects that use each respective language. For golang it lists: Kubernetes, Docke
by parhamn 5y ago
I'm really curious: the article cited at the end of the post [1] lists major projects that use each respective language.
For golang it lists: Kubernetes, Docker, Github CLI, Hugo, Caddy, Drone, Ethereum, Syncthing, Terraform
For Rust it lists: Firefox, ripgrep, alacritty, deno, Habitat
While both lists are a bit cherry-picked and some not really true, it is certainly true that there are significant more (I'd guess 1 or 2 orders of magnitude) large projects using Golang.
What do you make of the fact? Certainly it's not programmers that want to be treated like they're not smart. Nor can you assume all the different team's engineering leaders made foolish decisions.
[1] https://thenewstack.io/rust-vs-go-why-theyre-better-together/ https://thenewstack.io/rust-vs-go-why-theyre-better-together...
- azth 5y agoSimple: hype. I've seen it at an employer who heavily uses golang. Even a very high up key person in the org was not able to properly defend why the company was using it. It has its use cases, it's basically a faster python, and it's good for writing command line apps since it compiles to native code. Other than that, it has nothing going for it especially compared to proper mature server side languages like Java and C#. Even its compile times are not that impressive when programs get large, which is quite ironic.
- zozbot234 5y agoRust is a lot newer, for one thing. It was arguably not even generally usable prior to the 2018 edition (which added 'non-lexical' lifetimes). Go has had practically no major changes since its 1.0 release in 2012 or so. Yes, it has generics now but these are very new still.
- scottlamb 5y ago> While both lists are a bit cherry-picked and some not really true, it is certainly true that there are significant more (I'd guess 1 or 2 orders of magnitude) large projects using Golang. I think Go's been a mature base for those kinds of projects long enough for them to have been written. Rust not only is newer but arguably is still pretty immature for network programming. For sync code, the library base isn't there and probably never will be (because most of the libraries are being written for tokio instead). For async code, there are still a bunch of well-known difficulties. [1] This is my biggest complaint about Rust. People are aware of it and working to improve it, so I hope to see a change over the next several years. It will never be as simple as Go, though. Go's green threads model has downsides but it is really pleasant and simple to program in. [1] e.g. see https://carllerche.com/2021/06/17/six-ways-to-make-async-rust-easier/ https://carllerche.com/2021/06/17/six-ways-to-make-async-rus...
- dragonwriter 5y ago> What do you make of the fact? Golang hit 1.0 in 2012, Rust in 2015. That's a big factor. Golang has been marketed heavily by Google, Rust doesn't have an equivalent sponsor. That's also a factor. There's also a difference in focal domain, with Rust’s focus in places where evaluation and replacement cycles are naturally longer and that are deeper at the core of infrastructure.
- philosopher1234 5y ago>Golang has been marketed heavily by Google Where is this marketing by google? Though I don't really understand the point of this line of questioning anyways.
- geodel 5y ago> Golang has been marketed heavily by Google, Sounds like bullshit to me. Go did not even have proper Google branded website until last year.
- int_19h 5y agoIt doesn't matter; everybody knows that Go is a Google project, and is not going away for as long as Google is around, simply because they have so much internal code written in it.
- Steltek 5y agoExactly. In my work environment, Go was a serious tool from a big serious company and Rust is a hyped up hobby language without any serious funding or support. For a new project, the guidelines from above were "any language you want except Rust". This has translated to me as Go is for the weekdays and Rust is for the weekends. It's the equivalent to the 2000's Java for work and $LiterallyAnythingElse for personal stuff. It's a mindset that will age the same as well, I think.
- int_19h 5y agoFWIW this was not a remark on relative values of Go and Rust, but rather public perception of them, and how it affected their adoption rates. Personally, I'm mildly positive on Rust, but view Go as a step back in PL evolution. But also, as far as adoption goes, things are changing. My work environment - which is Microsoft, so "big serious company" - is embracing Rust. There's production code written in it, and there's public support (see e.g. https://docs.microsoft.com/en-us/windows/dev-environment/rust/overview https://docs.microsoft.com/en-us/windows/dev-environment/rus...). So at this point I would say that Rust should be considered as having equivalent corporate backing and expected longevity.
- detaro 5y agoRust is newer and had less time to gain major projects, Golang was pushed harder into companies (I.e. I feel like I saw it adopted for work stuff earlier relatively speaking, compared to Rust where most of the enthusiasm I see is hobbyists), Rust's main (not only!) point of targeting C++'s domain is a lot more conservative and difficult target space than Go's. And in the overlap Go might have "captured" some projects that would've picked Rust if Rust had been the earlier one.