Hacker News new | ask | show | jobs
by zhong-j-yu 4342 days ago
The single-event-thread design is not without its own problem; programmers have difficulty in understanding and abiding to it too.

Here we have an inherently concurrent problem - user actions and some IO actions occur concurrently. That problem cannot be reduced by some API or language trick.

2 comments

> The single-event-thread design is not without its own problem; programmers have difficulty in understanding and abiding to it too.

Definitely not my experience. jQuery is very popular among unskilled programmers because its async model is very easy to understand. I use it to teach async!

> That problem cannot be reduced by some API or language trick.

Why? Reducing problem by API or language tricks is exactly what abstraction is for.

Given the Universal Turning Machine and the Church-Turing thesis in actuality all of programming except for assembler is pretty much some API or language trick.
Arguably, even machine language is "some API" and assembler "some language trick".
Good point, I forgot for a second that the CPU turns assembler into microcode before executing it.
The CPU often turns machine code into microcode, true, and that's a good point but it wasn't the point I was trying to make. Even in simpler processors that actually do directly execute the machine code, I think you can view that machine code as an API for controlling the processor system.