MLOC.JS - A Subjective Summary

It was fascinating and nice to participate in this year's MLOC.js conference, where the big guns like Google, Mozilla, Facebook and WHATWG were also present. The menu offered captivating presentations on a pleasant atmosphere bed; we tried to glance forward and see what the future of the web was (could be).

The abbreviation MLOC in the name of the conference originally stands for million lines of code. The event focuses on web-based JavaScript applications that come with a large, pronounced code base. It is worthwhile to discuss the development of these apps from different angles, as this field is in a constant change both in terms of tools and methods. Consequently, such apps might be flawed for a variety of reasons, and it is practical to share our relevant experiences. Just to mention the most basic problems: maintaining code quality and consistent coding style, and ensuring testability are only a few of the enthralling challenges.

The Venue

The venue was provided by Prezi in House of Ideas, their conference complex designed specifically for such events and dialogues - which might be familiar to many from JavaScript Meetups. The decorations for the event included pieces of geek-to-geek JavaScript wisdom, hung from the ceiling and decaled to the stairs. My personal favourite was “Answer to life: (+true+!+[])*7*3”.

There can be no complaint regarding the atmosphere of event; the milieu was open and nice. There were developers from all around the world and we understood each other with ease with American, Swedish and Israeli colleagues as well. Everyone was open to discussing their current jobs and projects, the stuff they enjoyed and the stuff they'd like to see improved. An American developer was so enthusiastic about his work that he showed us the apps he developed on his mobile. Then there were of course the usual SWAG that accompanies such events. After entering, we could see many with mloc.js backpacks, however only a few choose to wear the EPAM gloves that were inside the bag. Maybe because it was not as cold as winters come. The content of the presentations lived up to the expectations. In the following, I will sum up the happenings of these 2 days.


On Day 1, Jeff Harrell explained that PayPal was testing Node, and with some success as well: they finished their assigned project twice as fast as they would have done with Spring. Daniel Steigerwald called attention to the importance of developer trainings, the novelties of ES6, and the use of transcompilers. Afterwards came the „only for swimmers” section, when we dived into the depths of V8 optimisation and Mozilla object implementation. We have finally received a clear message regarding the latter: 'The frequent deleting of properties from objects results in a significant decrease in performance.' Then Maxime Chevalier-Boisvert awestruck everyone with her own JavaScript JIT translator, named Higgs. At the end of the first day, we went into a high-flying discussion as to what tail call optimisation was.

Following the weighty topics of Day 1, it was nice to have a beer in the frame of a get-together. The day was perhaps slightly on the deeper side, with too few practical know-hows. Others also admitted that they were too missing to-the-point tricks and tips, and they had also been expecting an approach that was more coding technique-oriented.

On Day 2, our wish was granted: we left behind the depths and the speakers switched to more popular topics and technological presentations. Dominic Denicola - introduced as a representative of WHATWG - spoke about the future role and consequence of Stream API. This is a project one should follow closely in the coming years. Stoyan Stefanov introduced React, and we also got to know Stratified JS afterwards. The end of the day was all for C-geeks and spectacular at that with the discussion of JavaScript as a platform for serious gaming and the related demonstration of a part of Doom 3 ran on JS. We also learned how to give orders from C++ to DOM with Duetto. The closing speaker was a Hungarian developer, ádám Rocska who gave a general overview of the architecture and structure of JS projects. Daniel, who had spoken on Day 1, joined in -unplanned but not reluctant- to call attention to the notion of “clean coding”.


All in all, the event was interesting and illuminating for any JavaScript developer. My only regret is that we got nothing of what the title promised: apart from one or two speakers, hardly anyone talked about the development of a JS app of million lines or related experiences. It was more like a really wide-ranging JS presentation, which, in turn, helps us widen our view as developers, so visiting the next MLOC will also be worthwhile.