Report-back from JSConf 2009

Raoul Millais, one of our .NET lead developers, reports back from JSConf 2009:

I finally got round to spending some time this week watching the videos from last year’s jsconf in Berlin.  There are some really good talks up there and I highly recommend taking some time to watch them.  It’s absolutely incredible what there is going on in the JavaScript world at the moment.  Almost all the talks fell into one of three categories, which mirror the most exciting areas of development in the JavaScript world today.

Flash is dead, long live HTML!

I think we’re a few years off common use cases for much of the WebGL and canvas stuff in business-class web applications, let alone cross-browser adoption. I can certainly see the improvements in the areas of geolocation for mobile devices having immediate application. Likewise webfonts, web forms 2 and the new HTML elements such as audio and video will be immediately useful and give decent productivity boosts. When can I use… is a hugely comprehensive site detailing all the current browsers’ support for “features in HTML5, CSS3, SVG and other upcoming web technologies”.  If you haven’t had a chance to look into the upcoming web standards then this is a good place to start.  Some time spent studying this can give you a good idea of what is realistically achievable across current and past browser versions.  There truly is a vast amount of information on there.  Thankfully, some clever guy has written Modernizr – an awesome unobtrusive JavaScript framework for detecting HTML5 and CSS3 capabilities in browsers.  It makes the browser’s capabilities available on a global Modernizr object as well as applying a ‘no-featurexxx’ css class to your elements so that you can provide non-native JavaScript implementations in browsers with poorer support for the features you want to use.  This allows you to use these new features now and makes it straightforward to have them degrade gracefully in older or less compliant browsers.

Desktop Class Applications on The Web

There is a lot of buzz around Cappucino at the moment and one of the talks was by one of the founders of 280 North, Francisco Tolmasky.  It is essentially a port of the Cocoa framework APIs to an Objective-C like superset of JavaScript called, appropriately, Objective-J.  I’m not sure I’m entirely comfortable with some of the techniques they are using to make this possible and some of the implementation doesn’t feel particularly “webby”, but I hear, Francisco addresses somes of these concerns in his talk at the JSConf in Washington.  Never-the-less, this is an incredibly ambitious undertaking and the results are seriously impressive.  Not least is their Atlas application, which is an online user interface builder, as well as 280 Slides the cappucino example app. My personal favourite is Mockingbird, an online wireframing tool.  It is similar to the flash-based balsamiq but using plain-old HTML and CSS with the cappuccino framework.  Best of all: it’s free for the moment!  I can definitely see myself using this.

Ajaxian founder, Dion Almaer, gave the keynote talk.  He spent a good deal of time showcasing Bespin, an online collaborative code editor.  Some of the statistics he gave on the scalability of the app, really prove how viable this type of app is on the web.  Bespin was one the first truly desktop-class web applications and has been around for a while now, and if you haven’t already you should check it out.  Dion also mentioned the open-sourcing of closure, which happened just before the conference.  client-side templates which compile into JavaScript are particularly neat.  Although, it wasn’t mentioned, Underscore provides similar functionality and I definitely intend to use something like this in the future to reduce the, often long, jQuery chains, we have to resort to for creating new view components on AJAX callbacks. I wouldn’t be surprised if it wasn’t long before someone creates a nice lightweight JavaScript MVC framework based on one of these libraries and jQuery.

Serverside JavaScript

Another common theme was the current CommonJS standardisation effort. Ars Technica has a good overview article, if you haven’t come across it yet.

Although this side of JavaScript doesn’t have any obvious immediate applicability to anything I currently work on, I think the developments in this area are some of the most exciting.  Ryan Dahl’s talk on NodeJS, an event-driven asynchronous I/O framework, was one of the most compelling and even received a standing ovation, which is unusual in front of a European audience!  I can see his vision of concurrent programming paradigms influencing language and API design in future versions of many popular programming platforms.

There was a whole talk devoted to CouchDB as well as plenty of notable mentions.  This blog post is already growing quite big though and Couch is an important enough project to merit a separate post at some point, so I won’t say much here.  Suffice to say, if you are not aware of Couch yet, you should be!

One notable omission in the talks in this area was the new Gnome 3 Shell.  It’s a real shame there was no talk on this, it would have been a great opportunity to bring the Gnome desktop to a wider developer audience.

Leave a Comment