Node v0.4 announcement
nodejs.org
nodejs.org
0.4.0 brings quite a few API changes from 0.2.6, so if you haven't been keeping up, you should really scour the API docs. You can also check out the wiki for a guide on migrating. https://github.com/ry/node/wiki/Migrating-from-v0.2-to-v0.3
This isn't a criticism: it's inevitable in a young platform, and I'd happily help develop the libraries. But it didn't seem a feasible option for a project that (a) had deadlines and (b) needed features beyond the (impressive) node.js core.
Node devs tend to take a different approach to Rails/Django in this regard, there's no single ORM with lots of database backends (ala ActiveRecord). This is probably related to the fact that Node devs tend to use tools like Redis, Mongo and Couch rather than traditional relational databases like MySQL and Postgres which all have similar SQL interfaces. There are some really nice libraries and modeling tools available but they're not database agnostic SQL ORMs, for example recently I've been using Mongoose: http://mongoosejs.com/
I've come from the Django world so I empathise with the "How do I do [insert Django/Rails feature here]?" mindset, but a lot of the time the Django/Rails just doesn't work well Node. Node.js is a single-threaded, event-based, non-blocking server; it really is a totally different paradigm so you have to be prepared to rethink the modus operandi for developing web applications.
Also, I didn't find a lot of help online with how to do this modus operandi rethink. (Again, no whining implied).
It seems like that under this assumptions node.js is stable enough, but what are you doing with it? Maybe it's not going to be "mission critical", but good enough to run production web applications.
To install node.js 0.4.0 on ubuntu do
sudo add-apt-repository ppa:jerome-etienne/neoip && sudo apt-get update && sudo apt-get install nodejs
npm intsall n
n install 0.4.0
want to use an older version installed?
n use 0.2.6
Awesome. Currently NPM expects unprivileged users to have access to /usr/local, and a lot of node tutorials encourage global repermissioning of this directory, which is Bad Unix.
Hopefully, once NPM gets updated, you'll have a Python virtualenv/Ruby equivalent style project-specific install system.
Update: https://github.com/isaacs/nave says Nave provides virtualenvs for Node, which may be worth checking out.
... and I would say Ruby/Rails, but they ought to be growing up by now, and integrating sensibly with platform package management. :-)
The difference between Python and Ruby on Debian/Ubuntu systems is astounding, and as the node.js ecosystem matures I dearly hope it will look more like the Python world than the unending adolescence of Ruby/Rails.
http://sheddingbikes.com/posts/1285063820.html
It really just depends on what you're trying to do. As a desktop user you probably care most about stability; we can't have a python upgrade breaking apt. As a developer it's often important to have an up-to-date version of the tools and libraries you're using.
It has nothing to do with adolescence, and everything to do with different priorities. Debian favors stability, Ruby favors breakneck progress. Each has their pros and cons.
root = ~/.node_libraries
NPM reminds you do "sudon't" if you run it as root.
Configuring it to use ~/.node_modules is not very straight forward or obvious but once you do it everything would work with an unprivileged user and without messing up Unix.
To install NPM itself, you either get a bunch of 'sudont' errors or have the app fail with the normal, secure /usr/local permissions when it can't write there.
Try it.
The v8 change log is very detailed. Anybody got a helicopter view of speed improvements and/or other changes?
Several.
Since node.js 0.2.0, V8 has been incrementally upgraded from 2.4.2 to 3.1.2.
The changelog is here: https://github.com/ry/node/blob/master/deps/v8/ChangeLog
I'll probably be doing exactly that tonight.