FullFrontal 2009

25 Nov 2009

As someone who’s gone from writing as little javascript as possible to making a hash job of doing it because he had to, and now to someone who writes a lot of javascript because I can see the power it brings to web apps, I thought it might be fun to attend the FullFrontal Javascript conference in Brighton last week to see what the expects were recommending and what was likely to be exciting in the near future for web development.

Despite being not sure what to expect, the conference was well worth attending. All the speakers had something interesting to say (at least for someone of my level of javascript knowledge), and I met quite a few interesting people (mostly everyone I talked to seemed to be a freelancer). Here’s some highlights:

First up was Christian Heilmann of Yahoo, who I’ve seen at a couple of events before evangelising YQL. He talked a bit about the history of how we use Javascript, and how a lot of the “problems” with Javascript are with the browser or the server rather than javascript, particularly with respect to security holes (which is right up to a point – there’s still some fairly horrible things in Javascript, but they’re language issues rather than security issues). He pointed out this report on web security trends that has a few interesting bits of information about where security issues are today.

Christian then went through YQL, which is great, but I’d heard already so processed other things at that point, but focussed again when he talked about how Yahoo make embedding other web content safe, using google-caja. This essentially will screen HTML and Javascript that’s being embedded in your page for security no nos, and then let it through if it’s safe. Seems an excellent tool if you want to enable widgets/plugins on your site, if you’re into mashups.

Next up was Robert Nyman, who gave an overview of the language, which is useful for people like me who just learned as we went along. I won’t repeat it all here, other than to say it’s worth a look at the slides, and I managed to follow the advanced concepts up to and including sugaring, but not including currying, which I need to sit down and figure out :)

Peter-Paul Koch of QuirksMode gave a talk about mobile browser layout/CSS compatibility. Basically the take home here was that it’s hard – even if you say a significant proportion of browsers use WebKit, the number of configuration permutations for WebKit mean that you still get a huge level of variability between mobile WebKit browsers.

Stuart Langridge gave a talk about what’s good about HTML5 and other new toys in browsers, before disappointing us all by saying that whilst a lot of them are currently supported, they’re not generally supported by a lot of browsers. Still, the nice things were: DOM tree querying by selector support (think what you do in jQuery all the time, but supported by the browser, which should bring a good performance bump); globalStorage as a cookie replacement (Firefox only currently, though you have userdata in IE); database storage in browser (only works in WebKit based browsers currently); and most exciting/frustrating is event polling support in browser to replace all the iFrame/comet hacks people do currently, but only supported in Opera.

Todd Kloots of Yahoo was up next, and gave an interesting talk on accessibility on web interfaces using the ARIA framework. Well worth a look, and something that gets ignored I suspect in the rush to web 2.0 interfaces that don’t mimic the way webpages are supposed to work (I’m quite guilty here). Basically, when making YUI, the aim was that all widgets should be keyboard accessible and work with screen readers, and looking at Todd’s slides it looks like it’s not a huge effort, particularly if you build it in from the start. The only bit that was missing from his talk was how to cope with accessibility for things like drag and drop (I guess you could do something like keyboard driven copy/paste?). But definitely something we should all consider more!

The penultimate talk was by Jake Archibald, who gave a delightfully educational and entertaining talk about javascript optimisations. There were no “you must/must not” do this, more a general overview of what you should be looking for, how to go about profiling it, and just demonstrating how small changes (particularly when using libraries like jQuery) can make a large difference.

The best though was saved to last, with Simon Willison’s talk on node.js – which a web server based around javascript. Sounds dull, but really this is a potentially very important shift in web server architecture. Basically, rather than having a small thread pool that processes each request, blocking as they do I/O to disk/db, you have a totally event driven server (and javascript is very good for writing event driven code). It’s well worth taking a look – the performance demonstrations were very impressive, even beating apache for serving static content on Simon’s laptop. But the really killer feature is when you start to do comet like long polling. If you want your web browser to hold open a long lived connection to your server then you typically end up running a second server for this, as Apache doesn’t scale well for that type of behaviour. But being event driven, node.js does, so you can have all your application logic in one bundle. Definitely something I want to have a play with.

Alas I had to skip out of the post conference party due to heading up north for my parents’ wedding, but the event was great, and I’ll definitely keep an eye out for it next year. As much as I don’t like javascript the language much, I still love it for what I can do with it. Creating web apps is a great way to get functionality to people these days, and the things you can do with javascript today make that much more exciting.