Node.JS rocks when it comes to building I/O-intensive services. It is fast and easy to use. You can do the same in Dart! Out of the box it comes with a set of libraries to access the file system, create http servers, etc.
To compare Node and Dart I built two versions of the simplest application imaginable.

The first version of the application is built using Node.JS, Socket.IO, and Angular.JS. The second version is built using the built in "dart:io" library and Angular.Dart. The versions of the application will be shown side by side. Hopefully, if you are familiar with Node and Angular, you will see that writing applications in Dart is not any harder.

Templates

Let's start with comparing templates, since they look almost identical.

Client Side

I've tried to keep the code simple, so you can directly compare the Dart and JS versions. There are ways to make both the versions more compact, but it will make the comparison more difficult. At the same time, I wanted it to look idiomatic. For instance, it is possible to omit all the type annotations in the Dart version, making it look more like JavaScript, but it goes against the conventions of the Dart community.

Though there are attempts to port Socket.IO to Dart, none of them seems stable enough. So instead I wrote a very thin wrapper around WebSocket - Socket. If you want to know more about how it works, check out the github repo.