4 ms·
Several have asked about node.js in contrast to io.js. It's fair to say that the emphasis of node.js at this point is on stability (including API stability, pr
by bcantrill 12y ago
Several have asked about node.js in contrast to io.js. It's fair to say that the emphasis of node.js at this point is on stability (including API stability, production debuggability/observability, etc.) and performance -- in that order. It definitely takes longer to release software when operating under these constraints; as the team writes in the linked blog entry:
We are also pleased to report that this release of Node.js has tests passing on all of our supported platforms. On the one hand, this seems obvious (what are tests for if not to verify before you release it?!), but this is actually the first release of Node.js that has operated under this constraint. Requiring that all tests pass before releasing Node.js marks an important development for the project, and is essential for building a solid path moving forward.
It's unclear what the divergence will be in the future, but the emphasis of the node.js team on stability may or may not be shared by io.js -- and in particular, this may be reflected in things like the V8 version, changes in which tend to subtly break esoteric things on different platforms. Inasmuch as the divergence represents different operating principles (i.e., enterprise-grade stability vs. bleeding edge), it may well be helpful -- and I think it's entirely conceivable that the projects will develop a symbiotic relationship moving forward.
- wereHamster 12y agoWhy don't you push nodejs forward and track the latest v8 (or whatever the latest stable chrome is using), and then cut LTS releases at regular intervals, kindof like the kernel or ubuntu? Also, are these tests public? How many does iojs pass/fail?
- tellnes 12y agoThat is the plan for io.js. Doing releases often and LTS at some interval.
- nailer 12y agoHow does the stability concern gel with a unmaintained v8?
- bcantrill 12y agoThe idea of a "maintained" V8 is a bit of a myth -- there really isn't such a thing. Mostly, when V8 breaks node.js (e.g., by changing/eliminating a C++ API or by implicitly or explicitly breaking debugging support), node.js has to change. In that regard, it just takes a while to get a version of V8 fully integrated and operating correctly on all platforms -- and I think it would be valuable for the core team to blog some of the history and technical details here...
- LukeB_UK 12y agoThe io.js team is working alongside the V8 team to make sure that the upgrades are as easy as possible. Rod Vagg has a project called NAN[0] to try and allow node modules to compile across node versions. [0] https://github.com/rvagg/nan https://github.com/rvagg/nan
- oso2k 12y agoThat's not true and the v8 team's stance is pretty clear. The master branch is the only "fully supported" code base, currently at 4.2.56 [0]. Most other tagged versions going back a year or two receive best effort support. Usually, that means Ben Noordhuis, but often Andreas, Yang, Vyacheslav, and others on the v8-users and & v8-dev lists. Good responses all around in general. And the list of responsive people continues to grow. [0] https://github.com/v8/v8-git-mirror/tree/4.2.56 https://github.com/v8/v8-git-mirror/tree/4.2.56
- LukeB_UK 12y agoA little disingenuous to say the tests pass when they landed this PR: https://github.com/joyent/node/pull/8689 https://github.com/joyent/node/pull/8689 Edit: Also, you should probably mention that you work for Joyent.
- dmpk2k 12y agoHe probably should, but then, almost everybody using both node and HN knows who he is.
- xtrumanx 12y agoI don't know why you assume that. Who is he anyways and why do you expect HN+node folks to know who he is?
- dmpk2k 12y agoAmongst other things, Bryan Cantrill is the CTO of Joyent, one of the authors of DTrace, and comments here regularly. If you use node (or DTrace, or ZFS) and read HN, he's pretty hard to miss.
- shadowmint 12y agoThere's certainly something to be said for stability, but node continues to use abandoned versions of the V8 engine, which, increasingly, is going to be a problem. Software does tend to remain stable if you never make any changes to it, but that's not necessarily the right path. Oh well, if nothing else, this whole io.js thing has set fire to joyent. It's nice to see something happening at last. I guess competition is a good thing.
- z3t4 12y agoMost people will appreciate stability more then language features. I'm a bit surprised about some of the comments here.
- wereHamster 12y agoHow do you know? Was there a poll recently about who prefers stability over progress?
- z3t4 12y agoI think mostly about the end users, those who depend on the software. The last thing you want is to get some weird errors because of a bug in the latest V8 engine. Those bugs tend to never show in development, and is not found in unit testing. But will show up in production when you have thousands of people using it. And there's often nothing you can do about them, then maybe downgrading, or wait for the next Node.JS version.