goto Aarhus 2012

16 October 2012

The last couple of months have been heavy on the travel (towards the end of it I calculated that I'd spent 40 out of the last 44 days on the road) which is why my website has been quiet. Now I'm back home again and can reflect on some of it - and the goto conference is always full of things to reflect on.

The goto/infoQ conferences put a lot of emphasis on new thinking on data before they became fashionable, so again there was quite a bit of that this year. There were a couple of tracks that focused heavily on NoSQL technologies, one gave a quick tour of many leading NoSQL databases, another concentrated on their applications.

The large scale usage of Cassandra by Netflix was particularly interesting and I want to take a moment to show my appreciation for the openness of Netflix in sharing their lessons and tools. Too often our profession's progress has been held back by secrecy that's born more out of vanity than any real competitive advantage. Netflix is a delightful example of companies that are both pushing the boundaries and sharing their tools as they go.

Indeed the new data panorama was a theme in my travels beyond just goto. Many of my colleagues are exploring the possibilities both in their client work and in the spare time. It's the bit of computing that I'm finding most compelling at the moment, with lots of opportunities to explore new techniques and find new ways for software to improve the work of its users. It also provides an opportunity to push back against the sad tendency to see developers as a passive recipient of requirements. Many of the opportunities offerred by the new data world can only be seen by those closer to the technology, so I'm hoping this could tilt us back towards ConversationalStories.

Another theme that struck me was the growing centrality of javascript. Scott Hanselman's keynote featured a showcase of unlikely ways in which javascript, running in a browser, is doing things that many people find surprising. And, of course, there was Anders Hejlsberg's closing keynote, with another approach to taming the monstrous complexities of javascript.

I like to tease colleagues who are delving into modern, sophisticated languages like Clojure, F#, and Scala by claiming that Javascript is the only language of the future. While it's fun to pull peoples' chains, it's not a cheerful thought - I'm one of those who despairs that a language with such deep flaws plays such an important role in computation. Still the consequence of this is that we must take javascript seriously as a first-class language and concentrate on how to limit the damage its flaws cause. There's a lot to like in Microsoft's TypeScript approach, and it's something I can easily see myself using over the next few months - where I'm hoping to get more time to spend on work that will involve more javascript than any sane person would like.

Javascript was one common theme to Scott and Anders's talks, but there was another element that was every bit as important. Back in 2007 I wrote about how Microsoft had struggled to co-exist with the open-source world. I later learned that my little article had set off a small tempest, with various Microsoft managers denouncing my criticism and labeling me an irredeemable enemy. Such a reaction was discouraging but fortunately other, stronger, forces were in play. Both Scott's colleagues in the ASP.NET / Azure worlds and the TypeScript team have a degree of openness which would seem shocking just a few years ago. TypeScript is sitting on codeplex, and implemented in itself so is as easy to run on Macs and open-source unixen as it is on Windows. My sense is that Microsoft is very much a factional organization, with many factions still deeply inimical to the open-source world, but with such large factions now working on coexistence with open-source, many developers with a long standing distrust of the Evil Empire should be reconsidering where to direct their suspicions.

Anders Hejlsberg's keynote was the second successive year where a keynote at goto talked about an important technology to fix the flaws of javascript

Another speaker who talked about the browser-centered future was Dan North, who gave a wildly entertaining performance to a packed room on the evolution of browser applications. During this he indicated how little he cared about the many developments of graphics; while I mostly share his insouciance I will disagree over one technology: SVG. SVG is more than a standard to get vector graphics on the web, the more important impact of SVG is that it creates vector shapes as elements in the DOM, where they can be accessed by javascript and CSS. This I think is a profound shift. You can see one consequence of this by perusing the d3 gallery, where you can see how this rethinks the world of data visualization. At the moment the web is still a world of static text and images, with video present but essentially alien. SVG opens up a toolbox for animation and interactivity which I'm thinking could imply a big difference to how we use the browser for both application UIs and publications.