Our front-end developers recently attended DotJS, an annual conference on state of the JavaScript world that happens in Paris. 2016 was its biggest year yet, with over 1200 attendees filling the enormous Pullman Dock venue. The talks ranged from high-level concepts of the latest and greatest frameworks, to an in-depth explanation of how memory works in Google’s V8 JS Engine. A common theme throughout the talks was the optimism for the future of JavaScript and the web, and the exciting things that are coming soon. Below are some quick recaps of several noteworthy talks:

Native apps vs. the web

The web is under threat from native apps, in the same way that it was threatened by single-vendor solutions like Flash and Silverlight in the early 2000s, said Microsoft’s Nolan Lawson. He wants to keep the web moving forward with Service Workers and delivered a very convincing argument for his case followed by a crash-course on how to implement it.

He argued that web developers can get loads of benefits from Service Workers and still maintain the native app experience! Basically, a service worker is downloaded and installed on the client and then activated. Once active, it runs as a background process that can receive and emit fetch, push, and sync events. That means web apps can continue to function offline, checking back in with the server periodically or when a network connection is available. They can also push notifications to the user even when the browser isn’t running and sync data to make sure everything stays up to date.

The spec is on the w3 site and as always, a good explanation of core concepts can be found on MDN.

Further into the future…

Ada Rose Edwards from Samsung spoke about a very exciting vision for virtual reality! She thinks the VR devices we are seeing today can be compared to clumsy and cumbersome mobile phones when was first introduced in the 1990s. VR is steadily making its way on to the web – there are even entire browsers that work inside VR headsets now – so 2017 is a good time to start thinking about how VR can improve websites, and how to bring the immersive VR experience to the web. There’s a nice example of what, developers will be able to create at gun.playcanvas.com, which makes great use of WebGL, WebVR, and finely-tuned lazy loading amongst other things.

Tools of the trade

Everybody’s seen the article on how it feels to learn JavaScript in 2016 – so many tools are popping up and quickly going out of fashion. It’s hard to know the obvious choice for the job at hand and the best way to avoid regrets later.

Github’s Zeke Sikelianos presented loads of great tools to make these decisions – to navigate what he termed JavaScript Userland. These included websites, CLI tools, and browser extensions. Some interesting ones that stood out for example:

DuckDuckGo’s bangs for quickly navigating to various docs – searching `!ng directives`, for example, leads users directly to the Angular documentation on Directives.

Browser extensions OctoLinker and npm-hub enhance GitHub repository pages help users gather more information about a project and particularly its dependencies before deciding whether to use it or not.
NPM package `trymodule` lets users play around with packages in a Node REPL before installing properly.
Libraries.io lists over 2 million open source libraries. It pulls in stats and the Readme from the library’s GitHub page and its NPM (or other package manager) page, and generates a tree of its dependencies.

{LiveJS}

Possibly the highlight of the day was Sam Wray and Tim Pietrusky’s performance. Sam makes 8-bit music with Gameboys, and he wrote the ModV JavaScript library to create music visualisations. He teamed up with Tim, who loves playing around with hardware and all things audiovisual on the web, and together they came up with an LED curtain that plays random live visualisations generated by ModV, as Sam makes music. All the visualisations, lights, and even a fog machine were controlled by JavaScript! The Youtube video is definitely worth a watch (the performance starts just before the 14 minute mark).

It a really inspiring presentation, and when asked if they thought the web was the best platform for it, they pointed out that they were using technologies they know and love – JavaScript and the web are much more accessible than more targeted technologies, and the Web Audio API can do some impressive things.

ngChoices

The final talk of the day was from the lead Angular dev, Igor Minar, who explained the journey that took the team from Angular 1 to Angular 2, and why they made this decision. After such a huge community backlash to the announcement that Angular 2 wouldn’t be backwards-compatible with Angular 1, Igor’s talk defended the framework’s stability and longevity.

Despite a lot of very public rivalry between the Angular and Ember teams, some of the core Ember developers met up with the Angular team and helped to create the new CLI, reusing a lot of code from Ember CLI. Similarly, despite competition between Microsoft and Google, Microsoft’s TypeScript team worked closely with the Angular developers to integrate TS into the heart of Angular 2. The new framework’s unidirectional data flow concept was inspired by ReactJS among many other influences from popular frameworks like VueJS and Redux.

Lightning talks

A five-minute presentation format on the mainstage, here are some quick roundups:

RxJS, a library for writing functional JavaScript code for async operations
Tips for using code linters with version control
How to carry out a NoSQL injection attack on Node/Mongo with ease (including the scary tidbit of information that a single injection could drop the entire database in Mongo 2.4>)
A static website generator useful for shared hosting or other areas where a SPA isn’t possible, based on React (https://phenomic.io/)
An explanation of functional reactive programming (a concept that several speakers acknowledged still remains undefined, but it’s a popular buzz phrase at the moment). Thomas Belin used the metaphor of the speaker being a website user, and the DotJS audience being the UI, that responds to what the user does – with time being the common denominator in all web apps
Using bitwise operations in JavaScript – which can vastly reduce the size of games and other programs that manipulate a matrix of tiles of pixels. The talk lost a lot of its effect however, when Gonçalo Morais finished by saying that binary JavaScript probably shouldn’t be used in production…
A system of distros for Vim: Bertrand Chevrier proposed a system similar to Linux distributions, whereby a developer chooses a set of Vim plugins and tools specific to a certain need (in this case, front-end JavaScript development), bundles them all together with an installation script, and makes them available online with comprehensive documentation.

All in all, there was a great range of content at DotJS this year. It was particularly interesting to hear JS experts’ opinions on the current ‘hot’ frameworks, as we’ll soon be making the framework decision for our next project at Locala – we’ll be doing mini Proof of Concept applications with at least Angular2, VueJS, and React // we’ll be better informed for making the decision now! //.

Written by Cassie Brooks (Front-end Developer)