Hacker News new | past | comments | ask | show | jobs | submit login

"syntactic tools" -> implicit state.

There's only so much the compiler can do for you. At some point you have to bear some of the cognitive load of state compression (which is really all async is about).

Multi-processing was great, but it doesn't scale to today's world, and neither does multi-threading. It doesn't matter in the least that those two technologies allow the programmer to write serial-looking code that does not execute serially. Those technologies cannot compress program state embodied in the call stacks and heap, therefore they do not scale (because they consume too much memory, have worse cache footprints and higher resident set size, involve heavy-duty context switching, and so on).

In terms of actual novelty in this space in computer science, I don't believe there's been anything new since the 80s. Everything that seems to be new is an old idea rediscovered, or a new take on an old idea, so either way not new at all.

CPS -> least implicit state.

Process -> most implicit state.

In between those two there are a few options, but nothing is a panacea, and ultimately CPS is an option you have to be prepared to use.

Less implicit state -> explicit state, which you can compress well because you understand its semantics.

Less state -> less load for the same work -> more work can be done.

In some contexts (e.g., the UI) this is a very big deal, which is why GUIs are async.




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

Search: