Node.js is forked, not fucked
wesleyio.tumblr.com
wesleyio.tumblr.com
[1] https://www.youtube.com/watch?v=Pm8P4oCIY3g#t=23m43s
[2] https://www.joyent.com/blog/broadening-node-js-contributions
Can you provide some examples? I'd love to see some debugging war stories.
[1] http://www.joyent.com/developers/node/debug
[2] http://www.slideshare.net/bcantrill/goto2012
[3] http://dtrace.org/blogs/dap/2013/11/20/understanding-dtrace-...
[4] https://github.com/joyent/illumos-joyent/tree/master/usr/src...
That's what makes me the most worried with nodejs.It depends on a project led by a corporation that is difficult "to read".We're not talking about a C++ lib that has been stable for 20+ years,but something that is likely to change fast and frequently,which will break every native extension written for node.
It seems to me that Goggle isnt that implicated in node development.
Between io.js and node-forward it seems to be working. Hopefully things like the node advisory board are just one step in Joyent being a better steward.
The fact that Node is popular enough to fork is a good thing. There is an inherent disagreement between Joylent and the Io.js folks, not on technology but process, and it's likely that the conflict will be resolved that way they always are (the more suited fork will win out). The risk of fragmentation is very low.
Cheers to the iojs guys.
(ps. I have to admit, I hope to see more blog posts on these subjects creatively include "motherforker" in their titles)
Yeah this doesn't mean node.js is "fucked" but if they use npm in iojs with packages that take advantage of new API calls any node user is going to have lots of issues.
Edit: Having said that I am excited to possibly get newer versions of V8 server-side; I can't wait to start using some ES6 in a place where I don't have to wait for browsers to update.
>>>Having them used out of the box would make them more robust.
>>NPM dependencies are a very robust method... What else are you looking for here?
>Do you mean to reply to me?
In light of nawitus's comment, I interpreted your comment as an alleged reason IO would be necessary, given the existence of polyfills. This reason didn't make sense to me, because npm dependency installation for node is just as automatic as anything in IO could be, whether it uses npm or not.
First of all, if you implement a polyfill in JavaScript, it'll be translated into pretty fast native code. But even if it didn't, most(?) of Node's core libraries are written in plain JavaScript and presumably are as fast as any module in npm. Take a look: https://github.com/joyent/node/blob/master/lib/buffer.js
And if you really want optimized native code, npm supports that out of the box. I kinda dislike npm modules that require a compilation step, but they're out there.
As for robustness, there's nothing stopping one to making robust node modules that are not in the core.
These are all the sugars that are available:
I like a lot of the ES6 features... to ES7, if await/async can be introduced with thenables sooner than later, it will mean that co will become irrelevant for the most part, and a lot of tooling around a koa2 will be awesome. There's a lot to be excited about.
Node is stable.Like too stable without even hitting v1.
I remember a video where Douglas Crockford predicted that,saying Joyent behavior has been childish.
As a long time Python user unhappy with the 2 vs 3 thing, is not the Node vs IO thing very different? A fork (Node) vs two versions being managed by the same group (Python)?
Edit: Downvoters, have I said something that is untrue?
If Joyent accepts new features as quickly as IO, there's no point in the fork.
Essentially, there's bound to be some level of fragmentation.
It's about how slow things have moved since 0.10 as much as anything else.
But you're right, that situation might not last as long, due to the fact that one is theoretically trying to eat the other's users, rather than in the case of Python, where things are much friendlier.
I fail to see how there can be controversy over forking MIT licensed software.
More apropos is egcs, where the FSF eventually abandoned their gcc and blessed egcs (and their maintainers) as the official gcc.
I was responding to a comment which said, essentially, that you will end up with lots of forks that are each strong in some particular way. This is not generally how it works in my experience. In general, the fork with (for example) better ease of use will also be the one with better speed because it will get much more time and attention than other forks.
I have to believe "These variants can fill various niches, such as security, speed, or ease of use" and "many will succeed" were also there for a reason, and those are what I was responding to. My point is that for most projects, you don't end up with a bunch of viable forks. It's rare even to end up with two viable public forks, much less several. It's not much like sexual reproduction because sexual reproduction requires there to be multiple breeding entities.
Well, no. Because the realistic alternative to forking isn't that the people with irreconcilable differences that led to the fork continue working on the same code base, its that some subset of them abandon the code base altogether. Forking -- especially when the forks are under compatible open source licenses and useful code that is compatible with the vision on both sides of the divide can migrate from one fork to the other -- potentially increases, rather than decreases, the effective development effort on both sides of the forks compared to what it would otherwise be.
But I agree with the article, when you read deeper into the comments and commits, it's not virulent in the record (though I'm sure tempers flared).
That being said, I'm just a lowly web dev and barely understand what's going on under the hood.