Remix.run Logo
nottorp 4 days ago

Except you're hearing it from someone who doesn't have a problem handling state machines and epoll and manual thread management.

dullcrisp 7 hours ago | parent | next [-]

Right but how do you expose your state machine and epoll logic to callers? As a blocking function? As a function that accepts continuations and runs on its own thread? Or with no interface such that anyone who wants to interoperate with you has to modify your state machine?

palata 3 days ago | parent | prev [-]

And that was intuitive and easy to learn?

nottorp 3 days ago | parent [-]

I find state machines plus some form of message passing more intuitive than callbacks or any abstraction that is based on callbacks. Maybe I'm just weird.

palata 3 days ago | parent [-]

When I did not know how to program, neither async nor message passing were intuitive. I had to learn, and now those are tools I can use when they make sense.

I never thought "programming languages are a failure, because they are not intuitive to people who don't know how to program".

My point being that I don't judge a tool by how intuitive it is to use when I don't know how to use it. I judge a tool by how useful it is when I know how to use it.

Obviously factoring in the time it took to learn it (if it takes 10 years to master a hammer, probably it's not a good hammer), but if you're fine with programming, state machines and message passing, I doubt that it will take you weeks to understand how async works. Took me less than a few hours to start using them productively.