Skip to content

io.js community thoughts on reconciliation #1336

Description

@rvagg

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 iojs binary name, e.g. Windows problems & side-by-side install problems and the general complaint about us clobbering node on 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

  1. changed the title [-]io.js community thoughts on reconcilliation[/-] [+]io.js community thoughts on reconciliation[/+] on Apr 3, 2015
  2. indutny commented on Apr 3, 2015

    @indutny
    Member

    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.

  3. jbergstroem commented on Apr 3, 2015

    @jbergstroem
    Member

    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?

  4. othiym23 commented on Apr 3, 2015

    @othiym23
    Contributor

    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.4 bundled) 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.

  5. bnoordhuis commented on Apr 3, 2015

    @bnoordhuis
    Member

    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.

  6. indutny commented on Apr 3, 2015

    @indutny
    Member

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

  7. added
    metaIssues and PRs related to the general management of the project.
    on Apr 3, 2015
  8. rlidwka commented on Apr 3, 2015

    @rlidwka
    Contributor

    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.

    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.

    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.

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

  9. silverwind commented on Apr 3, 2015

    @silverwind
    Contributor

    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.

  10. Planeshifter commented on Apr 3, 2015

    @Planeshifter

    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.

  11. reqshark commented on Apr 3, 2015

    @reqshark

    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.

  12. YurySolovyov commented on Apr 3, 2015

    @YurySolovyov

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

  13. jmar777 commented on Apr 3, 2015

    @jmar777
    Contributor

    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.

  14. rlidwka commented on Apr 3, 2015

    @rlidwka
    Contributor

    especially as incompatibilities are only likely to increase over time as the projects diverge further from whence they split.

    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.

  15. 182 remaining items

  16. localpcguy commented on Apr 6, 2015

    @localpcguy

    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.

  17. CodeFoodPixels commented on Apr 6, 2015

    @CodeFoodPixels

    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?

  18. StyMaar commented on Apr 7, 2015

    @StyMaar

    We already got 10% in mere six months with no pr, marketing or any guy with deep pockets selling it.

    Where is the number from ? Can you name a single commercial product that switched from node to io.js ?

    there WILL be a mass migration to io.js if there's no reconciliation.

    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.

  19. jmar777 commented on Apr 7, 2015

    @jmar777
    Contributor

    @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).

  20. andrewdeandrade commented on Apr 7, 2015

    @andrewdeandrade

    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.

  21. andrewdeandrade commented on Apr 7, 2015

    @andrewdeandrade

    Microsoft? What have they done that shows they want to corrupt this project or would otherwise use their seats inappropriately?

    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.

  22. bnoordhuis commented on Apr 7, 2015

    @bnoordhuis
    Member

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

    Can you name a single commercial product that switched from node to io.js ?

    There are a few. Uber for example switched over almost right after the first release.

  23. StyMaar commented on Apr 7, 2015

    @StyMaar

    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.

    Hyper connected grandmother ! Mine barely nows what a computer is ;).

    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.

    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.

  24. JediMindtrick commented on Apr 7, 2015

    @JediMindtrick

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

  25. Zayelion commented on Apr 7, 2015

    @Zayelion

    Can you name a single commercial product that switched from node to io.js ?

    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.

  26. RnbWd commented on Apr 7, 2015

    @RnbWd

    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.

  27. mikeal commented on Apr 7, 2015

    @mikeal
    Contributor

    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:

    1. Technical governance will be compromised during a reconciliation.
    2. Releases and contributions will return to pre-fork levels because of policy compromises.
    3. Foundation board/donors will compromise the project.

    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.

  28. locked and limited conversation to collaborators on Apr 7, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    discussIssues opened for discussion and feedback.metaIssues and PRs related to the general management of the project.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions