
Joyent Moves to Establish Node.js Foundation - nifoc
http://www.joyent.com/about/press/joyent-moves-to-establish-nodejs-foundation
======
drderidder
About a year ago I posted "node.js needs a new home" on the mailing list. It
started a minor s### storm and a couple of local IBM guys went down to talk to
Joyent, which eventually led to the whole advisory board / foundation
initiative. Mostly it was all back-room discussions between companies taking
place in private from the wider community. They're great people, but that
isn't really what I had in mind.

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...](https://medium.com/@iojs/io-js-and-a-node-js-
foundation-4e14699fb7be) ]

~~~
apaprocki
Re: Being limited on non-x86 platforms with older versions -- IBM was
interested in the work we've done to abstract away from the particulars of
modern script engines. At Bloomberg we decided to forego Node itself for the
time being and target engines directly. We built an abstraction layer that
allows native modules to be completely isolated from the engine they're being
attached to while still retaining performance as if they were using the engine
API directly. While `nan` provides some abstraction to native module writers,
it targets abstraction over `v8` rather than abstracting `v8` itself at a more
basic level. I'm working on open-sourcing this layer right now, but even if it
was up on GitHub, it doesn't mean the Node (or io.js for that matter)
community would be interested in actually adopting it or something like it to
not depend directly on `v8`. This was interesting for us and for IBM because
Spidermonkey has a bytecode interpreter and does not require a platform JIT to
work and we actively use it on both POWER and Sparc hardware right now. It
might seem like that is less than ideal compared to building out a JIT backend
for each platform, but we've found in practice that for most common tasks the
performance characteristics aren't that different. Freely being able to swap
out engine backends (we also have it targeting Lua just to prove it isn't tied
to JS) also allows direct benchmark comparisons and could help ignite server-
side benchmarks that aren't directly tied to browser performance. I'd love to
see more people interested in divorcing Node from `v8`, but admit it's a tough
sell.

~~~
oso2k
I take it this is different from the NodeRED[0] thing IBM released a year or
two ago? So, if node.js proper was closer to v8 HEAD, then they might find
that the v8 team has recently been supportive of utilizing "precompiled
scripts" (in v8 parlance). And I don't believe divorcing node from v8 is hard.
Nobody is interested[1] (long term) in supporting such a divorce. For the most
part, creating an API that would support both at the same time is maybe a
month's worth of work at most.

[0] [https://gigaom.com/2013/09/27/meet-node-red-an-ibm-
project-t...](https://gigaom.com/2013/09/27/meet-node-red-an-ibm-project-that-
fulfills-the-internet-of-things-missing-link/)

