If we time travel back to when Node caqme out, the single most common reason I saw cited for its success was something like: “JavaScript’s simple event-based programming model is a natural fit for a server coordinating I/O from different places”.
Back then we had callbacks and closures and it was just powerful enough you could do almost anything, but simple enough that you were never truly lost.
Now I see developers pumped about a world where callbacks, promises, and async/await are all mixed together in an NPM soup.
I wonder if that mixture might be the thing that finally pushes JavaScript out of reach for beginners (if it’s not there already).
And maybe that opens a door for something like Lua, if it really can embrace async functions without the baggage of Promises and callbacks spread throughout public repos.
Even if that works out though, I do wonder about that original reaction to Node. Maybe Ryan Dahl really hit on a good control flow model that the JS community then threw away. I do think that platform devs sometimes try too hard to make async “disappear” instead of trying to make it inspectable.