Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Programming asynchronous code is hard. Execution is split up, you have extra state machine to handle, extra resources to manage that need to survive across async boundaries. And by asynchronous, I mean either callbacks or manually checked completions from some event system. Modern languages hide that under async/await, which is much better from DX perspective, but still leads to split in the ecosystem, and it's hard to optimize across async boundaries.

This is an example why Go is such a successful language, in my view. It hides the async complexity and allows you to pretend you have a simple continuous thread of execution. It's just cheaper than system threads. Imagine if operating system threads and the blocking syscalls were this efficient.

I've spent the last year building a similar runtime for Zig. Purely because I want my applications to forget they are using things like io_uring in the background.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: