TucsonJS: What the Fork is IO.js?
04/23/15
Another TucsonJS Meetup! Yay! Not as many people here as last time.... That's unfortunate. This presentation is on Github! I forked it to here.
Meeting starting. Introductions and notifications of snacks.
June 13th hack-a-thon! Throw ideas at him via Meetup or Twitter for how it should be organized.
Thinking of setting up a TucsonJS IRC or something. Again, throw ideas at him about it.
Omer Wazir is giving the talk. Works at Tucson Embedded Systems. This talk just talks about why io.js exists.
Building the presentation failed for some reason....
first there was node.js
General background given on node.js given. JavaScript everywhere was given to the world.
node.js was progressing slowly
Lots of node packages, not enough node releases. Core contributors wanted more releases out faster, and more contributions.
node forward started
Contributors to node created a repo to address issues they had with node.js. Focus on new contributors and new users and faster releases. They forked node.js, but Joyent wasn't okay with it as node.js was trademarked. Called it "Node Forward".
private node.js fork turned into io.js
Private node.js became io.js, and all work on Node Forward got merged into it. Uses open governance model, and so open collaboration and contribution became easier.
the technical committee
This is what governs io.js and controls the direction of the repo. Concensus-seeking model. 8 members. Majority-vote wins. It's easier to see the direction that io.js is taking over node.js. Very open.
contributors behind io.js
All contributors on node.js who weren't working for Joyent work on io.js. 29 people, 8 on the technical committee. Anyone who works a lot on io.js can become a contributor. They are pretty active members of the community.
Isaac Z. Schlueter used to work for Joyent.
Question: Joyent's opinion on all this? Unknown. Hard to figure out where a lot of people stand on this. What does TJ Fontane(sp?) think about it? One TucsonJSer is interested.
io.js impact on you
They don't want to split off from node forever. They just saw a problem and want to address it. The benefits are faster and more predictable release-cycles. About 1 release every six days, and there's always a public discussion about when it's going to happen.
Both node and io.js rely on V8, which gets updated every chrome update, which happen almost every six weeks. Faster release cycles are the answer to this. Hard problem. Trying to get there.
libuv is an asynchronous file I/O library that is cross-platform compatible. Created by Microsoft to get node working on Windows?
Keeping up-to-date on both these libraries is really important, and io.js is trying make it possible.
io.js will have ES6 support natively as it's keeping up-to-date with V8. It's hard to know what V8 is supporting today.
Easy for us to contribute to io.js. Lots of good resources on where to contribute and how. (This seems like it'll be a good thing for me to focus on when I do open-source contributions.)
io.js impact on your computer
Works with npm. It redirects node path to iojs path. Omer prefers nvm to manage io.js and node.js installs. (Looks like I have a good reason to install nvm now.) nvm also installs handles io.js version updates.
did node.js close the gap on io.js
io.js is the platform of the future and node.js is a "don't get your hopes up". io.js is way ahead. Catching up to V8 4.1 or 4.2 for node.js is going to be a ton of work.
io.js has gained a lot of momentum
Lots of contributions from contributors to io.js recently. Way, way more than node.js. node.js contributions are falling way behind the past, too. node.js tailed off pretty dramatically. Again, io.js gets a release every 6 days.
Lots of positivity about io.js.
reconciliation
io.js team presented Joyent with a plan to merge it back into node.js. Needs to merge governance model, code and release process. Really boring to listen to. Lots of buereacracy.
Question: what's the motivation to integrate the two baselines? node.js is the brand. io.js wants to avoid confusion, and Joyent wants to maintain node.js popularity. Better to reconcile than to start a conflict. io.js people look better than Joyent at this point, and so Joyent has a lot to gain taking io.js help, and io.js people never intended it to be its own project.
Governance model may be the biggest merge problem. Governance needs to be a proper third-party, not some corporate board. Omer doesn't know how anyone makes money off this. Joyent makes money off servicing node, not the code itself.
Needs a longterm support product for mass use applicability, but JavaScript moves so much faster than any other thing in the corporate world. Seems a bit outdated to talk about these systems.
participation
Got to the io.js org site and see what you can participate in! (Totally going to do this.)
Omer sees a problem going forward where io.js switches to an API that causes breaking changes, and node versions won't be supported. Interesting change in JavaScript expectations. You can't control the browser people use to access a site, but you could control the node version servers use.
is io.js hipster enough?
Nope. People know about it. :P
questions?
Discussion about reconciling versions when node.js and io.js merge.
Core contributions to io.js will be C/C++ as well as JavaScript. Definitely interested in contributing to this. Connections to V8 and libuv are C++ and C, respectively. Lots of good work for contributors.
Any easy tags for io.js bugs and stuff? Omer doesn't think so.
It's worth trying to contribute anywhere you think you could improve something. API, documentation, bugs, etc.
io.js really exemplifies how the node.js community works. Big, open, and really interested in grabbing new perspectives and insights, and encouraging people to think "I can do this better" and fork the code and improve it. node.js started open-source out of a need that was addressed and actually given to everyone. Super cool.
io.js shows that the community will see problems and try to do it better, but want to work with Joyent and merge it back in. They aren't divisive or anything. They aren't condescending or mean, and help is done with good intentions. io.js didn't result from anger, but from frustration and the desire to fix a perceived problem.
Show and Tell
Eric's showing an io.js thingy.
While he's setting up: a group of TucsonJSers go up to the NodeAZ Meetup in Phoenix. People go up and present what they're working on. Good to see how people use node and stuff.
IOJS BUNDLER
I NEED AUTOMATION
Maintain's a TexTMate plugin for <ev> development.
Relying on external dependencies is a pain.
Wants a good builder for this. Wants others to be able to write their own plugins for the in-house programming language.
IT [IOJS] HELPS AUTOMATE
Run npm in installed context.
Hangout Time!
Hangout stops when last person leaves.