News for hackers. Stuff that matters.
Re:Rewriting the heart of our sync engine by palerdot on Tuesday March 17, 2020 @01:55PM (#22607869)
> Rust isn't the only language with these properties, but it is one of the few

Just curious, what are the other languages that competes with Rust in terms of correctness, safety, ergonomics and efficiency?

Go is more on the ergonomics side and Haskell on the correctness side, but are there any serious alternatives for Rust that checks all the boxes?

Re:Rewriting the heart of our sync engine by rbtying on Tuesday March 17, 2020 @08:43PM (#22612405)
It depends on what you mean by checking all the boxes:

Go is tricky if you run on diverse platforms and want to do a lot of FFI, since cgo overhead is significant. The type system in Go is also not very powerful, which is both good and bad.

Haskell tends to hit performance walls that are very difficult to debug, and has a pretty similar learning curve to Rust (most people you hire onto the team won't know the language already).

The predominant competitor in this space is probably a high-level dynamic language combined with C/C++ library code. With good tooling and good practices to mitigate footguns, the extensive library support in C++ has a lot to offer.

Of course, I think Rust makes a better trade-off there, but early in the project it was not at all obvious that the good parts outweighed the fact that we would probably have been the biggest user of any library we depended on. We had some fun adventures in stress-testing HTTP/2 support here :)

Re:Rewriting the heart of our sync engine by jp_sc on Wednesday March 18, 2020 @03:46AM (#22614478)