Does HTML5/JS(2016) === Windows3(1994)

Microsoft Windows prior to Windows’95 had what was called ‘cooperative multi-tasking’. This meant that a program had full-time access to the CPU until it (the program) released control to the operating system. The screen did not update and the mouse and keyboard did not respond if a program went off on a lengthy calculation or an unintentional infinite loop.

It was a necessary approach in the days of the 8086 and 80286 processors. Many complained about unresponsive systems and blamed the OS. In fact, with well written software, poor responsiveness was rare.

Now, wind forward 20+ years and look at the current movement to single page applications and the efforts to allow a browser application to run stand-alone — what I call disconnection tolerant applications. JavaScript is what is called ‘single threaded’, meaning that code has full-time access to the virtual machine inside the browser. We use the term ‘event driven’ over ‘cooperative multi-tasking’. I think the latter is more accurate, since a preemptive system could also have event driven code.

I like the approach. I accept the responsibility for not locking the UI when it gives me freedom from many of the issues in preemptive multi-tasking. Of course it helps that we have much faster computers and a good preemptive kernel to handle I/O.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s