Hacker News new | ask | show | jobs
by pcwalton 3697 days ago
> To preempt: a systems language shouldn't dictate these high-level matters

But you cited a whole bunch of languages that do dictate this. Those languages don't have those problems because you can't write competing implementations of low-level async I/O in those languages.

And there certainly are competing, incompatible implementations of relatively low-level functionality in Golang, for example fasthttp: https://github.com/valyala/fasthttp

I'm all for standardizing on one solution when the time comes. Rust will have an async I/O story. But right now nothing is mature enough yet to begin that process. Rushing to standardize something that is not yet ready is the worst of all possible options.

1 comments

> But you cited a whole bunch of languages that do dictate this

I don't believe the language needs to dictate something. It might help, sure, but there's no reason that is a requirement.

For the sake of compatibility, a blessed option should be offered.

The AIO situation today in Rust looks identical to Ruby, Python, and C++.

No, it doesn't. Basically all async I/O code in the Rust ecosystem uses mio.

And eventually a standard interface will be offered. Just not before it's ready.

Basically all async I/O code in the Ruby ecosystem uses EventMachine.

That's not the point: more of an ecosystem is built around the stdlib's blocking I/O than mio. New projects everyday are built around things that will eventually be incompatible.