Repository navigation
io.js community thoughts on reconciliation #1336
Description
I've heard a bit of disquiet about the idea of reconciling back with joyent/node and joining in on the Node Foundation and I thought it appropriate to provide a specific place to discuss these concerns, separate from the fine details of how any such reconciliation might proceed.
The current reconciliation process is still mostly being driven from the top and techno-political necessity has meant that a lot of discussions have been had in private. Thankfully @mikeal has forced it in to the open with his GitHub threads on reconciliation that have flushed out discussion both here and in the JNAB process and even the large corporates involved in the Foundation discussions are now openly engaging. So we can now be much more transparent about the process.
My intention here is to ensure that @iojs/collaborators and everyone that considers themselves part of this new community feels that they have a voice and that the proverbial tail isn't wagging the dog. This is your project.
Some of the pros for reconciliation that I've heard (please add to these if I miss anything). I'm attempting to characterise the arguments here, I don't necessarily agree with these.
- io.js is has very tiny reach compared to joyent/node with many people in the wider "community" (beyond the twitterati and active GitHubbers) not even being aware of it. Moving back in to the fold to take advantage of the momentum that joyent/node has and the name recognition that comes with "Node.js" makes the effort that goes on here more worthwhile.
- The proposed foundation comes with corporate backing which would be helpful for this project because it gives access to T&E for contributors to gather and do stuff face-to-face, it would give a budget for things (build resources? SSL certificates? other?). I'm actually not sure what the real benefits here and would prefer @mikeal to fill this one out since he's the one making this argument.
- Reconciliation would re-combine the efforts of all contributors, across both projects, into a unified coalition that would work on a single thing.
- Reduce the risk of individuals or companies owning important parts of this project - e.g. the domain name and certs. There's also more legal pressure against people going crazy with the liberal access we're handing out (want to sabotage io.js with your commit access? there's probably not any legal avenues we can take at the moment because nobody really owns it).
- Resolve the hassles with the
iojsbinary name, e.g. Windows problems & side-by-side install problems and the general complaint about us clobberingnodeon install.
Some cons, perhaps:
- io.js is going to have to make compromises in its organisational and governance structures to fit in with something more formal, what we have here is great for an informal grouping of interested developers but not so suitable if we're talking about a foundation.
- io.js is going to have to have some tough conversations with those that are driving joyent/node to where it is today, those who have made the same decisions that lead to a fork in the first place. This is going to cause trauma regardless of governance structure ("just vote em out!" isn't going to fly here).
- io.js is going to have to interact with very large corporate muscle and we're going to have to learn how to deal with that in a constructive way, perhaps this doesn't properly belong in the cons pile but it's out there anyway.
- "io.js" as a brand may be diminished and I know a lot of people have become attached to it. Even if it's kept as a sub-branding of some kind it'll be subsumed back in to "Node.js" (this is a pro for some of course).
Other open questions:
- Does it really matter that io.js isn't as popular as joyent/node at this stage? What's the reasoning that's making this such a compelling argument? Same goes for the "Node.js" name.
- Does having corporate backing and a big budget diminish our ability to acquire donated resources to the project because we can now pay for it? Or does this even matter?
- Does having staff paid by a Foundation diminish the community at all? Perhaps creating an additional level of privilege will impact on the openness we've created.
- Part of what we've built here comes from a shared sense of ownership and that's one of the core reasons that open OSS governance works because people will fight for something that they have a real stake in. If it all gets owned by a Foundation, who owns it and will that impact on the way we individually feel about contributing and being involved? There's already plenty of evidence in this repo of that sense of ownership driving a passion that's leading to very productive discussions and contributions, will that be impacted at all with a Foundation?
- Joyent have squandered much of the trust and respect they once had and they continue to frustrate even in their involvement in the AB and Foundation discussions. Does their re-involvement in this community have an impact or do we imagine they will once again become the constructive force they used to be or perhaps they will be neutralised in a way that everyone's happy?
- Is it necessary to discuss reconciliation and Foundation at the same time? io.js could form its own Foundation, perhaps without the significant corporate backing that joyent/node can attract at the moment but maybe that doesn't matter. Early on in the node-forward process there was some brief talk with the Software Freedom Conservancy, I don't really know anything about them but perhaps there's another model, like that, that would solve what makes a Foundation compelling for people?
Activity
[-]io.js community thoughts on reconcilliation[/-][+]io.js community thoughts on reconciliation[/+]indutny commentedon Apr 3, 2015
I'm especially worried about the "trauma" here. It seems to me that the only pro is eliminating the confusion between the different names.
Though, I might be too orthodox on this.
jbergstroem commentedon Apr 3, 2015
From a technical point of view, my personal opinion is that node and io.js have somewhat different goals. If I as a contributor were to join something where I didn't share the same goals with, It'd be hard not to fork again. How can we avoid this?
othiym23 commentedon Apr 3, 2015
My biggest argument in favor of reconciliation is that the usage numbers for Node.js 0.12 dwarf those of io.js of all versions. I don't have any formal numbers I can share with you right now, but some of the high-level analytics (and the flood of support issues that came in when 0.12.2 was released with
npm@2.7.4bundled) lead me to believe that a 10:1 ratio would be on the conservative end. And of course all of those users are dwarfed in turn by the number of people still on 0.10.x and earlier.All of the hard work we've put into io.js is much less useful if only a fraction of the overall user base is taking advantage of it, and the longer the fork lasts, the harder merging the two code bases will be.
bnoordhuis commentedon Apr 3, 2015
Speaking for StrongLoop, reconciliation is strongly preferable because it gives us the brand name. Speaking for myself, I don't really care about that. The trademark is valuable while io.js is still the lesser known but that's short-term thinking.
I'm uneasy with the legal language around the Foundation and the power it gives to the Board. It was explained that the Board is ultimately legally responsible and therefore needs the final say in things but it still feels to me like it's structured to give corporate interests the upper hand.
indutny commentedon Apr 3, 2015
I got the same feeling, otherwise I don't see a point for corporations to invest money into the Foundation. Investments should give benefits, and if TC is acting on it's own - there is no way to affect it.
This all makes me really worried...
rlidwka commentedon Apr 3, 2015
It doesn't really matter how much downloads io.js has. What matters is how fast io.js is growing compared to 0.12.
People who use io.js aren't going to move to 0.12 any time soon. But people who use 0.12 might move to io.js, considering an amount of changes in 0.12 is quite low nowadays and V8 version is hopelessly outdated already.
Last I checked, the most useful PRs from joyent/node are being constantly merged here with PRs like #1163 . There are changes that are not merged (e.g. bundling ICU), but they were all rejected here for a reason.
So I'd argue there is no benefit in merging the code. It will not gain anything for existing io.js users. And the drawback (that's necessity to discuss every 0.12 change with Joyent) is rather huge.
I agree with @indutny here, only positive thing we get from merging is the Node.js name.
Is it still worth it now? Or maybe it's better to focus on promoting io.js own name, e.g. push it to debian/fedora/etc. distributions so more people could use it?
I'll point out that all this "reconciliation" talk is just stalling io.js now. I've seen people who remain on node.js because "oh well, it is going to be merged soon anyway, why bother migrating now".
silverwind commentedon Apr 3, 2015
Personally, I don't see any benefit in monetary investments into the project, especially not from for-profit corporations that so far have shown no interest in the well-being of the project. There is a real danger of getting into a situation like with Joyent again.
Adoption rates will naturally rise over time once the broad mass realizes what a bugged mess node.js currently is, and will further be sped up by new features in the pipeline for io.js.
I'd say: Let them bleed.
Planeshifter commentedon Apr 3, 2015
This is purely from an end-user perspective not directly involved in iojs, but the likely fragmentation of the npm ecosystem in case of a permanent fork worries me, so I would hope for the reconciliation process to bear fruits.
reqshark commentedon Apr 3, 2015
I do not want to see this reconcile into a monolith.
I like my options for node the same way I like my options for modules.
YurySolovyov commentedon Apr 3, 2015
IMO all current proposals employ too much bureaucracy with all that foundations, processes, commities, which kind of leads back where we started when fork happeded.
I already asked in other topics, but got no answer: how do we ensure that "long node 0.12" never happens again? If thae answer is kind of "we don't" or "we can't", it is almost same as "it will happen again".
jmar777 commentedon Apr 3, 2015
Another pro: de-fragmentation (you know, jsdom type stuff). I think that's actually a huge one, especially as incompatibilities are only likely to increase over time as the projects diverge further from whence they split.
rlidwka commentedon Apr 3, 2015
I don't believe so.
First of all, npm ecosystem is mostly supporting node 0.10+. Some of them are still supporting 0.8, but there are very few packages that don't work with 0.10. So as long as io.js is compatible with 0.10, there shouldn't be any incompatibilities with them.
Secondly, joyent doesn't have the manpower required to make any meaningful changes to node 0.12. I don't expect to see any new features in 0.12, so there is no real source of incompatibility. We might get packages that are running only on io.js, but I don't see how we can get packages for node 0.12 only.
182 remaining items
localpcguy commentedon Apr 6, 2015
All "current" developers are here, doesn't mean the remaining maintainers of Node won't find new contributors to Node. That chart is very misleading IMO. The initial spike was to be expected, and it would make sense that Node commits would fall off since the core contributors are here.
If the 2 stay unmerged, and IO.js declares it will not reconcile, I really hope I am completely wrong and everyone rushes to switch over. But I think that is very unrealistic in some of the organizations that currently use NodeJS, as well as the entire community that is either barely following this issue or completely unaware of it. They will just keep going to the NodeJS site to get their Node. I hope I'm dead wrong, but fear that I am not.
CodeFoodPixels commentedon Apr 6, 2015
If you're one of those saying all corporations are evil, can I ask why you're assuming that those who want to support this project have nefarious intentions?
@Zayelion Why do you want to deny seats to IBM and Microsoft? What have they done that shows they want to corrupt this project or would otherwise use their seats inappropriately?
StyMaar commentedon Apr 7, 2015
Where is the number from ? Can you name a single commercial product that switched from node to io.js ?
This is not how real life works ! This has almost never happened in the free software world ! As I said earlier in this discussion, just consider the most successful fork of the past few years : LibreOffice vs OpenOffice
Five years later and after the whole developer community moved to LibreOffice with OpenOffice being abandoned by Oracle in the Apache graveyard, a majority of OpenOffice customers (mostly schools and public administrations) are still using it. And after 5 years most people still don't know what is LibreOffice :
http://www.google.com/trends/explore#q=%2Fm%2F0hvp_%2C%20LibreOffice&cmpt=q&tz=
Even on stackoverflow, OpenOffice still has a huge lead (twice as much question tagged) !
Do you have an idea how little people care about io.js ? The «node.js» brand is here to stay, with 75k tagged questions on stackoverflow and thousands of blog post and tutorial about it, you're just not goind to kill the «node.js» name. Not in 1 year, and most likely not even in ten !
For all of you who believe that we represent the majority of the community, just a gentle reminder of how small we are :
http://www.google.com/trends/explore#q=io.js%2C%20node.js&cmpt=q&tz=
We're just a pale blue dot in the universe of node developers, and if we want to help the whole community moving forward, we must reconcile and take the leadership on node.js. Otherwise the entire node ecosystem will just fossilize in 0.10 and lose all its momentum.
jmar777 commentedon Apr 7, 2015
@StyMaar I'm guessing the 10% number is just taking the remainder of the 90+% value I've been mentioning, which was originally derived from @othiym23's comment (based on npm download stats and support requests).
andrewdeandrade commentedon Apr 7, 2015
Node 0.10 is the IE6 of server-side JavaScript. It was good enough to build a business on top of and then the incentive to keep moving it forward disappeared.
Another thing to consider is that NodeJS/io.js is not the only place that JavaScript is being executed. Every major web browser is moving towards ES6. Eventually server-side JavaScript is going to head in the same direction. There are so many useful features that fix many of the warts in the language. Unlike Python 2 to 3, moving JavaScript forward is inevitable.
io.js has top of mind among the most influential developers in the server-side JavaScript community. Many of the people who have come here to defend NodeJS have admitted directly or indirectly that they haven't followed what io.js is. On the diffusion of innovation curve, these are laggards or at best late adopters.
The only thing NodeJS has right now is the brand, and if io.js keeps up what it's doing, the node.js brand will continue to cede ground to io.js.
The only way reconciliation happens is if control of the NodeJS brand name is ceded to those who actually contribute most of the code and keep moving it forward. Joyent, IBM and the other corporations interested in an LTS release version, can take any version of io.js that they want and bless it as an LTS version and maintain that version with bug and security patches. There is little need for the LTS people to have control of the brand. They just need to be able to license it for the LTS version. There is a much greater need for those moving things forward to control the brand.
What I want to know is why, despite the fact that many people on here have said that control of the brand is the only thing that would make this decision a simple one, no one from the NodeJS side of things has proposed even a single solution that would give control of the brand to the io.js committees so they no longer have to dealing with forking risk should they choose to reconcile.
andrewdeandrade commentedon Apr 7, 2015
Microsoft has done plenty of inappropriate things that suggest that they would. Granted the new Microsoft is a different Microsoft and very pro-open source, but I prefer "trust, but verify". Plus, there always exists the possibility that in a few years time Wall Street decides to no longer support Microsoft's open source strategy and replaces management with someone less friendly to open-source. You want to be prepared for such scenarios.
bnoordhuis commentedon Apr 7, 2015
@StyMaar Comparing io.js with LibreOffice is a bit of an apples and oranges comparison. LO targets lay people, io.js targets developers. I hope and assume the latter are more aware of what's happening in the tech landscape.
Second, AOO is coasting on over a decade of SUN's marketing muscle. My grandmother has never heard of node.js - even though it's been her favorite grandson's main gig for years now - but she knows what OpenOffice is. Joyent may be many things, but when it comes to marketing, they're not SUN.
There are a few. Uber for example switched over almost right after the first release.
StyMaar commentedon Apr 7, 2015
Hyper connected grandmother ! Mine barely nows what a computer is ;).
That's how you're making a mistake. Node.js is now used by non-tech companies with developers that are mostly not passionate people reading tech blog, or contributing to open source project or whatever. Roughly 80% at least (I'm being really conservative here) of the developers on this planet are just working people, doing their job from 8 to 18 (6pm) and forgetting about it when at home. That's why I took figures from stackoverflow, because you cannot deny that stackoverflow also targets developers.
Most developers use a technology because their management decided that it was the best idea. Node.js has just barely get into the management line of sight, after 5 years (in April 2015 node.js had the same amount of google research that io.js now) and you can be sure that io.js will not succeed faster.
JediMindtrick commentedon Apr 7, 2015
@malandrew Since you brought it up...if the number really is 10%, that would mean iojs doesn't even have all of the early adopters yet. I would personally peg server-side javascript in general only still gaining the majority, taking the entire industry as the whole universe. My personal stance and point about the whole issue is this: try to keep in mind a broader view of the advancement of the industry as a whole and how that might or might not play with the results of this decision. The history of tech is littered with the corpses of technologies that got picked up by early adopters but never really went mainstream. Node does have more than just the brand, and if you think otherwise you're just not seeing it, for whatever reason.
I'm all for progress. Node is not the first ssjs tech I have ever tried, and I'm sure it will not be the last. I would just hope, that if Node 0.10 truly is the IE6 of ssjs...well, I would hope that if possible the innovators pushing us forward could do what they could to keep that from happening (but not at the expense of innovation). Any web-dev who has had to support IE6 in an enterprise feels the pain that causes and understands why I say this.
Let's put it another way...instead of letting Node become the IE6 of ssjs, maybe we could somehow empower it to be the IE10 of ssjs; the first "ever-green" version.
Zayelion commentedon Apr 7, 2015
nwjs switch immediately so any product that is updated/launching based on it will be using it. Its supported as an option by TravisCI. Atom.io switched, jsdom switched and broke on purpose so anyone using that is forced to update in newer iterations. Azure is supporting it.
Most important I think Tessel is pretty critical because it makes up a major part of the hardware aspect. Also we have Floobits.
Thats just first Quarter, so over 3 months and no marketing.
Microsoft and IBM are specifically to large to behave and have a history of monopolistic business practices. Microsoft during one era was openly hostile to open source and its recent behavior seems more like a trap more than anything. They write standards for the W3C then turn around and fail to implement them. They have a habit of trying to get premade things and then corrupting them to create steady business lock in.
This wikia article bothers me about IBM, normally its forgivable due to time passage the same people are clearly not working there but the company is still huge. These two company's are legally obligated to only turning a profit.
RnbWd commentedon Apr 7, 2015
I think we should define what reconciliation means before discussing its implications. From the standpoint of github, I don't see any benefits of merging the nodejs repository into iojs. Node contributors are free to submit pull requests and merge iojs into the nodejs repository if they so choose. I think it would benefit the nodejs foundation to support iojs - financially and legally - as an independent organization, but that's something they'll have to decide on their own. I believe that the iojs community is strong and we shouldn't let politics prevent or reverse the progress that's happening here.
mikeal commentedon Apr 7, 2015
I think 200+ comments is enough, time to lock this issue. This thread has collected a lot of concerns that I'll try to summarize and address below but this thread is no longer a productive place for feedback and is instead a magnet for a lot of negativity and borderline trolling. For those who want to continue to comment and debate this process you can do that in the repositories mentioned below.
Concerns seem to be:
For 1 you can post your concerns about top level governance in the TSC Charter PR joyent/nodejs-advisory-board#30 and concerns about working group governance in my PR joyent/nodejs-advisory-board#33
For 2 you can create new issues or comment on the existing issues related to the dev policy https://github.com/jasnell/dev-policy . Issues there will be elevated to the TSC meeting on Thursday with both io.js TC and node.js core group.
For 3 Bert and I conveyed these concerns to the foundation and node.js advisory board in their public meeting yesterday. Expect some blog posts and other outreach to try and bring better clarify and transparency to the way the non-technical side of the foundation will operate soon. Additionally you can address concerns to them directly in the public advisory board meeting Monday after next.
All the aforementioned documents are drafts and have not been finalized. Once finalized a new issue will be created in io.js to address merging under those policies. Participating in the process to reconcile is not a vote for merging, that vote will come later once it is clear under what terms we would be merging.