Hacker News new | past | comments | ask | show | jobs | submit login
IO.js – Evented I/O for V8 javascript (github.com/iojs)
174 points by owenwil on Nov 28, 2014 | hide | past | favorite | 47 comments

Can someone tl;dr me the gist of everyone's beef with joyent? I've been hearing about a fork but haven't understood / seen why people feel like the fork is necessary.

I don't have very specific details as I'm a bystander too but it seems Node has been stuck in 0.10.x land since early 2013 (http://blog.nodejs.org/2013/03/11/node-v0-10-0-stable/) while Node 0.12 and 1.0 releases were being talked about well over a year ago by former BDFL Isaac Schlueter (now at npm). Joyent, the current project stewards, have not been able to deliver a stable release in that time and don't share public plans / aren't communicating very much.

One of the many symptoms of that slow development process is that Node.js is basically running an unsupported version of V8 (https://twitter.com/jmayer/status/532971494695907328).

From what I've read, node-forward is/was only meant as a fork in the GitHub sense: they'd try to get their stuff merged back into node mainline. The GitHub fork has since been made private (https://github.com/node-forward/discussions/issues/7) and they're working to set up a proper governance model so that the community can truly be in charge. Joyent has reacted (I believe, it might have been in the works prior to node-forward) by proposing a node advisory board (https://github.com/joyent/nodejs-advisory-board) but it seems to be too little too late for at least some of the people behind node-forward (I've read what seem like irreconcilable disagreements about how it should be run).

I have no idea what (if anything) io.js is in relation to node-forward or if the same people are behind it. Can't find any announcements / endorsements on Twitter, so maybe it was just posted here before whoever is behind it were ready to go live.

> Joyent, the current project stewards, have not been able to deliver a stable release in that time and don't share public plans / aren't communicating very much.

They probably don't want to publicly call out one of the core committers whose promised work is lagging. Or admit that the previous project lead was a poor choice who let it stagnate (but yet is inexplicably in the "Joyent did a bad job" camp). What good would that do anyone, apart from satisfy our boundless curiosity?

Yes, the forkers are doing themselves a disservice. Joyent is accused of not communicating with the community, and yet the forkers respond by also not communicating with the community [EDIT: they have refused multiple opportunities to comment, Joyent is publicly appearing to make a consolation effort].

If Node wants to be taken seriously by a broader range of companies, it should be stable. There are forkers on the Joyent Node advisory board. As an open-source project, transparency will go a long way to gain community support from either side. So far, Joyent is winning the communication battle.

Recent article on the subject: http://readwrite.com/2014/11/13/node-js-joyent-possible-fork...

Arguably, this has been stewing for a while: http://venturebeat.com/2013/09/18/can-this-startup-steal-nod...

I am a huge node proponent, and don't encounter problems from outside the project. Joyent's articles and purpose have always been more clear to me than StrongLoop, which is why I use the services of the former. However I have a hard time believing these articles and rumors are the whole story, hopefully someone can chime in with more specific information.

This has been brewing for a year and a lot of people in the community felt it was inevitable [1]. Plenty of early node people were never keen on Joyent's grab in the first place.

The idea that the majority of core contribs are being uncommunicative is not really borne out by the growing community around node-forward and how open it actually is. They've set up live chat, a mentors list, help pages, given access to anybody who asks to the fork and are actively seeking input on new features like better numerical comp libs. It probably seems less communicative than it really is only because they want to wait till the concept is past nascent stage to announce anything. Totally not surprised that people have gotten fed up with Joyent and that forks are happening.

  1 https://groups.google.com/forum/#!topic/nodejs/mqSf47HhmyY

Plenty of early node people were never keen on Joyent's grab in the first place.

Joyent funded Ryan Dahl, Isaac Schlueter and other committers since 2009 or 2010, before the majority of programmers had heard of node.js. And node.js is firmly under an MIT license. Were the developers supposed to live off kudos and instant noodles?

If that's a grab, I wish more businesses would do that. We should be encouraging more investment by companies in open source, so complaining about Joyent stepping up to the plate and giving significant financial help to node.js during the early phase is a bit much.

There is anything but a consensus at that link, many of the commenters at that link believe a fork and/or change of stewardship is a bad choice.

This is an open-source project, and Joyent's repo has always been open. Node-forward and io.js's silence and secrecy can only invite suspicion in this situation. If contributors don't like Joyent's direction, kill them with kindness. Overwhelm node with useful PRs that have a ton of community support behind them. Playing these games IMHO is only bad for the community and for Node's image. Joyent seems to understand this.

I am trying to form an opinion to support Node's positive evolution and I shouldn't have to petition for access to contribute. That is exactly the excuse the forkers are using to justify their fork, and they're guilty of the same.

> actively seeking input on new features like better numerical comp libs

That is one of the most comedic issues on github. Worth a read, but tl;dr:

"all we need is to compile these ancient libraries! It should be easy, they are ancient and I am async!" ... "I failed to compile these ancient libraries."


Joyent is accused of:

1. Fixating on platform stability over project evolution

2. Ignoring the community on project direction

3. Preserving public image over project committers

4. Being a total square

NOTE: I am against the fork.

> 1. Fixating on platform stability over project evolution

That's... hardly a bad thing, in my humble opinion. The other language I use at work, PHP, is a case-study in what happens when you "evolve" a project willy-nilly with little regard to platform stability. Nowadays, it's better, because the community has become more involved in the process, so I can see what #2 and #3 are Bad Things™ however.

Unfortunately, I think node.js is still lacking in a lot of regards that a brief spurt of "willy-nilly" commits (plus some dictatorship-style thoughtfulness) would help. Many of the builtin modules are still "beta" and even core stable ones lack some features that require using unsupported/undocumented properties (it is not even clear why some of it is undocumented).

I use node.js in production so I'm not knocking it outright but you quickly understand the plights if you try to do anything with node that scales well.


I had the feeling that much evolution happend from 1 to 5 but not much afterwards :\

Have you at all been paying attention? PHP 5.6 has namespaces, closures, lambdas, generators, autoloaders, traits, function argument splats, sane array literals - basically everything the authors ever saw in good use, anywhere.

There is hardly any difference between PHP 4 and 5, except internals. The only real big difference between PHP 3 and PHP 4 is a different class syntax.

Well, I switched from PHP to JavaScript, so, no lol.

I thought the class system was improved with 5 and was unusable with 4. At least that was what I read. I started with ... PHP 5.2

PHP 5.6 and what Facebook are doing with HHVM/Hack are (in the latter case, literally) entirely new languages than PHP4 or even pre-5.3, and with the PSR community standards body, Composer/Packagist and the massive amounts of interoperation between libraries nowadays, it's actually enjoyable to code in again :)

5.3 is basically a whole new language. Development is pretty quick and regular ever since 5.4 and the new RFC process.

The same reason anyone forks: some core developers are not happy with the way development is headed.

The reasons are myriad, both technically and politically, and you probably won't understand them unless you engage. If they weren't, we wouldn't be seeing something as drastic as a fork.

Node is the obvious leader amongst V8 shells, but there's also

- https://github.com/attractivechaos/k8 and discussion https://news.ycombinator.com/item?id=7913950

- http://silkjs.net/

- https://code.google.com/p/teajs/

- https://github.com/samlecuyer/sorrow.js

- https://github.com/tlrobinson/narwhal

- d8 (bundled with v8 source)

Not counting other CommonJS-compatible platforms, or javascript shells using engines other than V8, or server-side javascript application frameworks

From my Twitter feed...

"Looks like a Node.js fork called io.js is happening, with some of Node's key contributors. 😮 http://github.com/iojs/io.js "


Wahoo, hope people are more open to change this time around – hope it works out!

40 minutes, 8 points, got to the front page, and... why? Is there a story behind this fork?

There doesn't appear to be much of one, yet. The latest commit by indutny was just a commit to node that the owner of the iojs GitHub organization pushed to GitHub. There are no public members of the iojs organization. Even the name of the repo, "evented I/O for v8 javascript" is the same. All that's been introduced here is a new name, io.js.

Looking at the v0.12 branches of both iojs/iojs and joyent/node, it doesn't seem to me that idutny's latest commit (updating OpenSSL to 1.0.1j) was a commit to Node proper. I also can't find that commit in any other branch of Node, or on idutny's personal copy of Node (idutny/node).

In fact, the history of Node and IO.js seem to completely diverge after Nov 21, with no overlap between the commits or contributors. To me, this seems to clearly indicate that the committors in these last IO.js commits are also the people behind that effort. Am I missing something?

from the issues that have been opened [1] and closed [2] it looks like indutny, jonathanong, and rvagg are involved, aka all people involved with node forward

1. https://github.com/iojs/io.js/issues/5 2. https://github.com/iojs/io.js/issues/7

Yes this appears to be the main thing at play right now. A small number of serious node hackers are contributing to io.js. This could be big, but it's too early for me to tell.

It's raining node forks: https://github.com/io-forward/io-forward

Fork Yeah!

I'm finding the situation with Node.js quite frustrating. There doesn't appear to be much communication as to what's going on with the project.

It's also odd that the Node Advisory Board was supposed to meet on the 20th (2014-11-20). Chris Williams tweeted that it was about to start [1] but no minutes have appeared and I can't find any mention of what happened during the meeting.

[1] https://nodejs.org/advisory-board/2014-11-06/minutes.html#mi...)

Sorry for the delay, it takes a while to polish the minutes and then gain consensus from the rest of the group about the final minutes. The US Holiday didn't help much either (as well as finalizing RobotsConf, life, etc) They are here now: https://github.com/joyent/nodejs-advisory-board/blob/master/...

Thanks Chris, probably read into the delay a little just because I could find any mention of the meeting actually taking place or not, apart from your tweet about it starting.

Understandable though with all the other stuff you've got going on. Cheers :)

With what purpose? What's the significance of this? node is also node with many of the key contributors.

Ah yes, Mikeal, whose capability of double-think is so well-developed that he can claim to not understand what "fragmentation" means while at the same time advocating to do precisely that - https://github.com/iojs/io.js/issues/9

I swear Chris Dickinson is the only sane one in this whole mess. Possibly because he's new. Possibly because his employer is the only one involved that's not beholden to VC money and expectations of return.

10000+ commits and 574 contributors. Boy, this has to be good. Can somebody explain?

It's a fork of node.js

I think it comes down to politics, I feel its always better to have a company run and support an open source framework as long as their listen to the community and letting the community be a part of the framework.

If you are curious about node-forward vs io.js take a look at the end of this page http://nodeforward.org to see how they are related :-)

As a dev do we continue to use node or change to the fork?

hey, catchy name, for some ms I thought of iOS... maybe it's just me doing too much iOS development in the last months.

Can one of the 8 (so far) up-voters tell me whats interesting here?

The linked readme tells little.


Now 25 pts with just as much explanation....


As of 48 points, this (1) is the most relvant and informative explanation, but still has nothing to do directly with the linked OP.

(1) https://news.ycombinator.com/item?id=8669743

Compare with https://github.com/joyent/node, similar readme and commit numbers. Looks like a node.js fork. (EDIT: maybe you already understood that, I thought it might have been a different thing from node.js altogether until I saw the repositories shared a README/history)

With the few forks and stances that everyone is taking now, I really hope that an amazing project like Node doesn't get f* up by becoming fragmented and multiple different "versions" appearing.

The most valuable piece that came out of the node project is libuv, and that is certainly not going away.

sigh time to start looking into Go

Or Dart. It's a lot closer to node and JS than Go (it uses asynchronous IO), and can more easily be used across both the server and client (Go's compilation-to-Javascript support is less developed). It's also surprisingly fast for a dynamic language, and has the generics Go lacks.

Should also mention that Dart is faster than Node - it benefits from Google's development of V8, and the language design was built for optimization while taking a lot of the good parts from JS.

V8 Turbofan using asm.js AOT that is in beta right now otherwise.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact