Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

io.js community thoughts on reconciliation #1336

Closed
rvagg opened this issue Apr 3, 2015 · 205 comments
Closed

io.js community thoughts on reconciliation #1336

rvagg opened this issue Apr 3, 2015 · 205 comments
Labels
discuss Issues opened for discussions and feedbacks. meta Issues and PRs related to the general management of the project.

Comments

@rvagg
Copy link
Member

rvagg commented Apr 3, 2015

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?
@rvagg rvagg changed the title io.js community thoughts on reconcilliation io.js community thoughts on reconciliation Apr 3, 2015
@indutny
Copy link
Member

indutny commented 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
Copy link
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?

@othiym23
Copy link
Contributor

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

@bnoordhuis
Copy link
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.

@indutny
Copy link
Member

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

@mscdex mscdex added investigate meta Issues and PRs related to the general management of the project. labels Apr 3, 2015
@rlidwka
Copy link
Contributor

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

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

@silverwind
Copy link
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.

@Planeshifter
Copy link

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
Copy link

reqshark commented 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
Copy link

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
Copy link
Contributor

jmar777 commented 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
Copy link
Contributor

rlidwka commented Apr 3, 2015

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.

@xjamundx
Copy link
Contributor

xjamundx commented Apr 3, 2015

io.js already has already won. The community has moved on. Commits don't lie. All we need to do is take back the name and the website and the downloads will catch up.

I don't see what cards node really has to play here...they should be joining us :)

@jonathanong
Copy link
Contributor

i'd rather not reconcile. the benefits are not substantial, and i'm very happy with how iojs has been run. i don't want iojs to change organizationally in the name of reconciliation. for me, iojs' organization is an ultimatum.

i don't really care about naming and recognition. i'd rather just start pushing #!/usr/bin/env iojs and iojs-only (specifically, ES6+) support everywhere. like @rlidwka said, no one makes 0.12-only modules.

@antirez
Copy link

antirez commented Apr 3, 2015

I've some feeling that splitting this into pro/cons makes it somewhat harder to reason about, while at a first glance it looks like to make the problem more rational and addressable. Because at the end of the day, it is a matter of culture match/mismatch. If Io.js developers feel at home thinking at the Node Foundation, believe their idea on how to shape the project will still work within the new org, and don't feel "limited", then it's a good idea to check if there are the prerequisites for joining. If instead they feel like they are going to fight to do what they are doing now freely, there is not even to bother thinking more, IMHO.

@NHQ
Copy link

NHQ commented Apr 3, 2015

Stay strong! Bad breakups hurt, but they are ultimately better for the health of each party. it's over. Don't go back.

The clear benefit of io.js is uninhibited contribution by a brilliant community. Which is the opposite of old joyent/node, and not what we'd get out of a new "foundation". They want their legacy systems. We want direct community involvement. The twain are not compatible.

The greatness of node came from the community, despite corporate sponsorship of core development. We'll never know how it would have gone w/o joyent. We came out all right, but that doesn't mean it couldn't have been better.

Make them show good faith by sponsoring io.js, sans conditions. They can join the other new co's that will be happy to. Or they can sit it out and smolder.

@debunge
Copy link

debunge commented Apr 3, 2015

I'm no twitterati neither contributor, just simple user but for me io.js is the Name already. A better one than node.

Just one more datapoint for you to consider.

@rockymadden
Copy link

Tossing my hat in with the idea of not reconciling. The io.js project is still very new and I believe a decent chunk of mindshare has already shifted; we will continue to see more as time progresses. The idea that reconciliation should be done because node is more popular/known is a shorter-term "problem". io.js is what node should have been from the start (from governance to technical ideals), stick to your guns and don't settle.

IMO, we are still near the front of this curve (so give it time):

curve

@jmar777
Copy link
Contributor

jmar777 commented Apr 3, 2015

@rlidwka

We might get packages that are running only on io.js

I don't think that's an issue to be dismissive of. It's fundamentally a good thing (because it reflects the much faster rate of evolution of io.js), but it's still a problem for the (previously estimated 10:1 or greater) majority of users still running node binaries. There's a lot of us that are philosophically/personally/spiritually/whatever aligned with io.js, but are still pragmatically and/or corporately aligned with node (e.g., I don't have time to set up a production-ready prod-ops system for io.js right now, whereas node is still plug-and-play on Elastic Beanstalk and many other PaaS/IaaS providers).

@xjamundx

io.js already has already won. The community has moved on.

Which community? @rvagg did a great job outlining at the onset of this thread that there's a much wider community than those that closely track commits on GitHub and follow key contributors/influencers on Twitter. And as @othiym23 pointed out, that community seems to still be predominantly using node.

I'm personally split on it. On almost all levels other than pragmatism, I'd rather just move on and see io.js pave it's own path. But, I'm also quite the pragmatist when it comes to actually getting work done; that's the side that usually wins when I'm still writing code at 3:00am, and that's where node and the existing ecosystem still wins out in many cases.

@monsanto
Copy link
Contributor

monsanto commented Apr 3, 2015

Some thoughts:

  • The most important issue to me is whether the development pace of io.js is kept up. Going at dinosaur speed, or indeed even slightly slower than we are now, should be a deal breaker. It's hard to tell if this will be the case with all of the talk about boards and foundations and other stuff that tbh I don't give a shit about.
  • io.js seems to care about the time of its contributors. I follow the development pretty closely, and I feel like if I opened a ticket here, something would eventually happen with it. Not so much with Node. I also feel like if I actually put in work I could become a collaborator on the repo, which is so rare and refreshing in this age of "if you don't work for the company sponsoring the project you will never have any decision making power." I'm worried that is going to stop, and it's going to be a whoever-is-on-the-foundation circlejerk.
  • I have been evangelizing io.js since the beginning and some of the decisions made by the project are making it harder than usual. For example, the "Known Issues" section scares the hell out of people who don't have time to follow the differences between node/io.js, especially with how process.send() is not synchronous  #760 has been handled (if it is a regression, why does it require a major version bump to fix? If the regression was in io.js, then why does joyent/node share some of the commits that fix it? Why aren't the implications of the bug more prominently displayed--could it mean that process sends can be out of order? And why is it taking so long?) I can expand more on that if necessary but what I'm trying to say is, io.js adoption could be better than it is now once we get these quirks worked out. Don't assume that the 10:1 ratio will be permanent.

@xjamundx
Copy link
Contributor

xjamundx commented Apr 3, 2015

@jmar777 the community of people building the node platform have clearly moved to io.js. It has won as the de-facto platform of the future. Long term that's what matters.

Short term, most companies and teams are still on node.js obviously and will continue to be for a long time. If io.js can get the node name/brand back, then adoption will be much smoother!

Put it this way. Where is node 1.0?

@mattkrea
Copy link

mattkrea commented Apr 3, 2015

These compatibility issues do not seem to be as important as what might be lost in merging back into joyent/node.

I don't see how this io.js / node compatibility is any different than the people out there that are still running software that requires 0.10.x or even 0.8.x for example. When they get time to upgrade I hope that they would but the fact is if we're talking about legacy software here. They have packages that they know work and luckily we have a package manager that can handle things like this. If they want to use a newer version of a package they'll just have to upgrade.

When I look at it this way I'm not sure it really is that much of a difference upgrading to io.js or just a newer build of node.

@brendanashworth brendanashworth added the discuss Issues opened for discussions and feedbacks. label Apr 3, 2015
@AlistairB
Copy link

To me io.js has won and it only needs to keep going at the significantly faster pace than node.js to eventually replace it.

io.js is in the position of power and should make few to no concessions to achieve reconciliation, since it will happen naturally as users progressively switch to the superior project.

@jordonias
Copy link

no

@jmar777
Copy link
Contributor

jmar777 commented Apr 3, 2015

@xjamundx

I don't want to argue over the more subjective stuff (i.e., when has the battle been "won" or not). All I'm asserting is that it's too early to be hand-wavy about modules not supporting the huge majority of users that are still stuck (if that's not too strong of a word) on node. If 90+% of the node ecosystem today can't use something, it becomes relatively less important to assign titles for winners and losers and speculate over what the percentages will be like 2 years for now.

If io.js can get the node name/brand back, then adoption will be much smoother!

That's basically tantamount to reconciliation. It's obviously not even on the table for that to happen in a manner in which Joyent subsumes unilateral control (or otherwise significantly departs from at least the spirit of the current organizational model).

Where is node 1.0?

Hey, you leave semver out of this. :) I understand your point though. Nothing I'm saying here is being dismissive of the undeniable io.js momentum and laughably lopsided commit activity. This is where the action is. But, for whatever reason, that hasn't translated (yet) into this being where the users are, too.

@localpcguy
Copy link

To followup on an excellent comment from @JediMindtrick - the idea some have stated that NodeJS will die because they can't find contributors to continue Node doesn't ring true for me. I'm not saying what the core contributors do is trivial by any means or can easily be replaced, just that there are a lot of really smart developers out there. So I think the chances of NodeJS becoming (and staying, if you feel it is currently there already,) a ghost town are slim. That would increase the level of effort significantly towards trying to get the ideas of points 1 & 2 implemented for IO.js.

I think going to the Foundation + TSC is a solid model, and a lot of the momentum from IO.js should move right over. I also think having a bleeding edge distro that feeds into the LTS that is NodeJS is a really good idea that should be explored more as this process moves forward.

@Zayelion
Copy link

Zayelion commented Apr 6, 2015

Summarizing, TL;DR

  • There needs to be a free openly governed main bleeding branch (io's consern)
  • There needs to be a healthy periodically updated branch for LTS (node's consern)
  • Branding needs to exist under a legal entity.
  • io's conserns have all been addressed via the forming of a foundation or being left in the wild.
  • node's conserns have not been met in io so few have switched to it in production.

I'd bet money if you formed the foundation and said screw the trademark and just kept io little would happen. Joynet would keep pulling in edits to its liking and be a Red Hat flavor of sorts. Wanting the nodejs trademark is a bit greedy but understandable.

@micnic
Copy link
Contributor

micnic commented Apr 6, 2015

@Zayelion, I guess you wanted to write "concern" instead of "consern", beside this I totally agree with an organization like io.js as the latest version and node.js as the conservative LTS version.

@ericmdantas
Copy link

I agree with @Zayelion.

@q2dg
Copy link

q2dg commented Apr 6, 2015

I agree too.

@ghost
Copy link

ghost commented Apr 6, 2015

At this point, I really can't see any benefit for io.js as a technology in this reconciliation. It would just be a bunch of compromises that would end up benefiting joyent's bottom line.

@jmar777
Copy link
Contributor

jmar777 commented Apr 6, 2015

I really can't see any benefit for io.js as a technology in this reconciliation.

This is the sentiment that I can't understand. How is it a bad thing to re-unify with over 90% of the user base, regain support from nearly all of the PaaS providers, consolidate development efforts, and gain significant corporate backing?

"Joyent" isn't a dirty word. Yes, they did us a disservice, but again, keep a balanced perspective. With a new governance model in place, they can really only help, since, as you said, they're also motivated to see node succeed. I really don't care about Joyent that much. I'm not a "fan" or a "hater". They're just a company that didn't do so well at corporate stewardship. Let's fix that problem and regain what is still a strong brand and bring the community back together.

If you can't see any benefits in reconciliation, you're frankly not looking very hard, IMHO. There's a very valid debate to be had regarding whether those benefits outweigh the drawbacks (which I very clearly believe they do), but there's no point in pretending that the benefits don't exist at all. _STRONG FEELINGS!_ Sorry, I suck at tone control in these threads. Agree or disagree, still love y'all.

@JediMindtrick
Copy link

Disclaimer: I'm really just on the fringe of this community, but a very interested observer. In my current job I am often the guy trying to push technological advancement in the enterprise.

@mrseth The benefit would be continuing the adoption curve already started by NodeJS. To me that seems valuable to a technology. Conversely, the con to not merging is that iojs ends up competing against that already-moving adoption.

Also, an adversial/compromise approach isn't the only way to solve disagreements...there's always a possibility of consensus, although much harder. There are a lot of smart people on this project, though, so maybe it's possible :)

Just spit-balling...maybe a situation develops (somehow) that NodeJs is being refreshed at a good pace, but that it is restricted basically to just pulling from iojs. There could be some interesting dynamics in a situation like that.

@milne-dev
Copy link

@tbranyen yes it is sufficient for myself, but to make it available as a normal package for the popular distributions would be a step in the right direction towards more general acceptance. However I understand that it may not be necessary atm.

@Zayelion
Copy link

Zayelion commented Apr 6, 2015

@jmar777 Joynet's corporate animal first response of "I'm gonna sue you trying to help me" makes us wonder. @mrseth node/io needs a legal entity to own its own name, self promote, and keep up its development cost. The Foundation is effectively a non-profit startup company, its product being the nodejs intellectual property. It can do this without the nodejs name but it will be slower and results in a Python 3/4 situation and I think that is what node is trying to avoid.

One thing I love about this community is that it's leadership has pulled from other server languages and competing platforms and just done everything so right. Where Go, Python, PHP, and C# have just screwed up without repentance. Now it faces completely new issues. I want a Nodejs v2. The issue is how many deals with devils is it going to take to get there without restarting.

If iojs keeps on its own there is no way to know if it is going to be a Joomla/Ubuntu or historical political gambit.

Just a note, I'm seeing support for iojs in more and more places like TravisCI I dont think the mindshare split is as critical as people are making it sound. It's almost as trivial as a project rename.

@jasnell
Copy link
Member

jasnell commented Apr 6, 2015

For those interested in making progress, the dev-policy draft is moving forward https://github.com/jasnell/dev-policy. Continued constructive feedback is welcome.

@localpcguy
Copy link

Another thing to remember about Joyent - whatever people feel about how they handled Node, it's easy to dismiss it as a faceless corporation (and yes, many people feel corporation == evil). Let's remember there are people working within Joyent that love Node as well and do truly want what's best for it. Despite the mistakes and even the factors that led to the merge, the Node/IO ecosystem is still in a really good place regardless of that.

It's human nature to divide into us/them groups, and them == bad. Let's try to rise above that base knee-jerk reactionary type of thinking.

(Maybe I'm just too far on the periphery of this issue and so haven't been burnt, but I have talked to Joyent devs and they all seemed like good people.)

@rlidwka
Copy link
Contributor

rlidwka commented Apr 6, 2015

@jmar777 ,

This is the sentiment that I can't understand. How is it a bad thing to re-unify with over 90% of the user base, regain support from nearly all of the PaaS providers, consolidate development efforts, and gain significant corporate backing?

It's not a bad thing.

But it is going to happen anyway. Regardless of whether reconciliation happens or not. I agree with @jeffwhelpley 's sentiment above:

I think the moment you take a stance "io.js is here to stay and there will be no reconciliation" you will see a mass migration to io.js.

I agree, under Node.js name we will have more users in the short term. Later people will move to io.js anyway because node.js essentially is the maintenance-only mode right now.

But... BUT... quoting @rvagg 's first post:

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

What is changed in node.js in the past few months? Well, nothing. Except for an amount of commits that's exceptionally low for some well-known reason. All the people, and all the reasons for fork, and that year old v8 engine are still there.

We will have to compromise with them. And we will have to review again every single patch that was accepted to Node.js 0.12 because of corporate lobbying and rejected by io.js TC.

Honestly, that still trademarked Node.js name is the only reason one could possibly want merging. And I really doubt it's worth it.

@localpcguy
Copy link

@rlidwka The other big reason to merge is because some of us don't believe there will be a mass migration to IO.js if it were announced that there will be no reconciliation. Not enough people are paying that close attention in the broader Node ecosystem. And Node will continue to make updates, version bumps, etc - competition in the form of IO.js would likely do wonders for their desire to improve the Node 0.12 line and make sure it stays relevant.

My biggest fear is that there are 2 divergent lines of development (already started, but close enough they could come back together) that leads to similar but incompatible projects, needing to know whether an NPM package is built for Node or IO, etc.

I am not arguing for a return to the BDFL model under Joyent, but rather moving into a Node Foundation as has been proposed. I see a very large different between those 2 paths.

@rlidwka
Copy link
Contributor

rlidwka commented Apr 6, 2015

And Node will continue to make updates

Node won't be able to keep up. 908 issues + 284 pull requests are kinda self-explanatory.

Well I agree those are being accumulated for a long time, but maybe check github pulse?

https://github.com/joyent/node/pulse
https://github.com/iojs/io.js/pulse

Please ignore amount of issues created (joyent/node were getting spammed last week). But amount of merged pull requests (6 for io.js, 0 for node.js) does tell you something.

And here is a summary:


io.js

Excluding merges, 32 authors have pushed 44 commits to v1.x and 105 commits to all branches. On v1.x, 935 files have changed and there have been 89,163 additions and 8,316 deletions.

node.js

Excluding merges, 8 authors have pushed 3 commits to master and 23 commits to all branches. On master, 521 files have changed and there have been 26,938 additions and 6,087 deletions.


23 commits in node.js vs 105 commits in io.js (3 vs 44 into default branch) - that's what I call "node.js is basically done".

Remember that picture referenced by @malandrew above?

All developers are here. Which means users will be eventually.

@localpcguy
Copy link

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
Copy link

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?

@ghost
Copy link

ghost commented Apr 7, 2015

@localpcguy they haven't found any so far, why would anyone start contributing to a semi-dead project such as node when io.js exists? Thinking they would find new contributors in the current state of affairs is non-sense.

And that other guy is on the money: there WILL be a mass migration to io.js if there's no reconciliation. We already got 10% in mere six months with no pr, marketing or any guy with deep pockets selling it. Give it one more year and I am sure there will be more people using io.js than using node. Why are you so desperate for users in the short term? Why are you so willing to make unnecessary compromises when all the contributors are on io.js? Io.js has barely started, why reconciling so soon? Let it grow and then if a reconciliation is a better option, do it. There is absolutely ZERO reason to reconcile so soon with such a promising future ahead free of corporative stiffness holding development back.

I am not saying to discard the idea of a reconciliation, I am just saying to wait until io.js had enough time to grow on its own.

@StyMaar
Copy link

StyMaar commented Apr 7, 2015

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.

@jmar777
Copy link
Contributor

jmar777 commented 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
Copy link

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
Copy link

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.

@bnoordhuis
Copy link
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.

@StyMaar
Copy link

StyMaar commented Apr 7, 2015

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.

@JediMindtrick
Copy link

@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
Copy link

Zayelion commented Apr 7, 2015

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.

@RnbWd
Copy link

RnbWd commented 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
Copy link
Contributor

mikeal commented 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:

  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.

@nodejs nodejs locked and limited conversation to collaborators Apr 7, 2015
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
discuss Issues opened for discussions and feedbacks. meta Issues and PRs related to the general management of the project.
Projects
None yet
Development

No branches or pull requests