A few of us here at Badoo were lucky enough to travel to Berlin in October for JSConfEU. It was a fantastic conference, the quality of the talks was incredibly high covering topics from the future of JavaScript, to why sometimes you need to draw animals. There were so many great talks, but I just want to give a quick overview of the ones that those of us who went enjoyed the most.
Nat Duca: Advanced Jank Busting in Chrome
When trying to get to the bottom of rendering issues we often turn to the Timeline panel in the Chrome dev tools, which is great for showing forced layouts or paints that are taking a long time. However Nat Duca gave a whistlestop tour of a relatively new feature in Chrome called Tracing which allows you to see right into the heart of the rendering process. It is available by visiting chrome://tracing in the browser, and it initially looks a bit underwhelming but don’t be fooled, this is an incredibly powerful feature. In Nat’s talk he is using Chrome Canary, but I think most of the new features he discusses are available in Chrome 30.
Addy Osmani: Object.observe()
Many popular JavaScript frameworks around at the moment have data binding built in and each implements it in a slightly different way, but all currently have to result to what Addy Osmani refers to as “dirty checking”. This is because there has historically been no way to “watch” an object in JavaScript, and be notified when it changes, but that is changing with the introduction of Object.observe()
. Although currently only available in Chrome Canary it should be landing in Chrome soon. Addy’s talk contains some very detailed examples of Object.observe()
could be used to improve the data binding implementations in JS frameworks.
Forbes Lindsay: Promises and Generators
I think that the introduction of Promises into JavaScript has to be one of the biggest single improvements to the language. The asynchronous nature of many operations leads many developers into a callback hell that makes code hard to read and error prone. Forbes’s talk goes beyond Promises though and talks about generator functions and the yield
keyword and how when all these things are brought together we can bring beauty and elegance to asynchronous JS code.
Bartek Szopka: Everything you never wanted to know about JavaScript numbers
This is an amazing delve into numbers in JavaScript and how they work. My personal favourite is at 22.00 where NaN
is explained, although this whole talk is numerical gold. Even if you are not dealing with complicated maths day to day I would still recommend taking half an hour to see what’s going on under the hood.
Alex Feyerke: I have a Dreamcode: Build Apps, not Backends
Hood.ie recently posted a great blog post about “offline first” which has had lots of positive feedback from the web development community. Essentially it is an extension of progressive enhancement, in that you build your application with the assumption that the user will be offline most of the time. Alex Feyerke from Hood.ie and made a compelling case at JSConfEU for a backend-as-a-service style architecture in which the web developer doesn’t need to worry about the implementation of registering users or saving their data. The API they have put together looks elegant and I think this could be the future of prototyping web applications.
Brendan Eich: JS Responsibilities
If you can understand more than 50% of this talk you deserve a big shiny medal. It’s really excellent to see that the creator (if you will, father) of JavaScript still so passionate about pushing it forward, and also to see Doom running inside of Unread Tournament running in Firefox (27mins in).
I couldn’t possibly list all the talks we enjoyed here, but they are all available on JSConfEU’s YouTube channel so go watch them!