Repository navigation
io.js community thoughts on reconciliation #1336
Description
Activity
- changed the title
[-]io.js community thoughts on reconcilliation[/-][+]io.js community thoughts on reconciliation[/+]on 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.
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?
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.
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.
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...
- addedmetaIssues and PRs related to the general management of the project.Issues and PRs related to the general management of the project.
on 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".
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.
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.
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.
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".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.
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.
182 remaining items
Load more actionsAll "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.
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?
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.
@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).
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.
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.
@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.
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.
@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.
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.
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.
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:
- Technical governance will be compromised during a reconciliation.
- Releases and contributions will return to pre-fork levels because of policy compromises.
- 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.
- locked and limited conversation to collaborators
on Apr 7, 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.
iojsbinary name, e.g. Windows problems & side-by-side install problems and the general complaint about us clobberingnodeon install.Some cons, perhaps:
Other open questions: