Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I would recommend that you take another look at <a href="http://NodeJS.Org/" rel="noreferrer">node.js</a>. One of the biggest problems with using libraries to do event-based programming in an object-oriented programming language (rather than using an event-based programming language in the first place), is that usually all the <em>other</em> existing libraries are <em>not</em> event-based, and it is really awkward to mix event-based and synchronous I/O. In fact, it is pretty much impossible, or more precisely, it <em>is</em> possible but destroys all the benefits of using event-based I/O in the first place. (Note that pretty much any third-party library you use (and the libraries that <em>they</em> use, and so forth), including the standard and core libraries of the language itself, must be event-based, to actually reap the benefits. Otherwise, you'll spend most of your project's time writing asynchronous wrappers around existing libraries.)</p> <p>Now, if using event-based libraries is such a bad thing, then why do I recommend node.js? Simple: ECMAScript doesn't <em>have</em> any synchronous I/O libraries (because of the simple fact that it doesn't have any I/O libraries <em>at all</em>), so the mixing problem simply doesn't arise. (Actually, it has <em>some</em> I/O libraries, like <code>XmlHttpRequest</code> or Web Sockets, but guess what: those are <em>already</em> all event-based.)</p> <p>node.js implements all I/O libraries itself, all event-based, without backwards-compatibility or legacy requirements.</p> <p>Otherwise, <em>every</em> language or platform has some event-based or asynchronous I/O libraries: Ruby has <a href="http://RubyEventMachine.Com/" rel="noreferrer">EventMachine</a> and <a href="http://Rev.RubyForge.Org/" rel="noreferrer">Rev</a>, .NET has <a href="http://MSDN.Microsoft.Com/devlabs/ee794896" rel="noreferrer">Rx</a>, the JVM has <a href="http://Java.Sun.Com/j2se/1.5.0/docs/guide/nio/" rel="noreferrer">NIO</a>, Unix systems have kqueue/epoll, C has <a href="http://Software.Schmorp.De/pkg/libev.html" rel="noreferrer">libev</a> and <a href="http://Software.Schmorp.De/pkg/libeio.html" rel="noreferrer">libeio</a> (on top of which node.js and Rev are built), Perl has <a href="http://Software.Schmorp.De/pkg/AnyEvent.html" rel="noreferrer">AnyEvent</a> (built on top of libev by the same author) and so on.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload