4 ms·
I still love Go, but I think Rust is a better fit for very performance sensitive systems software like a database.
by pauldix 3y ago
I still love Go, but I think Rust is a better fit for very performance sensitive systems software like a database.
- jerf 3y agoYou can write a database in Go, sure, but if you want to compete at the very top end, you need all the control. Go is nice in the way that Go is nice (if you even agree with that statement) precisely because it doesn't have that control. Unless it is a terminal goal for a database to be in Go simply to be in Go (BoltDB seems to fit into this category) or you don't care to compete at the very top end, I think it's a mistake to even start in Go. To be honest, most of the "we started in Go and switched to Rust" stories read to me as "you should have always known that you should have started in Rust" (or C++ or something, though I'd choose Rust out of the viable set of languages here too). It's IMHO always been obvious that Go was not really viable, I mean, sure, you can get farther than you could with starting with Python, but, it's not something Go was even trying to solve.
- ssd532 3y agoWhat problem, according you, is Go "trying" to solve?
- hu3 3y agoNot sure I follow since there are very competitive tools written in Go such as https://victoriametrics.com https://victoriametrics.com for an example in this space.
- zozbot234 3y agoMost "we started in Go" projects are a lot older than Rust itself. Rust 1.0 was only released in 2015, and the language only really became usable with the 2018 edition. C++ is not really a comparable language, it's not even memory safe.
- lelanthran 3y agoIf you're scaling horizontally it's doubtful that language choice of rust Vs Go is going to make a difference. Not enough, anyway, to make a complete rewrite more profitable over adding features. After all, it's not as easy if influx was plagued by concurrency bugs, was it? A move to a safer language than go just doesn't seem worth it, and there's little to no performance gain when you can just throw more hardware for that tiny performance difference.