Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Node.js has been out for 4 years and it's only at 0.10.23? At this rate it will be 50 years before they get to version 1.0


Just because a build is stable (which is what 0.10.23 stable means) doesn't mean the APIs are stable (which is what 1.0.0 generally means).

For example, the streams API hasn't been deemed stable. The specific build is stable, but it's possible that the interface may radically change in the near future.

http://semver.org/


One might just want to assume that node.js never wants to build a stable API. They are constantly breaking backwards compatibility and committing to "stable" at this point seems unrealistic. If they'd ever release a stable version they'd suddenly have to backport fixes and care about keeping an API intact for something other than a few months. Like they will not be able to do that thing anymore where they dismiss all those who built upon 0.6 and don't get security updates unless they rewrite big portions of their code base and find new libraries to replace all those they use that have gone dark.

Have they at least committed to some kind of date range for a stable API?

It's kind of silly to worry about because all the various node.js libraries that so many people depend upon are either weekend fads that get abandoned, or moving at the same speeds and likewise breaking compatibility.


This should really be the top comment, as it explains the frustrations you will run into with this fantastic platform. I love async webservers and most of my dev is done on python Tornado but i built two projects on nodejs and experienced the above issues, so many people start projects and just abandon them, the quality of a lot of libraries are not good and then you get some really cool libraries. Everything changes really fast, so you really need to have your ear to the ground to make adjustments to your codebase. All in all, i had a lot of fun with nodejs but for serious dev, i am using Tornado, when nodejs fully supports backwards compatibility, then i will develop more longterm projects on it. I still believe that if you doing a simple crud api for mobile, the current node will work very well as it is so fast and the code will be easier to maintain.


Yes. One by one, I have been encountering issues with projects I've done in Node that are more easily fixed by rewriting in Python than by researching replacements for abandoned libraries that are breaking or dependencies that are not updated with the APIs they were written to interface with.

It's still handy for Grunt and Bower though!


What's the best replacement for socket.io in Python?


I'd argue that relying on backwards compatibility for very long is a smell. Probably the stinkiest, most common one in most corporate settings.


And not providing any backwards compatibility is BS :)

You do need a stable base to build upon. Not quicksand.


> They are constantly breaking backwards compatibility and committing to "stable" at this point seems unrealistic.

The team claims to have turned the corner. relevant comment from @isaacs: https://www.youtube.com/watch?v=82hJbjqbIt4#t=120

> Have they at least committed to some kind of date range for a stable API?

@isaacs mentioned 2014 once. From the same talk, https://www.youtube.com/watch?v=82hJbjqbIt4#t=730


Oh that's awesome then. I hope it happens.


In addition to semver, it's worth checking out the Node.js docs stability guide:

http://nodejs.org/api/documentation.html

While semver is great for getting an overview of the stability of the API interface for a project, I think their guide is a great complement in that it helps people determine the stability of specific interfaces that someone might want to use. This is increasingly valuable as the API surface of a project becomes quite large (which is common for a framework).


I believe you are using the wrong metric to measure software maturity.


What's the right metric? Pre 1.0 typically means the software is still in beta. I realize node.js is used by many sites and large sites, but if it is stable/reliable the versioning should reflect that.


There is an annoying trend in software where the devs want 1.0.0 to be the final version. Look at c3p0.


As with people, pay attention to what it does rather than what it says. The right metric is action, not words or labels!



Can you expand on that any further? I can't tell what you are trying to say, because my comment was made in awareness of Semantic Versioning.

While I support a de facto standard around the meaning of version numbers, you must judge a project's version number by the versioning rules the development team communicates. By the Semantic Versioning Specification's own guidelines, Node.js should be at least at v1.0.0, but the developers have decided against it. Therefore, when judging the stability and maturity of Node.js by the version number alone, you can only compare it to previous releases of Node.js.


In the "Semantic Versioning Specification", it's seems inconsistent when you look at #4 and #5 and compare it to rule #1 at the top. Changes in x (x.y.z) should be reserved for "when you make incompatible API changes", but the #5 in the spec forces you to change x (to 1) even in some situations where there may not be "incompatible API changes".


And then it will be at 10.0 a year later, at least that's the way these things seem to happen.


Only in browsers, and only if The Other Guy is doing it, :p.


Or if you're Slackware Linux:

"In 1999, Slackware's release number jumped from 4 to 7. Patrick Volkerding explained this as a marketing effort to show that Slackware was as up-to-date as other Linux distributions, many of which had release numbers of 6 at the time, and Volkerding expected them to reach version 7 by the time of the jump."

http://en.wikipedia.org/wiki/Slackware


I can't tell if you're being sarcastic.


From what I understand, 0.12 (odd numbers are used to test new features before the next even number release, and right now they are at 0.11) will be the last version before they go to 1.0


Does anyone know approximately how close we are to 0.12? I know 0.11.9 came out a few weeks ago, but I don't follow the community close enough to get a feel for how near the next stable branch is.


I reckon we'd move to 0.12 when there is a change that warrants a minor version bump. Whether or not there are such changes already in one of the development branches that are soon to be pulled into master, I do no know.




Consider applying for YC's Winter 2027 batch! Applications are open till November 2.

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

Search: