The random utterances of David Arno

QCon London 2013 – Day 1

QCon logoLast year, I missed QCon due to work commitments, but this year I’m back there again for three exhausting, but fun, days of high quality software education. But being there is only part of the story. The other side to the experience is the bizarre world of the London commuter.

I’m a lucky soul, though given my love of a good moan about everything in life, you could be forgiven for not having realised this. My place of work is just a short, hassle-free, 20 minute drive through the Sussex countryside away from home. I leave for work at around the same time as the kids head off to school and I’m home long before they go to bed. Not so when visiting London though. QCon starts at 8:30, with presentations by the track organisers on what their tracks will cover that day. It’s a useful thing to attend, as – let’s be frank here – some speakers are better than others, and I’ve found I can get a good idea of what a track’s speakers will be like just from listening to the track organisers pitches. My train to get me there on time departed at 6:50. It’s a weird experience travelling at that time. To my mind, no right thinking person would do a job that required catching so early a train, yet it was nearly full as it pulled in to Lewes. Folk further away had got up even earlier to go to work. Mad. Arriving in London at just after 8:00, I was swept along by thousands of silent folk walking rapidly and determinedly to their place of work. Attempting a slow pace is nigh on impossible, for these folk are in a rush. It’s a novelty for me, yet I cannot fathom why anyone would want to do this to themselves on a daily basis. I’m thankful I need only do it for a few days a year when visiting customers or going to conferences and training courses.

So to the conference itself. The keynote this year was entitled “The power of abstraction” by a lady I’d never heard of before, Barbara Liskov. Toward the end of the talk though, I suddenly realised just who she was, which left me feeling a little silly over my ignorance of her significance in the world of programming.

Barbara explained how she had started out in software in the early 70s, when the industry was in crisis. Back then, languages had no concept of modularity, abstraction, encapsulation etc. It’s tempting to say “a bit like today with JavaScript”, but it was much worse than that. JavaScript has these features, even if using them is unintuitive a they aren’t always used, whereas languages of the early 70s, such as Algol, genuinely lacked anything like them. Soon after getting her PhD, Barbara was offered a job at MIT, where she started developing a new language that had these features, specifically one that supported abstract data types. The language, CLU, took some brave decisions, for example to exclude gotos and to avoid inheritance. In 1968, Edgar Dijkstra had written a paper in which he described goto as harmful. This paper was met with a lot of criticism and the dinosaur-brigade (which appeared to exist even back then) insisted Dijkstra was insulting them by suggesting their use of gotos was bad! Despite this, smart people of the time saw the sense in this and some – including Barbara – were motivated to do something about it. CLU had other features that many – myself included – might assume were more modern ideas: generics (she called this polymorphism back then), iterators that worked in the same way as C#’s yield and even exceptions.

Barbara then moved on to talk about more modern OO languages, which have in part been inspired by CLU. She expressed disappointment that they had all adopted inheritance models, despite her having worked out it was a bad idea 40 years ago. Then she mentioned the Liskov Substitution Principle and how she hadn’t invented the term. Eh? Oh shit, I was listening to that Liskov.

I’m actually really pleased I only worked out who she was toward the end of her talk. It’s all too easy to be impressed by the person, rather than the message, in such situations. I loved her talk for its excellent content. The fact that I was in the presence of such an awesome person only added to this.

I attended a great mixture of other talks throughout the day:

  • Web Development: You’re Doing it Wrong, Stefan Tilkov. Stefan ran through numerous examples on how web developers seem hell-bent on misusing HTML and the browser at every step. Examples are not supporting the forward and back buttons, resetting back to the login page when refresh is pressed, having links open in new windows, forcing links to open in the same window, and presenting a blank page to the user when they have JavaScript disabled. This was a good talk, that nicely summed up how best to develop for the web, by suggesting developers should use the features of the browser and HTML, rather than fighting them.
  • Confessions of an Agile addict, Ole Friis Østergaard. This was very much a talk in the style of Try { Harder }. Ole began by examining what it means to be addicted to something and how – running for example – some addictions can be seen in a good light. Ole saw his love of agile in this way too. He then went on to examine the benefits of TDD, retrospectives and pair programming and how these can be seen as cures for negative emotions and bad behaviours. It was an unusual way to tackle the subject, which may of had its critics. I liked it though.
  • How to rescue our kids: fixing the ICT crisis at school, Simon Peyton Jones. Software development has a crisis in the making, in terms of future developers: our kids in school. Whilst computers are fun, the way they are taught in schools, through the ICT curriculum, is dreadfully dull and lacks anything remotely resembling computer science. Children are taught how to create spreadsheets, use a web browser and the like. And that’s it. Over last five years, there has been a drop in both boys and girls doing IT A levels. In 2009, none of the English exam boards offered a computer science GCSE. So a group, called Computing at School Working Group decided to try and fix this. Their aim was both simple and huge: reintroduce proper computer science as a subject to be taught from primary school. Through lobbying government, and with help from the like of the Royal Institute and the Raspberry Pi catching the media’s attention to the matter, things have gone from dire to exciting in just a few years. In 2013, all five awarding bodies now offer CS GCSEs. The depertment for Education is in the process of replacing the ICT curriculum with a Computing curriculum for KS1-4 (5 to 16 year olds). As Simon explained though, this just means we’ve won the air war. We now need to fight the ground war, to get teachers trained to a level where they can teach computing properly. And this really is a “we”. Every developer in the country can help by joining CAS, running after school clubs, helping to mentor teachers, and by offering to help teach computing to primary age children in the classroom. I recently started running a Code Club after school club at my daughters’ school. What about you?
  • HTTP/2.0: Challenges and Opportunities, Mark Nottingham. The web has a problem: HTTP. Web pages are growing larger and more complex, involving many request/response cycles to complete the page and TCP works badly with HTTP. These problems are particularly severe with the fastest growing sector of web use: mobile. The mobile Opera browser even seeks to solve this by bypassing HTTP completely if it can by using its Opera Turbo proxy mechanism. Google have been working on an another alternative: SPDY. So the IETF have set up an HTTP working group to look in to a v2 of HTTP. The group is considering some pretty radical ideas, such as it being binary format (no more using telnet to examine HTTP responses, new tools will be required) and having the server automatically push CSS, JavaScript and image files associated with a page, rather than waiting for requests. The migration won’t be easy though, and it’s possible that the http and https protocols will have to be replaced with new ones. Even this might not be enough to solve all problems, so the group is even considering alternatives to TCP.

The closing keynote session highlighted the importance of the old saying “never judge a book by its cover”, though in this case it was “never judge a talk by its title”. A colleague and I had joked before the conference that QCon must be getting desperate for talk ideas to have one called “Fun with dead languages”. Damian Conway proved us utterly wrong. His brilliant, bizarre, hilarious and plain scary talk is near impossible to describe whilst doing it justice. He took us on a code walk through of a Postscript (a completely stack-based language with no variables of any sort) program that demonstrated a French mathematical theorem related to dropping pins on to a striped table. He showed how, by gross misuse of C++’s operator overloading features, he could use “long arrow notation” (literally –>, ——> and the like) to draw state graphs in code. Finally, he used Latin (surely the ultimate dead language) to write a program. Really. Due to the curious fact that Latin uses word endings, rather than sentence position, to convey meaning, his Latin programming language could have its syntax reordered without affecting functionality. A serious case of “you had to be there” and a cracking end to the first day of this year’s QCon.


Share This Post...
1 comment so far, click here to read it or add another

1 Comment so far

  1. Julio sanchez March 7th, 2013 10:23

    Nice article about QCon.
    On commuters, it is easy to get stuck in a rut to the point that you forget the reason you go to work is to earn money to have a life, missing the fact that much of this life is drained by commuting to the job. This is why Londoners in the morning resemble zombies on the march, soulless individuals that would be experiencing self-loathing if they could only work up enough enthusiasm or even remember what it is they want in life anyway. I had a 4 hour commute each day but didn’t know any differently and thought I was happy, I move to a job I could cycle to in 15 minutes life was totally openned up, I actually was able to play golf in the evening. Now I am back commuting for 1.5hours a day and I am looking to move closer since even 1 hour is too long. Sounds like you have it right 40 minute commute a day – perfect, you must be far happier than those London sorts :)