4 ms·
Yup, Dropbox Infra is mostly a Go shop. It's our primary development language and we don't plan to switch off any time soon. We're always about the right tool
by james_cowling 11y ago
Yup, Dropbox Infra is mostly a Go shop. It's our primary development language and we don't plan to switch off any time soon.
We're always about the right tool for the job tho, and there are definitely use cases where Rust makes a lot of sense. We've been really happy with it so far.
- SeanDav 11y agoWithout getting into any sort of religious war, what are typical use cases that make Rust a better choice?
- moomin 11y agoThe really big deal is memory management. There's no GC, and there's pretty precise memory control, and it's not the Shub-Niggurath that dealing with C++ is. In fact, just think of Rust as C++ for mortals. :)
- james_cowling 11y agoI think @jamwt did a pretty good job of explaining this in https://news.ycombinator.com/item?id=11283688 https://news.ycombinator.com/item?id=11283688. At a high level it's really a memory thing. There are a lot of great things about Rust but we're also mostly happy with Go's performance. Rust gave us some really big reductions in memory consumption (-> cheaper hardware) and was a good fit for our storage nodes where we're right down in the stack talking to the hardware. Most of the storage system is written in Go and the only two components currently implemented in Rust are the code that runs on the storage boxes (we call this the OSD - Object Storage Device) and the "volume manager" processes which are the daemons that handle erasure coding for us and bulk data transfers. These are big components tho.
- chirau 11y agoWhat happened to Python?
- jamwt 11y agoWe still have a ton of Python. James is referring to the infrastructure software layer--storage services, monitoring, etc. That particular part of Dropbox is mostly Go. But our web controller code, for example, is millions of lines of Python. And we use Python in lots of other places as well.
- mandeepj 11y agoWas not earlier it was Python? I guess Dropbox even hired Guido van Rossum due to this.
- rbranson 11y agoCurious about the specifics with how you interfaced Go with Rust.
- jamwt 11y agoRight now, they talk over RPC. In the future, we might embed Rust libraries as C libraries into go and other languages.