Recently I stumbled across this pretty slick JS library called nodeJS that acts like a server side JS.
The main feature of the language being Evented I/O which gives the inherent capacity of I/O being completely non-blocking using callbacks!!!
My question is, if this kind of completely non-blocking I/O mechanism existed in the past (given event driven I/O has been around for a long time), why aren't they more popular in high level languages like C# and Java (although Java has NIO implementation that supports non-blocking I/O)?
Currently, a simple file read/write operation results in complete I/O blocking which is not the case with event driven I/O.
I'd like to gain a better understanding of event driven I/O and how it is different from what we have in Java.