Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Node v0.5.0 just released (nodejs.org)
35 points by tonyskn on July 6, 2011 | hide | past | favorite | 16 comments


I have never seen so much emphasis on the 'unstable' aspect of a software release.

eg http://twitter.com/#!/search/nodejs%20unstable

Though I know about the even/odd thing, it seems rather damaging to the platform to be announcing 'unstable' seemingly 'major' releases, don't you think? Why not Alpha? or Beta? or some other common convention? Ugh.


This is not a desktop app. The versioning requirements are different.

Many server systems use this convention as a way of embedding an extra bit of info (stable/unstable) for sys admins.

Many people are using Node to push boundaries in various ways, so they are using the unstable versions. I did this with 0.3, but 0.4 is good enough for the moment.


As you noted, even is the stable/production version and odd is unstable/development version. The goal is to get a number of changes in at once so that you can have a stable branch that's around for a decent amount of time. If you are making multiple changes before releasing a stable branch, how would you describe them? If they get libuv working properly, is that then from alpha to beta since it is now more stable? What if they then rewrite http.request and experiment with different APIs; is it still beta even though it is probably more unstable than the last release? Why not simply version the dev branch with every release, note the changes, and avoid the semantics?


With node and similar projects, notion of stable/unstable is closer to geological notions (earthquake) and applies more to version branches (continents) than individual releases (states).

0.4 branch is and should be stable, meaning we can build on it and they'll try not to make big changes that could break what you built.

0.5 branch is unstable in the sense anything could change, even features added in 0.4 or older although they'll need compelling reasons to do that.


Because they aren't trying to sell a product. This is an announcement directed towards developers and coders using node who wish to contribute by trying out new features. Calling it 'unstable' makes it clear what it is and what it isn't.


0.5 rips apart the whole event loop system and replaces it with a new one to support windows. It's much more unstable than 0.3 in that respect, which has mostly just seen API changes and feature additions.


As a note: v0.5.0 is unstable. So just switch for hacking & testing not for your running applications.


- add child_process.fork

- add os.getNetworkInterfaces()

- add remoteAddress and remotePort for client TCP connections

I've been waiting for them to push these features out. (yes, I know you already have the address & port if you are a client).


I got too excited about child_process.fork before I read the description. I was imagining it would be like C where I can fork, setup the env and exec. That would probably be tricky and very ugly to implement, though..


I have a binding for *nix fork() here:

https://github.com/felixge/node-nix

However, you need to know what you are doing, otherwise you'll have multiple processes draining the same file descriptors which will give you some nice surprises : )


Wow, awesome. It shouldn't be hard to create a binding for execvp as well then. I found the pipe() binding, but I can't use those fd's with child_process.spawn if i want to open them as fd 3, 4, 5, etc in the child.


I don't think it would be too many lines of code, tbh http://nodejs.org/docs/v0.5.0/api/all.html#child_process.exe...


child_process.exec is different from n*x system exec. Node is still doing the fork()ing and exec()ing behind the scenes. Exposing those calls in node would give you direct access to the child process before executing your commands.


I would love it if they started adding support for JS1.7 / JS1.8 :(


They must wait for v8 to support it.


Not for the objects they don't, you could build in support for the typed arrays for example using the current V8/C++ to JS module system




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: