Joyent Moves to Establish Node.js Foundation(joyent.com) |
Joyent Moves to Establish Node.js Foundation(joyent.com) |
IBM's cloud offering runs on the PowerPC architecture, and older versions of V8 won't run on it, so they can't offer Node hosting. They ported a private build of Node to run on PowerPC using a new version of V8, but Joyent has so far refused to upgrade V8 despite having a pull request with all the work done. It looks a lot like Joyent has been dragging their heels on V8 updates just to fend off an IBM cloud service for node.
The first five words of the announcement are: "Joyent, IBM, Microsoft, PayPal, Fidelity". That says a lot right there. StrongLoop, NPM and a bunch of others are excluded, the whole thing seems to have been baked up in private by people who aren't core contributors, and then sprung on the community like it's some great thing.
Maybe it's a step in the right direction, but as it stands I'd expect this foundation to be about as useful as another hole in the head. I've seen enough corporate bad behaviour from some of them to not care about their special little club right now, and I don't think it will win too many people over.
[Update: Fedor posted about it here https://medium.com/@iojs/io-js-and-a-node-js-foundation-4e14... ]
The NodeJS issue got exactly zero response.
It looks (at least from the outside) that io.js is a maintained project and NodeJS is not.
Short of the Node Foundation turning over operations to the io.js TC, I don't see Node remaining the choice platform within the next two years as they diverge farther than they have. I wouldn't mind seeing them re-join, and re-release io.js 1.x as "node" 1.x proper.
It's bad enough that we have to use transpilers (6to5/traceur, etc) for new feature support in the browser... having to use them on the server was a pain... co/koa and similar have been around for over two years waiting for 0.12 to come out of beta... Even then, they were significantly behind v8 and libuv.
If Node Foundation brings io.js back into the fold, great.. if not, I'm with io.js on this one.
[0] https://gigaom.com/2013/09/27/meet-node-red-an-ibm-project-t...
What did you actually gain by doing all of that work? I think it was a big waste of time.
You forego Node, does that mean you can't run Node modules installed with npm? Sounds like a very dumb decision.
One of the things that has always bothered me was that in your thread Isaacs was adamantly against a foundation. Suddenly now he is all for it. Was he simply repeating the Joyent party line then, or has he since changed his mind?
I'm also disappointed about the lack of inclusion of StrongLoop and NPM, who both have key contributors to node.js among their ranks.
PS. A number of people were against it at first, including Nodejitsu guys and Michael Rodgers. I wrote that either a foundation or a community fork were inevitable. Eventually people realized it, and it turned out to be a community fork. If a meaningful foundation were to happen at this point it would have to be built around io.js in my opinion.
So, they're making noise and dropping names to try to reinspire confidence, without actually promising anything.
Joyent doesn't trade, but if they did they'd be losing a few percentage points today.
Over several years it became clear that Jason was only interested in playing with cool technologies and a lot of public self aggrandizement in the process. However, never did they seem to deliver any stable game changing technology to the level they had hyped. It seems like they eventually they sort of limped out with an alternative platform that could be competitive if you squinted hard enough, and then sold it by means of aforementioned marketing skills. But for those of us who got the company off the ground, we basically all got screwed. And even though Jason has left Joyent, to me their DNA is suspect, and I would never trust them as stewards of an open source project.
Note that nowhere do they mention io.js--that's just kind of classy, right?
Second, their tone seems aimed at reassuring senior-level folks that might have heard murmurs of dissent from underlings about node--this release doesn't feel like it's targeted to developers at all.
Lastly, notice Microsoft being on board. I do wonder if they'll push for movement off of V8 and onto a better-documented, better-maintained platform.
1. Shows that the io.js people correct when they identified the problem
2. Doesn't solve the problem
Prior to this announcement you could say "the io.js people are crazy; just trust in Joyent". (Not saying you'd be right, just that you could say it and no be obviously wrong. Isaacs, for example, was a proponent of this view.) Now, even Joyent is admitting that there's an issue. But it's pretty damn hard to see how the issue could be solved by this specific proposal. Joyent, IBM, Microsoft, PayPal, Fidelity? Right, that totally solves the worries about stagnation, corporate control, or excessive Joyent influence.
https://medium.com/@iojs/io-js-and-a-node-js-foundation-4e14...
This would be my wish.
That's consistent w/ what I've heard (whatever thats worth)
If you mean a JS replacement, they unveiled Dart in 2011 and it's not particularly popular.
io.js is trying to push the envelope by supporting ES6, more APIs, etc while node.js isn't focusing on that. This eventually means if I write my module for node.js it should still work for io.js but if I write it for io.js, even if it does take advantage of better performance, ES6 syntax, etc, it won't work for node.js.
I can't imagine anyone wants that kind of fragmentation.
The more native code you write for this ecosystem the more you realize there needs to be a complete abstraction away from the JS engine and event loop to allow for the core to upgrade as fast as possible and module writers to ease into the newer versions. This is one of the reasons why the version of `v8` in Node proper lags behind so much -- it breaks the native module ecosystem every time there is an upgrade.
Yes, this was one of the points I mentioned however this precludes me from using newer and possibly better APIs and syntax in io.js. If that's the path to take what is the point of io.js if everything will be written to the lowest common denominator?
> Fragmentation is good, it stimulates the eco-system for better products.
Maybe? I'm not sure. It certainly hasn't looked very rosey from Android's point of view but has it worked for other things? I'm skeptical.
At the same time, one of the primary reasons for moderating the list in the first place was to ensure that the group is constructive and useful, and not just a venue for flamewars. This has been a problem when discussions around foundations, Joyent, forks, and the like have happened in the past. In fact, it nearly killed the group last time this discussion happened (a lot of longtime community members with a lot to contribute gave up on it in disgust), so I'm not going to claim that we're not going to step in if things get overly heated.
(I'm self interested because we essentially bet our company on Node/IO.)
Joyent's hand has been 'forced' to shut the barn door.
The trademarks should be given to the foundation, like they are with, say Python and the Python Software Foundation.
"... to establish the Node.js Foundation, which will be committed to the continued growth and evolution of Node.js, while maintaining a collaborative environment to benefit all users."
An open source project is getting a stable backbone. Come on people, this is great news for developers.
I don't like the idea that accomplishments mean a force-field against criticism. (Actually, I hate it.) Plus a lot of the negativity is not about the work itself but about how the project structure prevented work from happening.
"The enterprise begged us to slow down the rate of change and we obliged!"
"Try not to raise your voice or Walmart might hear you..."
"Walmart was never going to be a big buyer, they're as cheap as their stores!"
I really hope that somebody at Joyent gets catharsis from watching this.
The community at large is unconcerned about io.js, they are developing for node.js because that's how they (we) all make money. Node was in no danger for that fact alone.
The winner here is the open source community. We now have 2 excellent options: a beta for the bleeding edge, stability for the enterprise, and forward progress for both.
ES6 is great, but for anyone who wants to write isomorphic code without a lot of pain in compilers, is limited by browser adoption. Expect that to be at least 3 years out, during which node will continue to succeed.
This made water come out of my nose. You're absolutely right, and having spent the winter writing Go and not knowing about io.js (at least as "new node-forward"), it was instantly apparent to me that io.js has all the important mindshare, and now Joyent will be struggling.
Who and how many of the earlier Node.js core developers are still developing for Node.js, how many are developing for io.js, and how many are developing for both?
io.js kept mum until the last moment before their release, with an invite-only codebase. io.js also took quite a while (> 6 months, far longer if you count the first fork attempts) to get to the first release and actually open their community -- turns out that producing a stable runtime is harder than it looks!
Let's call a spade a spade -- io.js is a great way to test out new functionality, but node.js is the stable, trusted version. io.js is the hype.
It remains to be seen whether io.js will prove itself profitable for adoption.
I can't imagine Joyent doing anything in good-faith, they are scared of losing relevancy and are looking to protect their interests, they don't give a flying cow about anything else but themselves.
This would not have happened if io.js was not on the scene, call me cynical but I don't trust them.
They bought Node on the off-chance it would be as big a cultural phenomenon as Rails, and they would own it and have control, rather than losing their golden blessing to Engine Yard back in the day.
Have to say, the names they're dropping do not inspire confidence in me. Nobody on that last is well known for their stewardship of open source projects, to say the least.
To answer your question: no, I was not overruled -- it's been clear to me for quite some time that node.js would be best served by a foundation. That said, getting the mechanics of that foundation established has taking (is taking) a long time (and, it must be said, involves a lot of hard, thankless work from a lot of people). Foundations might feel "easy", but they aren't: 501(c)(3) organizations are highly regulated entities that require not just a lot of groundwork and forethought but extensive maintenance. Fortunately, we have made great progress (and we have built a terrific collection of founding members), and we are getting the node.js community what it needs: a foundation that can assure the consensus-driven advancement of the technology, in perpetuity.
[1] http://www.slideshare.net/bcantrill/corporate-open-source-an...
[2] http://www.youtube.com/watch?v=NhgXQFk9noI
[3] https://www.joyent.com/blog/sdc-and-manta-are-now-open-sourc...
Regardless of the event itself, that was an exceptionally poor handling (soapboxing?) of the situation, and didn't speak much of ability to mediate a heated situation. A foundation born from this management style? Doesn't sound encouraging.
This announcement feels like hurried back-room politics, and your reply is reinforcing that impression.
This is the closest entry I could find on his blog regarding node.js and its governance: http://dtrace.org/blogs/bmc/2014/06/11/broadening-nodejs/
First let's start with the misconception that io.js is "bleeding edge" or that it is any less stable than node. This is 100% factually incorrect, hundreds of open tickets have been closed with io.js that have not for node. It is tenfold more stable, and it's trajectory has already outpaced in two weeks what nodejs has in a year and a half.
Second, this is not a win for either party or the community. For the community, you'll get people like you who now think node.js is somehow automatically more stable and reputable because they have a fancy big-wig 'foundation'. For io.js team, it now shows Joyents true colors that they are stubborn and wish to continue down their path and are now unlikely to merge at all in the future. For the node.js team, it now means they are just prolonging their decline. They still have not a single full time node developer, and have lost almost all of the developers who actually made node.js with 0% chance they'll ever come back (the governance will never be compatible with Joyents new corporate dictatorship model).
Finally, the choice to use io.js should not be ES6, it should be the fact it's a more stable, secure, and actively developed project, plain and simple. It does not force you to use ES6 so I don't know why you're talking about browser adoption at all. I have io.js running in production right now and I didn't change a single line of code when 'porting' my codebase from an old node.js installation.
And yet, Node.js is using unsupported versions of V8 and libuv, whereas io.js is on supported ones. I'm not sure that's exactly enterprise stability.
There are a number of core contributors to Node.js that are unhappy with Joyent's stewardship of node.js. The core contributors want to work on the node.js core and provide new features. Joyent has not enabled these core contributors to make these improvements, and have seemingly alienated some great developers like Ben Noordhuis for political reasons.
Hence the io.js fork.
It's been clear from the beginning that the io.js folks are willing to work with Joyent and node.js, if Joyent is willing to give up its iron fisted control of the project.
The foundation itself is a great step forward for Node.js, and will result in much needed enterprise investment in the runtime.
Are you confused? "isomorphic" doesn't mean what you think it means ...
I'm skeptical too. Maybe fragmentation isn't always bad, but flat out "good"? I've also done Android development, and the fragmentation makes developing for the platform more expensive and time consuming. I don't know of any "good" that comes of it.
For other embedders, however, like TeaJS, SilkJS, v8-juice/cvv8, narwahlJS, this was probably their undoing, at least in my opinion. Stephen Beal considered it lack of documentation & support [1]. I have seen a concerted effort over the past 12 months to improve that.
[0] https://groups.google.com/forum/#!searchin/v8-users/support/...
[1] https://groups.google.com/d/msg/v8-users/MUq5WrC2kcE/Z3LyOmE...
http://www.zdnet.com/article/how-suns-need-to-control-the-code-cost-them-the-company/
or: http://www.cryptnet.net/mirrors/texts/kissedagirl.htmlIt's not so much to do with my opinion of the specifics of the situation with Noordhuis, or the announcement that is the object of this conversation, but rather the vaguer feeling that they feel way too much like a 'company' acting in its own interest for me to trust them.
It isn't clear that node had to go that direction, or even that they can't change course now.
While all the new stuff has value, to me the value of frameworks will always lie in prototypes and small projects, with big production projects needing the flexibility of libraries.
I don't think jQuery will be going anywhere until the DOM itself evolves past a need for it or we evolve past a need for the DOM
I like the two different ideas living together.
A bit like:
- Node.js: LTS
- X: Public release
- io.js: Beta/Canary
The Scala landscape is pretty far off from the node/io fork, I think. First of all, we are keen to keep Typelevel Scala and the official Scala distribution in synch. We're also seeing a healthy acceleration in contributions (proposed & merged) over at https://github.com/scala/scala#welcome -- all contributions welcome!
In any case, we're happy to see experimentation over at Typelevel. If you're interested in this kind of stuff, I'd recommend also taking a look at https://github.com/non/cats.
[edited for clarity]
Thank you
Unlike the Node / IO situation Scala has always been run by a foundation and continues to have key players on both the main branch and fork.
io.js contributors: https://github.com/iojs/io.js/graphs/contributors?from=2014-...
node.js contributors: https://github.com/joyent/node/graphs/contributors?from=2014...
Some of us not following too closely, may have been under the wrong impression about io.js being a new initiative.
[1] https://github.com/joyent/node/graphs/contributors [2] https://github.com/iojs/io.js/graphs/contributors
jQuery 2.x dropped support for <= IE8.
I had no idea that's how GH designed the commit history UI.
Also, it might be a nice bonus, if there was an indication of the fork, somewhere on the graph timeline.
io.js spent part of December in a rapid incubation, and released in early January.
It's stable for me on several production applications, but what does 'stable' actually mean, vs 'beta'.
Their community started open, and remains open, and has a larger contributing base than node by more than triple. They have an open technical committee, with meetings that anyone can attending (and I have).
Here's the spade: You're wrong. Actually do your research, have facts that you can back up, and try again. Your tune will be very different when you have the facts.
For example, there is no "build passing" badge on the io.js github, because the tests aren't passing [2]. Even if they were, no CI service is yet available -- so how can the community at large reliably test against it?
[1] https://github.com/search?q=io.js&type=Issues&utf8=%E2%9C%93
Please cite your io.js source for their statement of maintaining 100% compatibility with all node modules. I can't find any reference to that anywhere. NPM is certainly usable, as I use it daily with io.js, which fits their websites statement of "This project began as a fork of Joyent's Node.js™ and is compatible with the npm ecosystem.".
Still nothing credible in this thread, move along.
io.js does not contain this commit, or any of the changes from this commit: https://github.com/iojs/io.js/search?utf8=%E2%9C%93&q=%22PAS...
> io.js kept mum until the last moment before their release, with an invite-only codebase.
This is factually inaccurate. Fedor Indutny created the iojs fork on November 26th. The 1.0 release came out on January 13th, significantly less than 6 months. The iojs repo was always public.
The project you're referring to was the node-forward/node repo, which was initially public and forced to be made private due to Joyent's trademark.
This history is all fully documented here: http://blog.izs.me/post/104685388058/io-js
> On July 11, Mikeal Rogers created a private node-forward repository under his personal GitHub account to discuss the future direction of Node.js.
> Io.js continues the work that was previously being done by Node Forward in the node-forward/node repository. We hope to merge with the original Node.js project at some point in the future.
The "fork threats" started in 2013. [1]
It would have been simple to rename node-forward and keep it public, odd to blame Joyent for their choice to continue trademark infringement in private?
Previous to its release, io.js supporters spammed HN with multiple contentless links about its release. [2] No explanation to the community, raised a ton of questions and did not provide answers except within their insular circle.
Everyone is trying so hard to be part of something new and trendy, that they are blind to the facts in front of them.
[1] http://venturebeat.com/2013/09/18/can-this-startup-steal-nod...
I agree io.js has generated some of its own hype; that's why I'm surprised Joyent has distanced themselves from it. Node is coasting on a lot of previous hype, but io.js is poised to steal the proverbial thunder. "Node is stable," AKA "Node isn't going to change or disrupt anything," is meanwhile a powerful argument, maybe especially to Joyent's customers, but that isn't always a good thing (think IE6), and it definitely isn't a good way to build hype.
I don't know the exact history of node-forward, but node-forward/node was only a piece of the node-forward repository. Early on it was my impression was that node-forward was just about collecting pain points in the node ecosystem and working towards those pain points (technical or not). The fork came later.
The fork threats you mention don't seem to have anything to do with node-forward. In addition, the article clearly states that "Roth told VentureBeat his company does not intend to fork Node" so these fork threats were not reality.
As for why they didn't rename node-forward/node? Well the previously linked article explains it quite well "We agreed to make the repository private in order to show our commitment to working with Joyent on improving Node.js."
> io.js is an npm compatible platform originally based on node.js™.
Sorry, they were aiming for 100% tests passing [1], I would assume for npm compatibility which is their primary goal.
A stable API means that dependent packages don't have to change to stay compatible. Tests are failing because they change things that broke packages:
* Node-inspector does not work with io.js! How is anyone supposed to debug their code? [2]
* Fibers do not work [3]
* msgpack does not work [4]
* sqlite3... there is a long list [5]
There is no CI, no debugger, tests aren't passing, major modules don't work. I absolutely cannot go to my CEO and make a bet on that for my company.
I think io.js is great! But the amount of misinformation about the state of Node is staggering. Let anyone with proof otherwise also cite their sources.
[1] http://blog.izs.me/post/104685388058/io-js
[2] https://github.com/node-inspector/node-inspector/issues/523
[3] https://github.com/laverdet/node-fibers/issues/203
Node 0.12 was released and ships with v8 3.28.73. Most (if not all) of the bug reports you cite refer to needing NAN 1.5 which fixes issues with v8 > 3.28. NAN is used by both io.js modules AND node.js modules.
Both io.js and node.js 0.12 have a v8 > 3.28. All those modules are also broken in Node 0.12 because the underlying v8 API changed.
As pointed out by others, the node.js tests are only passing because some last minute shenanigans so they could claim all their tests were passing "but io.js' tests are not."
Compiled modules are generally more tied to the version of V8 that node/iojs is bound to, depending on that library's interface needs. This is why many libraries are written, rewritten and using javascript-only, so that they can run everywhere. For that matter, many compiled modules didn't work right in windows until well after 0.10 was first released, and some still don't.