[1] [https://github.com/zpao/spidernode](https://github.com/zpao/spidernode)

~~~
apaprocki
I don't know any details about NodeRED, so not sure how that factors in. All I
know is IBM was interested in using Node in products, as OP mentioned and
their involvement in the foundation shows. Agreed, divorcing Node from the
underlying engine isn't hard -- the point was whether the community would
accept such a fundamental change in the project or whether a hard dependency
on `v8` forevermore and `nan` as a pill to ease the pain is "good enough".
(The `spidernode` project was the work of an intern at Mozilla and really was
more like the `nan` abstraction, shoe-horning SM into `v8`'s existing API and
isn't the kind of fundamental abstraction I'm referring to.)

------
yessed
Translation: io.js is what people want and Joyent feels threatened that
they're not in control.

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.

~~~
_greim_
It baffles me how little they acknowledge io.js in their public communication.
Node is a weirdly paradoxical community composed of a small, really smart core
surrounded by a vast but shallow sea of lip service and hype. With this fork
io.js has won pretty much all the mindshare of the small core, whereas Joyent
is left with the hype, which is a house of cards waiting to fall. They ought
to be chumming up to the really smart core if they don't want to fade into
complete irrelevance soon.

~~~
doublerebel
That is total hyperbole. There are almost no PaaS that offer io.js hosting for
production deployment. io.js is also beta, which is not a good idea to run
production code. Node's community is much, much larger than HN's echo chamber.

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.

~~~
crueber
I don't see a single factual statement here.

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.

~~~
doublerebel
io.js is not stable. Despite claiming the 1.x for semver, they have not
reached their stated goal, which is to be 100% compatible with the node module
ecosystem. Therefore countless modules which are stable on production Node,
are broken on io.js [1]. Doesn't get much more clear than that. Hype.

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](https://github.com/search?q=io.js&type=Issues&utf8=%E2%9C%93)

[2] [https://jenkins-iojs.nodesource.com/](https://jenkins-
iojs.nodesource.com/)

~~~
crueber
You are running a circular argument. What determines stability for a
programming language. Running code? I've got plenty of that. Not crashing?
I've seen no more crashes on 1.1 of io.js than I have on 0.10 of node, which I
also consider to be perfectly stable for production applications, as I run
several. So I say again, for what values of stable? Failing tests only
indicate a change. Is something broken for you?

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.

~~~
doublerebel
From their front page:

> 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](http://blog.izs.me/post/104685388058/io-js)

[2] [https://github.com/node-inspector/node-
inspector/issues/523](https://github.com/node-inspector/node-
inspector/issues/523)

[3] [https://github.com/laverdet/node-
fibers/issues/203](https://github.com/laverdet/node-fibers/issues/203)

[4] [https://github.com/msgpack/msgpack-
node/issues/20](https://github.com/msgpack/msgpack-node/issues/20)

[5]
[https://github.com/iojs/io.js/issues/456](https://github.com/iojs/io.js/issues/456)

~~~
iends
You're quite active in spreading FUD in this thread. Please stop.

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."

------
dasil003
I realize this is biased, but for me Joyent's involvement in anything is
reason to be suspicious. Back in 2004 me and several hundred others fronted
the money to get Joyent (aka TextDrive) off the ground. The marketing was
fabulous, they had A-list blogger Dean Allen as founder and spokesperson, and
Jason Hoffman as CTO spouting off an unending stream of pie-in-the-sky ideas
about how awesome the tech was going to be.

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.

~~~
Lazare
Oh man, I'd forgotten all about the fiasco. Wikipedia has a nice roundup of
the lifetime hosting shitstorm:
[http://en.wikipedia.org/wiki/TextDrive](http://en.wikipedia.org/wiki/TextDrive)

~~~
mercer
Damn. I was already a bit skeptical of Joyent, but this doesn't inspire more
confidence.

------
angersock
Some interesting things.

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.

------
Lazare
Call me cynical, but I feel like this:

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.

------
serve_yay
Hey, there's an idea! I wonder if anyone ever proposed this to Joyent... over
and over and over again.

------
lordbusiness
It certainly looks like both parties have desires to reunite with a new
understanding of what it means to govern Node.

[https://medium.com/@iojs/io-js-and-a-node-js-
foundation-4e14...](https://medium.com/@iojs/io-js-and-a-node-js-
foundation-4e14699fb7be)

This would be my wish.

~~~
WalterSear
The wording there was so polite and inspecific, and the issues at hand so long
in the tooth, I seriously doubt it. That ship sailed long ago.

------
mwcampbell
This move surprises me, because Bryan Cantrill doesn't seem to like governance
and foundations for open-source projects. I wonder if he was overruled on
this.

~~~
bcantrill
That's a very fair question. When I first presented my corporate open source
anti-patterns talk at FISL in 2012[1][2], I closed by saying that I was
certain that we (Joyent) were making mistakes, and that they would have to
come back in 2022 to hear what they were. Suffice it to say that after the
developments of the last year -- which include not just the io.js fork but
also us open sourcing our entire stack[3] -- I'm really looking forward to
doing that update, and hope to do it much earlier than 2022. ;)

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...](http://www.slideshare.net/bcantrill/corporate-open-source-antipatterns)

[2]
[http://www.youtube.com/watch?v=NhgXQFk9noI](http://www.youtube.com/watch?v=NhgXQFk9noI)

[3] [https://www.joyent.com/blog/sdc-and-manta-are-now-open-
sourc...](https://www.joyent.com/blog/sdc-and-manta-are-now-open-source)

~~~
vacri
I'm waiting for this new foundation to have their moment where they call a
core developer an asshole in public, throw him under a bus, and say that if he
was an employee, he'd be fired rather than retrained... all while talking
about the importance of empathy.

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.

[1][https://www.joyent.com/blog/the-power-of-a-
pronoun](https://www.joyent.com/blog/the-power-of-a-pronoun)

~~~
darkmarmot
wow, hadn't read the post. that alone puts me firmly rooting for the io.js
camp.

~~~
4ad
Yeah, because you should chose your software based on your dislike for some
community members, not because of real technical facts.

~~~
bronson
When a project has questionable or poisonous leadership, it's technically wise
to steer clear.

~~~
4ad
Bryan Cantrill is the CTO of Joyent, not the leader of the Node.js project.

~~~
tracker1
And what company owns Node.js again?

~~~
4ad
No company owns Node.js.

~~~
tracker1
Node.js is a Registered Trademark owned by Joyent... even after releasing to
the newly started Node Foundation, I'm guessing there may well be some tight
reigns here.

------
bhouston
Weird that Google isn't a founding member being that V8 is their creation. But
I guess the reasoning is that Node isn't used internally at Google as they
favor Go for server side code.

~~~
inglor
Google is working in coordination with io.js and have expressed that they
believe it is the future. They're moved their integration and effort from Node
to io.

~~~
oso2k
At least from what I've seen publicly on v8-users list, that is not true.
Google has not, and seemingly, will not pick a side. Or, if you must, they've
picked Chrome/Chromium and its 6-week version/development cycle. The v8 team
has always been clear on this. Their primary (only?) customer for v8 is
Chrome.

~~~
domenicd
Hi, can you point to where on v8-users you got this impression? In general we
are much happier with how io.js aligns with supported V8 versions.

~~~
oso2k
Here's an example [0] where Googles showed they preferred their ICU
implementation over system, in effect, remaining self-sufficient & neutral of
the embedder's concern. And as an independent embedder with a non-public
project (as of yet), I prefer that neutrality.

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/...](https://groups.google.com/forum/#!searchin/v8-users/support/v8-users/eGbh2eG9OOI/OWO5eCFJBy0J)

[1]
[https://groups.google.com/d/msg/v8-users/MUq5WrC2kcE/Z3LyOmE...](https://groups.google.com/d/msg/v8-users/MUq5WrC2kcE/Z3LyOmELzD0J)

------
BinaryIdiot
node.js and io.js really need to merge or one has to die. I can't see this
turning out well unless one or the other happens.

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.

~~~
neumino
If you write your code for node.js, it should work on io.js. Fragmentation is
good, it stimulates the eco-system for better products.

~~~
BinaryIdiot
> If you write your code for node.js, it should work on io.js.

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.

~~~
eunoia
> Fragmentation is good, it stimulates the eco-system for better products.

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.

------
oso2k
It's sad, too, that Joyent and/or moderator Forest Norvell are rejecting posts
to the Google Groups which are non-supportive of the new "Foundation". Doesn't
seem like they really have the interests of the "community" in mind, IMO.

~~~
othiym23
While I am responsible for moderating the [nodejs] Google group, I'm not the
only moderator, and have been too busy to spend much time on it recently. It's
not my intention to squelch discussion, and I'll touch bases with the other
moderator to make sure that we're at least being consistent.

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.

------
PLenz
I guess io.js forced their hand.

~~~
bhouston
I think this is what IO.js wanted right? What were their other demands? It
would be cool to see Node.JS and IO.js unified again and moving quickly
forward.

(I'm self interested because we essentially bet our company on Node/IO.)

~~~
Thaxll
You bet your company on a single product that is 5 years old? :/

~~~
bhouston
Just like Facebook bet the company on PHP, not quite but you choose
technologies and tend to stick with them for a while.

------
jfaucett
Why all the negativity for Node? Seriously, lots of good developers have spent
their time developing this project and all these comments are just about how
io.js is so great or node failed at x. As far as I can see this looks like
good news:

"... 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.

~~~
itsbits
I think for quite a lot of time Node wasn't doing much. The rebellion formed
IO.Js. But what they forgot is still IO.JS is fork of Node. Only people like
us who follow Node closely aware of IO.js thgh. Node is still preferred
everywhere. It can still catch up with all the new features like ES6/7.

~~~
aravan
node remains in the name. community cares only about code. IO.JS is gone
forward, we are moving with io.js.

------
rayshan
Listening to panel discussion at Node Summit now, it was discussed by Scott
Hammond that Node.js Foundation corporate membership costs $5k to $250k, vague
on individual membership

------
coldtea
Too little, too late.

~~~
honksillet
Give them a chance. They haven't outline their policy on gender neutral
pronouns yet.

------
dodyg
People has to pick a side. It makes no sense supporting two 'compatible-ish'
platforms going forward.

------
aravan
Please get tj [https://github.com/tj](https://github.com/tj) to node.

~~~
mplewis
He left Node last July: [https://medium.com/code-adventures/farewell-node-
js-4ba9e7f3...](https://medium.com/code-adventures/farewell-node-
js-4ba9e7f3e52b)

~~~
tracker1
He's not as active, but he's still around...

------
RRRA
What if Hitler finds out about io.js? ;P

[https://www.youtube.com/watch?v=1IOukA10QeQ](https://www.youtube.com/watch?v=1IOukA10QeQ)

~~~
jessaustin
That's epic. _We do all the hard work of fending off the hipsters with their
"pull requests"._

~~~
angersock
It's pretty great...at the same time, some of the points are pretty fair--
especially about the enterprise customers.

"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.

------
itsbits
node has to act fast..IO.js is fast catching up..it already supports most of
ES6 parts..

~~~
phpnode
catching up? io.js is waaaaay ahead of node both in terms of features and
community engagement

------
doublerebel
Anyone who thinks io.js has "won" is a) living in the tech bubble and b)
missing the point of the fork.

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.

~~~
ziles88
It's very difficult to unpack this, just so much wrong.

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.

~~~
inglor
This. I love it when people think io.js is less stable. I mean, how hard would
it be to think about it: one of them has half a year of open v8 bugs that the
other has closed. One runs on actively maintained v8 and the other does not.
One has all the core contributors and the other does not... doesn't sound like
hard math to me.

