MixIT 2015

Conference: Change mind about JavaScript

The Mix-IT conference

Created in 2011 and hosted in Lyon, this conference is organized by Lyon JUG (Java User Group) and CARA (Rhone-Alpes Agile Club), and has this dual goal to share knowledge and activities around progamming (Java and friends, Web and mobile technologies…) and agility (Scrum, Kanban, Lean, DevOps…). It’s intended to developers, project managers, entrepreneurs, with a strong will of being polyvalent (parallel tracks, conferences, games and workshops, English and French) and cheap (50€ for 2 days, lunchs included).

The small core team made of a dozen IT professionals works with various schools and their student, that are freely hosting the conference. In 2015, around 550 people attended to 7 keynotes, 37 talks, 20 workshops and 19 lightningh talks animated by 72 speakers. 7 parallel tracks, 1400 thin pancakes, delightfull bio sandwitches.

<img src="http://feugy.github.io/image/mixit-2015-2.png" alt="First key note in CPE amphitheater. [© Mix IT 2015](https://www.flickr.com/photos/132667704@N02){:target="_blank"}" />

First key note in CPE amphitheater. © Mix IT 2015

<img src="http://feugy.github.io/image/mixit-2015-3.png" alt="30 seconds to convince audience to come at our talk. [© Mix IT 2015](https://www.flickr.com/photos/132667704@N02){:target="_blank"}" />

30 seconds to convince audience to come at our talk. © Mix IT 2015

Even children are invited, with MixTeen, a special event during the second afternoon, where they can discover programming with Scratch, and make their own games. With demonstrations to all attendees at the end of the conference !

Change mind about JavaScript

At work, in my team, we had used ES6 since January 2014 with Traceur transpiler, and I really whished to do a feedback. As the company is intensively using Java, it had always been difficult to promote JavaScript, always seen as a toy for web kids. Even with an almost ten years experience on medium and big size projects, it seems to be not enough to be taken seriously.

But with ES6 comes classes, modules and arrow functions, which are 3 things that may cut the grass under feet of grumpy java advocates. I use JavaScript since 2006, and learned that classes and inheritance are not always the best choice for programming. But they remain concepts that (in France) make developers feel more… serious.

This talk was firstly the occasion to attract JavaScript haters, and perhaps make them revised their opinion. So I gave it at Worldline, to show how the language was evolving, and to convince that working with Node.js in ES6 was a serious alternative to Java in some cases. And I had the chance to give it at Mix-IT, to touch a wider audience, probably in the same situation in their own companies.

The talk itself

My first intention was to give that conference at Mix-IT 2014, which was a bleeding edge topic. But that spring, my daughter was born, and I can’t even attend to the conference.

One year later, plethora of blogs had posted on the subject. So my strategy to innovate was to take a real project example that use ES6 main features, and to do a bit of storytelling.

In the project I was working for, I had written a small long-running jobs orchestrator, nammed “pilot”. Based upon two simple classes (Task and Parallel), we used it to make data workflows involving several distributed jobs written in Scala with Spark.

Pilot's internal classes, extended by specific business classes

Pilot’s internal classes, extended by specific business classes

For the demonstration, I’ve implemented a small workflow to retrieve Chuck Norris facts (through an API) in parallel and sort them by popularity. By describing the implementation of those classes, I gave example of use for:

Of course, I did not had time to show examples for Promises, Generators, new collections, Proxies…

Talk’s slides (in French)

A video was published on infoQ, but unfortunately slides are not synchronized with audio track. The audience had seemed to appreciate the talk, even if I spoke a bit too much before lunch.

The audience's feedback

The audience’s feedback

Code is available on github