This is the third time in a week an uninformative link has been posted to HN, without any comment from the forking community. Can we consider this a dupe?
At this point I'm just getting frustrated because I should be able to learn about important open-source issues from the community, not from a Wired article and not hidden in some secretive organization and private repo. Airing frustrations through Wired is only bad for the community -- the headline is nothing but FUD:
"Future of Popular Coding Tool In Doubt After Public Split" -- Can you imagine selling your CEO on Node when articles like this are being written?? Someone on HN posted this [1] recently, and I think it's very appropriate -- I believe this confusion could have been avoided:
> If, after careful consideration, you still conclude that you must fork, line up support privately first, then announce the fork in a non-hostile tone. Even if you are angry at, or disappointed with, the current maintainers, don't say that in the message. Just dispassionately state what led you to the decision to fork, and that you mean no ill will toward the project from which you're forking. Assuming that you do consider it a fork (as opposed to an emergency preservation of the original project), emphasize that you're forking the code and not the name, and choose a name that does not conflict with the project's name. You can use a name that contains or refers to the original name, as long as it does not open the door to identity confusion. Of course it's fine to explain prominently on the fork's home page that it descends from the original program, and even that it hopes to supplant it. Just don't make users' lives harder by forcing them to untangle an identity dispute.
This is a big deal, because of who is involved. Here's the list of people involved:
* Indutny (listed as a Node.js code team member)
* Trevor Norris (also a Node.js core team member)
* Isaac Schlueter (cited as a Node.js core team alumni)
* Ben Noordhuis (also an alumni)
* Bert Belder (another alumni and a Node.js maintainer)
In the TC meeting today we came up with a vision for the first release.
First, a few assumptions we've internalized that probably need to be stated for this to make sense.
- Node is pretty damn stable already. There are huge companies with it in production, 100K+ modules, etc. It is already far more stable that its pre-1.0 release tag suggests.
- Releasing more frequently leads to a more stable product, not a less stable product.
- The entire ecosystem uses semver while node uses a confusing even/odd release structure.
If people disagree with any of those assumptions then they certainly won't agree with anything the TC determined for the initial release.
So, first release of io.js:
- January 13th (Fedor's Birthday!) target date.
- Will be 1.0-alpha1, with alpha releases continuing until 1.0.0.
- Switching to semver.
- We will be taking new v8 releases as fast as possible moving forward.
- Trying to get to a weekly release cycle. Which version number is incremented each week is determined by the changes and whether or not they are breaking. Again, following semver.
Some questions still left open:
- Are there any changes other than dep upgrades and fixes required for 1.0?
- Is build confident we can have enough automation in place to hit this date.
- Is the plan to have the installer install an iojs binary and an alias to node?
So, they're going to change a few things around the build process and versioning? I wonder if there will be any plans to address core functionality, namely callbacks vs promises.
Yeah. I'd love to see a node/npm fork that used es6 modules instead/as well as npm modules, and promises instead of callbacks throughout the api. Everything else the same, but something that will use the newer stuff that is becoming available a bit sooner than the node ecosystem will.
The parent was referring to how, in the Node world, typically errors are the first argument of a callback function(err, value). Promises will be added to Node soon, but the question was whether they will change all of their APIs to use those instead of the current callback method.
Not looking for dirt or anything, but why the fork? What makes this different from Node?
(Only clue so far is the "open governance model"; is that in contrast to Joyent maintaining Node?)
EDIT: Based on their CONTRIBUTING.md page[1], it looks like this is intended to be a more "community-driven" version of Node. A strike against is that SEVERAL (if not most) links in README.md and CONTRIBUTING.md still reference the joyent/node GitHub project.
Because Node 0.12 took forever to be released, looks more and more like vaporware, and the community demands new V8 features yesterday. Oh, and the V8 version bundled with the current stable Node was no longer maintained even at launch time.
This has been brewing for a while. I don't know most of the people involved but they post youtube videos of their meetings. isaacs is involved and get is the creator of npm so that is a good sign. As I understand it this is a direct backlash against joyent's governance of node and it's slow release cycle.
Wired's quote from Joyent is, to me, rather telling:
"But for Joyent CTO Bryan Cantrill, Node is alive and well, despite the slower pace of development. He says that Joyent has been focused on making Node faster and more stable, rather than adding new features. “You’ve got to look at the quality of contributions,” he explains, “not the quantity.”"
Node.js issues in my mind now are maintainability related, not performance related. They need to stop fetishizing performance and focus more on making node.js more accessible/easier to work with.
A lot of confusion about why this is going on. My take as a very interested user who has been actively tracking down info about this Node's next release and possible fork for some time is this:
Node.js's last supported release uses such an old version of Google's V8 that this V8 version is itself no longer supported. This, in my opinion, is just not good enough. In my personal experience, when a release cycle gets that fucked up there's a reason.
Joyent hasn't shared what the reason actually is for the delay, but so many of the top contributors think they can do better with a fork, and I'm going to give them the benefit of the doubt.
The plan is to do weekly releases, semver, to keep absolutely up to date with Google V8, and incidentally to not let just one interested party dictate their future directions.
It's a good plan and if they follow through, I'm definitely on board.
What I find most interesting about this is how many of the most influential people in the node community seem to be at least interested in supporting this, if not actual on board. The website and github organization do not give any info about who is involved, but if you look at some of the discussions in github issues, you'll see some big-name node community members.
Just a few I saw in the handful of issues I looked at: isaacs, mikeal, domenic, rvag
Previous:
https://news.ycombinator.com/item?id=8694953 (Link to the repo)
https://news.ycombinator.com/item?id=8669557 (Another link to the repo)
At this point I'm just getting frustrated because I should be able to learn about important open-source issues from the community, not from a Wired article and not hidden in some secretive organization and private repo. Airing frustrations through Wired is only bad for the community -- the headline is nothing but FUD:
"Future of Popular Coding Tool In Doubt After Public Split" -- Can you imagine selling your CEO on Node when articles like this are being written?? Someone on HN posted this [1] recently, and I think it's very appropriate -- I believe this confusion could have been avoided:
> If, after careful consideration, you still conclude that you must fork, line up support privately first, then announce the fork in a non-hostile tone. Even if you are angry at, or disappointed with, the current maintainers, don't say that in the message. Just dispassionately state what led you to the decision to fork, and that you mean no ill will toward the project from which you're forking. Assuming that you do consider it a fork (as opposed to an emergency preservation of the original project), emphasize that you're forking the code and not the name, and choose a name that does not conflict with the project's name. You can use a name that contains or refers to the original name, as long as it does not open the door to identity confusion. Of course it's fine to explain prominently on the fork's home page that it descends from the original program, and even that it hopes to supplant it. Just don't make users' lives harder by forcing them to untangle an identity dispute.
[1] http://producingoss.com/en/forks.html