(For those who don’t know why Rust would be OCaml’s “kid”: before Rust was self-hosted, it was implemented in OCaml, and Rust is sometimes called an ML in a C++ skin.)
I mean… Rust’s stdlib does have a reputation for being really well-designed and well-engineered, which isn’t an accusation I’ve heard anyone level at OCaml yet. ;-)
I love OCaml, and OCaml 5 is truly a monumental accomplishment, but this blog post is just marketing vomit. It presents grand statements without any code to back it up. There’s a “speed test” graph that’s presented without source code or a discussion of tradeoffs made during benchmarking. As oneirine points out, the original blog post (here’s a snapshot on the Wayback Machine) didn’t even have a goddamn link to the library it’s supposedly championing. There’s not even a single demonstration of how to use Eio in the text.
I suspect people are upvoting this because OCaml is an underdog programming language that people are rooting for, but there’s very little substance here — I would like to see this crap be kept off the Lobste.rs front page.
the results show that Eio outperforms Go and closely matches Rust.
The graph is showing how each one handles increasing load. The interesting part is seeing where each one levels off, but it doesn’t extend far enough to see what happens! It shows that Rust is faster, but not how much.
But I suspect this is because no one has optimised the Rust version much. In particular, Eio is using io_uring, whereas I think the Rust one isn’t.
What OCaml 5 and Eio can offer is an alternative that matches Rust on performance and user friendliness
It would be a bit sad if OCaml could only match Rust on user friendliness, despite having a GC and full type inference! Though Rust is very good at e.g. good compiler error messages, which makes up for a lot of complexity.
(note: I’m mentioned in the article, but didn’t see it before it went out)
Heh, the marketing trick for OCaml to latch onto Rust, of all the things, is a testament that the kid has grown up :o)
(For those who don’t know why Rust would be OCaml’s “kid”: before Rust was self-hosted, it was implemented in OCaml, and Rust is sometimes called an ML in a C++ skin.)
I mean… Rust’s stdlib does have a reputation for being really well-designed and well-engineered, which isn’t an accusation I’ve heard anyone level at OCaml yet. ;-)
Here’s the library itself since it strangely wasn’t linked to in the blog post.
I don’t know if it linked there before, but it does now.
I love OCaml, and OCaml 5 is truly a monumental accomplishment, but this blog post is just marketing vomit. It presents grand statements without any code to back it up. There’s a “speed test” graph that’s presented without source code or a discussion of tradeoffs made during benchmarking. As oneirine points out, the original blog post (here’s a snapshot on the Wayback Machine) didn’t even have a goddamn link to the library it’s supposedly championing. There’s not even a single demonstration of how to use Eio in the text.
I suspect people are upvoting this because OCaml is an underdog programming language that people are rooting for, but there’s very little substance here — I would like to see this crap be kept off the Lobste.rs front page.
I thought this bit was amusing:
The graph is showing how each one handles increasing load. The interesting part is seeing where each one levels off, but it doesn’t extend far enough to see what happens! It shows that Rust is faster, but not how much.
Possibly these benchmarks are in some way related to the ones at https://github.com/ocaml-multicore/retro-httpaf-bench. This recent PR has an extended graph, showing Eio actually being faster than Rust: https://github.com/ocaml-multicore/retro-httpaf-bench/pull/24
But I suspect this is because no one has optimised the Rust version much. In particular, Eio is using io_uring, whereas I think the Rust one isn’t.
It would be a bit sad if OCaml could only match Rust on user friendliness, despite having a GC and full type inference! Though Rust is very good at e.g. good compiler error messages, which makes up for a lot of complexity.
(note: I’m mentioned in the article, but didn’t see it before it went out)