|author=Cade Metz |publisher=''[[The Register]]'' |date=1 March 2011
}}</ref>
== Details ==
Node.js is a packaged compilation of Google's [[V8 (JavaScript engine)|V8 JavaScript engine]], the [http://github.com/joyent/libuv libUV platform abstraction layer], and a core [[Library (computing)|library]], which is itself primarily written in [[JavaScript]].
Node.js was created by Ryan Dahl starting in 2009, and its growth is sponsored by [[Joyent]], his former employer.<ref>[http://mashable.com/2011/03/10/node-js/ Why Everyone Is Talking About Node], By Jolie O'Dell, March 10, 2011, Mashable
</ref><ref name="Node.js pushes JavaScript to the server-side">{{Cite web
|title= Node.js pushes JavaScript to the server-side
|author= Alex Handy
|publisher= SDTimes
|date= 2011-06-24
|accessdate= 2011-09-04}}
</ref>
Dahl's original goal was to create web sites with [[Push technology|push capabilities]] as seen in web applications like [[Gmail]]. After trying solutions in several other programming languages he chose JavaScript because of the lack of an existing I/O API. This allowed him to define a convention of [[non-blocking I/O|non-blocking]], event-driven I/O.<ref name="nodeupandrunning">{{cite book|last1=Hughes-Croucher|first1=Tom|last2=Wilson|first2=Mike|title=Up and Running with Node.js|edition=1st|series=Up and Running|year=2012|publisher=O'Reilly|___location=Sebastopol|isbn=978-1-4493-9858-3|page=vii|quote=I was concerned about the ability to program advanced push features into the website like I had seen in Gmail}}<br>See the book's Foreword [http://ofps.oreilly.com/titles/9781449398583/forward.html at OReilly.com]</ref>
Similar environments written in other programming languages include [[Twisted (software)|Twisted]] for [[Python (programming language)|Python]], [[Perl Object Environment]] for [[Perl]], [[libevent]] for [[C (programming language)|C]], [[Vert.x]] for Java and [[EventMachine]] for [[Ruby (programming language)|Ruby]]. Unlike most JavaScript programs, it is not executed in a web browser, but instead as a [[server-side JavaScript]] application. Node.js implements some [[CommonJS]] specifications.<ref>[http://wiki.commonjs.org/wiki/Implementations/node.js Implementations/node.js] - CommonJS Spec Wiki</ref> It provides a [[read–eval–print loop|REPL]] environment for interactive testing.