Node.js is the software that allows you to run Javascript to create powerful server-side applications by using Google's V8 Javascript Engine. As a Node developer myself, I have always felt frustrated by seeing that Joyent, the company behind Node.s, was extremely conservative in terms of upgrading node to use the latest V8 version; the project was also struggling to get developers to actually contribute to code. This is why Fedor Indutny did the unthinkable: forked node and created IO.js. Today, the two projects are uniting possibly offering developers the best of both worlds
(Score: 2) by arslan on Sunday June 21 2015, @11:55PM
Yes, it has improved. The latest version ES6 coming out will hopefully make you not have to touch prototypes at all as it will support classes and modules natively. Although to be fair depending on what you do you can pretty much avoid it today already with ES5 - traditional OO developers just get caught up too much by it when most of the time you don't really need it. Even the quirkiness with "this" has some enhancements in ES6 to lessen its quirkiness.
As for Nodejs, the whole point of it is to make "complicated" server side development simple. Like any other language, as the supporting libraries and frameworks increases, it can only get simpler to build functionality by cobbling together 3rd party libraries. However, given it is based on javascript there is some adjustment to get used to. For example, most IO by _default_ happens asynchronously but CPU compute does not, so concepts like promises (and the upcoming generators) play a bigger role than in languages like Java where execution are by default serial. Because of this fundamental nature of javascript, developing apps that are IO bound most of the time and can handle lots of concurrent request is pretty straightforward. So if you're developing a typical web app where you require a RESTful interface to bridge to a Database with some minor processing in between (typical web app) then it is pretty simple/straightforward to build and the performance is quite good
On the UI side (browser), I can honestly say it is much better than developing in Swing or even JavaFX (I've done quite a few years in the former). The tooling is excellent just with the Chrome browser alone. The upcoming Web Components will also alleviate some of the "workarounds".