I'm exhausted. Tired to my bones, I'm clumsy in my sleepiness and put salt in my tea earlier. My brain is like a telephone box in a Guinness World Records attempt, crammed with a thousand writhing ideas fighting for position. Where am I? What happened to me? And was it worth it? The answers, respectively: I'm in Berlin, it was JSConf EU this weekend, and hells yeah - with bells on.
JavaScript has grown from a joke in coding circles ten years ago to the most ubiquitous and active language on the planet. 5 years ago, the inaugaral JSConf EU celebrated this growing trend. At that first conference, back in 2009, a young Ryan Dahl introduced a new way to run JavaScript on the server; he called this new technology "Node.js". Fast forward to the present day, and Node has seen a meteoric rise, handling with graceful ease the phenomenal amount of traffic to the Walmart site during the last Black Friday.
So would we see a similar ground-breaking announcement at this year's JSConf EU? It's too early to tell, but regardless, I feel like I got a glimpse of the future for the internet experience of billions of people - and it's going to be fantastisch!
After a delicious breakfast (setting the trend for food throughout the weekend), the conference was kicked off in considerable style with an amazing audio-visual display featuring live musicians piped through the Web Audio API, tweaked in realtime. It also gave me somewhat of a thrill to see Brandwatch's name projected to hundreds of members of the elite tech illuminati in gigantic letters as part of the sponsorship package.
The first talk of the conference was also arguably the best - Jake Archibald's introduction to Service Workers was mindblowing and hilarious in roughly equal measures. For the uninitiated, Service Workers will aim to close the gap between native and web apps by allowing such functionality as (proper) offline access, background sync and push notifications. Jake believes this could be the biggest change to the web since XHR ten years ago, and I'm inclined to agree.
The first day progressed with some great talks on subjects such as:
- Internationalisation as explained using similarities with Harry Potter (she made it work!). However, as my colleague Allard pointed out, we should be careful not to confuse locale with language; we should be able to browse amazon.de in English should we wish.
- Unicode and JavaScript's tempestuous relationship. tl;dr if users input rarer Unicode characters, your string handling code will break in tremendously bizarre ways. Matthias Bynens' Unicode libraries are your saviour here.
- Lessons from Air Crashes - "When a plane crashes, a thorough investigation uncovers the cause with methodical determination. When a computer crashes, we turn it off and on again".
There were also two talks in a more functional vein, James Coglan's talk was a breakneck tour of thought-provoking and mindbending ideas which left the audience shell-shocked and the poor stenographer approaching cardiac arrest. Matthew Podwysocki also illustrated why functional reactive programming and streams will have a big role to play in our future coding style. The focus on this style of coding resonates with my own experience organising Async, the Brighton JavaScript meetup where we've seen three talks on functional/reactive programming in the last six months; this movement seems to be gaining momentum.
Of course, there were also talks to make one realise just how much there is still to learn. Christoph Martens dove into some of the super low level details of the JavaScript Garbage Collector and other V8 internals, and Mathieu 'P01' Henri illustrated the intrinsic beauty of amazing audio-visual art pieces packed into the tiniest of file sizes.
It wasn't all hardcore JS on the first day though; the evening party was kicked off by the effervescent Tim Pietrusky showing how to build various LED dancefloor displays, and also how to convert the demo gremlins into added entertainment for the audience.
If that had been the end of the conference, it would have been one of the best I'd ever been to. But we were only half way through!
Day 2 kicked off with an intense adventure guided by Vyacheslav Egorov as he showed how to bend the JS Virtual Machine to run Smalltalk. If we weren't awake before, we certainly were after!
A good thing too, as we were about to be hit with one of those talks. I'd had a sneak preview of Mathias Buus Madsen's talk from a friend at Coldfront Conf, and it did not disappoint. Mathias expertly demonstrated the power of BitTorrent, and his ingenious node library to stream videos instantly, even allowing you to scan through as it's still downloading. Things took a turn for the crazy when he booted up Linux from an ISO using VirtualBox whilst the ISO was still loading. The possibilites of this technology are huge; and when combined with Jaswanth Sreeram's excellent demonstration on Parallel JavaScript, I started dreaming of a huge distributed network of browsers quietly crunching through massive datasets streamed via torrents to solve some of the world's most intractable problems. Not a new idea, but would be fun to do it in JS!
The rest of the second day was choc-a-block with high-calibre talks from people working hard to solve some of the biggest gripes in modern JS (Mark Knickel on how to refactor a dynamically typed language, and has Dan Mané finally nailed charting?). One of the more ambitious proposals came from Sergii Iefremov, who demonstrated a jaw-dropping JavaScript Kernel, removing several layers between the application and the metal it runs on. Other highlights included:
- A wonderfully geeky look at how the programming languages we use shape how we think from Jenna Zeigen.
- A monster demonstration of the power of the Web Audio API by Jan Monschke
- The inimitable Jan Jongboom showing how to turn a $25 Firefox OS phone into an IoT (Internet of Things) wonder-gizmo replete with cameras, proximity sensors and GPS.
- My new favourite web component: x-gif, taking GIFs to the next level. Glen Maddern's speech was hilarious and innovative.
The conference closed out with a captivating look back at the history of the tech scene, and a call to arms for Berlin not to model itself on Silicon Valley but to forge its own path. Lindsay Eyink kept the audience spell-bound throughout her well researched history, a perfect rounding off of a truly enlightening weekend jam.
So what were my takehomes from the conference, other than some awesome swag from Facebook and Google?
- Web components are starting to emerge into the mainstream. Ironically, after being excited about them for over a year, I'm having doubts about their declarative nature. Time will tell.
- Service workers have the capacity to tip the scales in the native vs web battle, they could be huge.
- JavaScript is undoubtedly one of most exciting languages around, and I felt deeply proud that Brandwatch were supporting this remarkable community by sponsoring one of the best programming conferences in the world.
Bring on JSConf EU 2015!