Notes from the Fluent JavaScript conference

[2012-06-05] fluentconf, dev, javascript
(Ad, please don’t block)
Technical publisher O’Reilly organized their first JavaScript conference, called “Fluent”, May 29-31 in San Francisco. This blog post collects random impressions of mine from that conference. They should be interesting even if you haven’t attended Fluent (hint: links to videos).

Conferences: JSConf and Fluent

At $1195 ($995 Early Bird), the conference certainly wasn’t cheap, but you could see that O’Reilly spent that money on things that count at a large scale: a good, centrally-located venue, professional teams for the stage, the Wi-Fi, and various organizational tasks. Everything was well thought out (as an example, a small detail: the lanyard was attached to the name tag at two points, which meant it didn’t turn over and always showed people’s names). I held a keynote and the professionalism of the stage team was very helpful. Fluent marks an interesting next step in JavaScript conferences: JSConf is the original JavaScript conference, run by a tight-knit community with many anti-elitist mechanisms in place (example: there is no speaker’s lounge at JSConf). It is the little man’s conference with affordable tickets and I’ve heard many positive stories about its atmosphere. However, by now JavaScript’s community has greatly increased and there is a need to scale up. That doesn’t mean that JSConf will lose its value, but it needs a large-scale complement. As an example, whenever I’ve tried to get JSConf tickets, I was always unable to do so (being literally seconds too late).

The audience

According to O’Reilly, there were “over 900 attendees”, a clear sign of the aforementioned growth of the community. It’s always a bit self-congratulatory to praise the audience if you were part of them yourself, but I'll do it anyway: Even though there was a large amount of people, the atmosphere was relaxed and everyone was very approachable. Leading up to Fluent, I sensed a worry of “big business taking over”. Thankfully, it didn’t feel like that at all.

Keynotes

All keynotes are on YouTube.
  • JavaScript at 17”: JavaScript creator Brendan Eich briefly went over the history of JavaScript, dispelled a few myths (for example: JavaScript parsers are faster than the Java bytecode verifier, so speed isn’t always an argument in favor of bytecode), and presented new projects such as the Sauerbraten game engine. He also showed the JavaScript part of the lightning talk “Wat” (whose video went viral in the JavaScript community a while ago). Thankfully, he didn’t explain it, which I had planned for my talk (see below).
  • wtf.js: JavaScript as a First Language”: Codecademy’s Ryan Bubinsky talked about the challenges of teaching people how to program via an online JavaScript course. The biggest challenge for beginners is to get started. Thus, it is important to get them hooked with something before diving into the (often boring) specifics. Another challenge are JavaScript’s cryptic error messages. The Codecademy talk “FooLang.js” describes how they solved this problem, by writing an interpreter for JavaScript (and other languages!) in JavaScript. The corresponding project is online at repl.it.
  • Enyo: A Truly Cross-platform JavaScript App Framework”: Enyo was massively promoted at Fluent which makes me hopeful for its future. Well worth checking out.
  • Don't Feed The Trolls”: Nicole Sullivan talked about how to to best handle trolls (negative people on mailing lists etc.). Quote: “Some people are energized by conflict. If you aren’t, you’ll always lose.” It was nice to hear a meta-topic. I always find the psychology of software development interesting.
  • Federated Wiki Mashes Data in Your Browser”: Ward Cunningham was introduced as having created something that made it into the Oxford Dictionary (he is the inventor of the wiki). He talked about his newest project, the “Smallest Federated Wiki”. Quoting the website: “Our new wiki innovates three ways. It shares through federation, composes by refactoring and wraps data with visualization.”
  • Your Script Just Killed My Site”: Google’s Steve Souders talked about the challenges of integrating third party scripts into your website. He gives the example of Twitter support being loaded via a synchronous script tag. If the site is blocked, it can take up to 20 seconds until loading times out. One location where Twitter is blocked is in China, which meant that the corresponding website loaded very slowly there. The solutions are to load asynchronously or, at least, to put script tags after the content (e.g. directly before the </body> tag) so that the content is already shown while loading times out. Souders recommended webpagetest.org as a tool for performance-testing your website.
  • Tim O’Reilly mentioned that his company supported JavaScript early on, even when most people still thought it was a toy language (arguably that is still the case). O’Reilly’s first JavaScript book came out in 1996 (David Flanagan’s “JavaScript: The Definitive Guide”), truly a long time ago.
  • Javascript Development Workflow of 2013” by Paul Irish. Great overview of tools and techniques.
  • Improving JavaScript” [slides]: I talked about the difficulties of evolving a web language, JavaScript quirks and how ECMAScript 5 and ECMAScript.next fix them.
  • Bookmarklets as Applications”. Gary Flake talked about the challenges of implementing the technology behind his startup Clipboard. It was recently mentioned on Hacker News (read for technical background). Clipboard lets you archive parts of a web page. I can see myself using it to store schedules etc.
  • Turning to the Client Side”. Lea Verou talked about moving more stuff from the server to the client. I’m glad this is happening, I much prefer client-side functionality to server-side functionality (where possible). The talk also included a social experiment: How do people react to a picture of a scantily clad man (as opposed to a woman in a bikini)? Quoting a tweet of hers: “I disagree with the whole idea that it [showing semi-nude people in presentations] is inappropriate. I just think it needs to be done to men too, equally.”
  • Web vs. Apps”: Ben Galbraith and Dion Almaer argued that it is increasingly difficult to define what actually distinguishes the two. When doing so, one must keep two aspects separate: The web as a delivery platform versus the web as a technology platform. For example, you can use HTML5 to write your app (web as technology platform), while deploying it via the iOS app store (native app as a delivery platform).
What stood out was that all people on stage were coders. There was little to no business speak.

Talks

I didn’t have time to go to many talks.
  • Peter Cooper talked about “JavaScript Jumble”. Among other things, Peter publishes the informative email newsletter JavaScript Weekly (you are probably already subscribing to it; if not, you should). He mentioned that while email might seem anachronistic, it has proven to be a very effective format for him (he has experience with other formats such as RSS), especially for advertising. At the moment, JavaScript weekly has over 26000 subscribers.
  • I went to Nicholas Zakas’ talk on “Maintainable JavaScript”. His book by the same name is a good collection of JavaScript best practices. His precision stands out in a world where there is too much sloppy and half-true information on JavaScript.
  • Another smart guy is Ariya Hidayat, who talked about “JavaScript Parser Infrastructure for Code Quality Analysis”. His parser Esprima is an invaluable tool in the JavaScript world: It is fast, well documented and (as far as I am aware of) the only parser that keeps comments. That latter feature is essential for many generation tasks. Furthermore, Esprima allows you to parse source code, transform it and then write it to disk, while preserving whitespace and comments.
  • My talk was about “Fake Operator Overloading” [slides]. In addition to the technique of fake overloading, it covered how JavaScript converts values to primitives, how the plus operator works and the reasons for the WAT results.

Related material

O’Reilly has published a “Fluent 2012” photo set on Flickr. I wrote the article “The Past, Present and Future of JavaScript” for Fluent. Over time, it got much longer than I expected (it now has over 8700 words). I’m happy to announce that O’Reilly will publish it as a free mini-ebook. It will come out in the coming weeks. Subscribe to either @rauschma or @fluentconf to be notified when it does.

Related 2ality blog posts: