This is not just another web server. node.js is essentially a JavaScript runtime with easy-to-use network bindings that forces you to write scalable code from the get-go. There's no thread scheduling, but instead, Ryan wrote an event loop and used non-blocking I/O. One process can handle ~10k - 30k connections. Want more? spawn another node process. :)
Right now, at version 0.6, it's a programming tool more than a platform. But Ryan is well on his way. I love the notion of scripting network servers that are out-of-the-box scalable. (apparently, Yahoo Mail and a host of other sites are using this stuff).
Observations:
- Ryan worked hard to avoid creating any unnecessary abstractions.
- He fundamentally conceives of web programming in a pipe-and-filter model.
Notes:
- Home site: http://nodejs.org/
- There is a repository for Node modules: http://search.npmjs.org/
- kinda fun: there's a "most depended-on" sort; cool.
I bumped into a number of libraries that make for a rather rich programming environment, out the gate:
- backbone.js — data-binding framework
- underscore.js — a suite of nice-to-have functions for the JavaScript language.
- coffeescript.js — a language that "compiles" into JavaScript.
No comments:
Post a Comment