
Node v0.4 announcement - Uncle_Sam
http://nodejs.org/v0.4_announcement.html
======
invisible
There is still some confusion for me as to whether it's "production ready."
Ryan Dahl said for a long time that it wasn't ready for production, but I
haven't heard anything like that recently. In fact, I've heard others proclaim
they're using it for larger sites just fine (citing poor SSL support as one of
the primary drawbacks). I also remember Ryan saying that the memory management
within V8 caused a lot of the bugs they were dealing with. So what's the real
status of the project in terms of putting it into production?

~~~
gmac
I was all set to start a new project on node.js a couple of months ago, but
ended up back on Rails. Not because node.js itself seemed flaky, but because
libraries were scarce (e.g. anyone know of a credible ORM?) and, where
available, often in alpha.

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.

~~~
davej
> anyone know of a credible ORM?

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.

~~~
gmac
Of course, I did think about Redis/Mongo/etc. But the project (a) had
deadlines, so I thought I'd go experimental on only half the software stack,
(b) seemed very nicely suited to relational data modelling, and (c) allowed me
to indulge my infinite love and respect for Postgres (stable! solid! powerful!
frugal! fast! free!).

Also, I didn't find a lot of help online with how to do this modus operandi
rethink. (Again, no whining implied).

------
jerome_etienne
I updated the ubuntu ppa deb to 0.4.0

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

~~~
larrykubin
This installed node 0.2.6 on my machine.

~~~
dekz
theres a node manager in the npm repository called n.

 _npm intsall n_

 _n install 0.4.0_

want to use an older version installed?

 _n use 0.2.6_

~~~
aaronblohowiak
Nave plays well with npm, so you can have different sets of libraries for the
different versions of node that you have installed (similar to rvm if you're a
rubyist.) This is mostly important when you have libraries that are compiled
C/C++.

------
nailer
> A specially named directory, node_modules/, is searched in the current
> directory for any modules.

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.

~~~
jdub
npm currently supports ~/.node_modules, by the way (which node has supported
for ages)

~~~
coenhyde
But then you are still relying on modules available and their versions on the
system where the node app is running. Bundling is a much more reliable way of
doing things.

~~~
jdub
Bundling (and the like) is a necessary evil of ecosystems riding hard on the
bleeding edge, like node.js...

... 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.

~~~
mnutt
I don't think it's really fair to lay all of the blame with node and
ruby/rails in this case; the distro package managers are just as much at
fault:

<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.

------
arnorhs
Which version of v8 was being used in 2.x/3.x ?

The v8 change log is very detailed. Anybody got a helicopter view of speed
improvements and/or other changes?

~~~
bnoordhuis
> Which version of v8 was being used in 2.x/3.x ?

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>

------
ladon86
Any word on express.js and connect compatibility?

~~~
tjarratt
Looking at the recent commits in the last two days, it doesn't look like
visionmedia has changed anything for 0.4.0 in particular. If you're
interested, you should try it out and file issues appropriately.

I'll probably be doing exactly that tonight.

------
philsalesses
I'm starting a new project and I can't wait to see what this thing can do.

