2010: A personal retrospective

! Warning: this post hasn't been updated in over three years and so may contain out of date information.

For me, 2010 has not been dominated by computers or technology, despite that being effectively both my work and main hobby. Instead 2010 has been dominated by our house. We have had an extension built on the side of the house that contains our new kitchen diner and study. However I found many parallels between this extension and software development, plus the year has been far from technology-free.

The extension involved 3m deep trenches being dug and filled with concrete to underpin a garden wall and provide a solid foundation over a sewer pipe. The position of lights and sockets and radiators had to be chosen. The kitchen needed designing, the tap, sink, hob, cooker hood and oven sourced, blinds made, walls painted flooring laid etc. A party wall surveyor was needed to document all the existing cracks and defects in our property and that of our neighbour. A structural engineer was needed to calculate steel beam strengths, foundation depths and so forth. Planning permission was needed and everything had to be approved by building control. All of this of course was on top of the obvious need for an architect to draw up plans and a builder to implement them.

Whist the extension has been exciting in its own right, it has also been interesting from a technical point of view too. There is just so much more to it than drawing up plans and building something to those plans. The thousand little extra details are what turn it from an expensive box into an extension of the home. It isn’t just about the features, such as the dimensions and what the room is used for. It’s also about the flow of the kitchen, the material for the worktops and desk, the wall colour, the floor type. It’s about it being an enjoyable place to spend our time. In short, it’s all about the user experience, specifically it’s about a good experience for myself and my family. Others may dislike it: they may prefer less art on the walls and more kitchen gadgets for example. There are also aspects of the decoration that have challenged my prejudices too. For example, the walls are painted plain white; something I’ve sworn over the years that I’d never do. Yet it works because there is so much else in the space that little of the walls show and the white works well.

Drawing parallels is always a risky thing to do, for they can often be highly contrived and exist only in the mind of the author desperate to make the link. However I feel there are strong parallels between our extension and many of my blog posts this year. I’m sure that this is no coincidence. Just as I had to pay attention to detail with the build, so I seem to have paid a lot of attention to the details of the AS3 language this year, with my AS4 feature series (Passing accessors by reference, Implied interfaces, Java-style enums etc.) As well as challenging my decorating sacred cows, I’ve also challenged the use of the private keyword and questioned whether OO does inheritance wrongly. Just as I gave in on the white walls, so I gave in on old practices: private is consigned to the “goto” scrapheap in my code these days, and quite frankly the lack of “duck typing” in AS3 inheritance now bugs me greatly. Most importantly though, just as I’ve learned there is far more to building an extension than employing a builder, so there is far more to software development than writing code. I’ve covered topics from suggesting people listen to podcasts to become better developers, through the importance of user testing feedback to advice on good exception handling practice.

As well as the extension, another exciting personal experience for me this year has been my adventures into the world of public speaking. I’ve had the pleasure of presenting talks on ASDoc, Test Orientated Development (TOD) and AIR for Android to the great folk at the dotBrighton user group. The greatest event of the year for me though was my three minutes on stage at Flash on the Beach, pointing out just how open Flash is these days. And that brings me to my last topic in this retrospective: the Apple vs Adobe debarcle.

Last year I wrote a piece in which I questioned whether Apple was becoming the new Microsoft, due to their dodgy practices that benefited themselves and caused numerous problems for everyone else. Their behaviour toward the Flash community this year has proven my point beyond all doubt to my mind: Apple are not a nice company and they behave just like Microsoft did in the dark days of the 80s and 90s. That behaviour though ironically has been great for the whole industry, not just Apple.

One of the biggest winners of course is the HTML 5 “standard”, which Apple chose to catapult into the mainstream. I blogged this year that I viewed HTML 5 is a missed opportunity to modernise the web by putting a language agnostic VM at the heart of a new web standard and explained why I view JavaScript as a toy language. Despite this, I still view the promotion of HTML 5 as a good thing. At the beginning of the year, I hoped that the iPhone’s browser would remain flash-free. Whilst I am a flash developer, I loathe flash-only websites and the intrusive nature of many flash components on websites. The idea of having such websites flatten my phone’s battery doesn’t appeal. HTML 5 offers a way of supplying feature-rich websites without the need for flash. More importantly though is the very toy-like nature of JavaScript. This was summed up brilliantly today in a tweet by @bbrathwaite: “As a designer, I feel limited by my inability to code. It’s like being a painter and telling others how and where to move the brush.” Whilst I view the Flash Pro IDE as a glorified drawing tool, AS3 is a complex language and poses a huge barrier to designers who want to write simple code. HTML 5 + JavaScript is a much easier introduction to programming.

Another winner of Apple’s actions was Adobe AIR. My anti-Flash on the iPhone blog post was largely an attack on Adobe’s obsession with the flash player in the browser. Apple’s actions appear to have driven them to put more effort into flash as a way of doing mobile app development. With the iPhone packager, AIR and the Flex Hero framework, I can develop a Flex application that can run on Windows, OS X, Linux, Android, the iPad, the iPhone and the Blackberry Playbook. If Apple hadn’t gone all “anti-Flash” on us, I doubt this would have occurred, at least not this year.

2010 has been an exciting year for me. The year ends with a lot of unfinished business for me though. I have a bunch of half finished, poorly documented projects – AS3Enums, WiseMVC and Immutables – that I must finish off. I have also started developing my first commercial venture, an application set for greatly enhancing and improving upon the experience offered by ASDoc. Also during the year I have bought books on Scala and Groovy and have failed to fully read either, not use the knowledge I have gained. So as 2010 draws to a close, my technical diary for 2011 is already filling up fast. Here’s hoping next year is as good as this one.

4 thoughts on “2010: A personal retrospective

  1. >> HTML 5 + JavaScript is a much easier introduction to programming.

    What planet do you come from?

  2. nice little look back at the year. I was interested to learn that rather than crush open source apple are embracing the openjdk rather than the sun/oracle one which is a damn surprise. I’d also question “good exception handling practice.” 🙂

  3. @the boss: you need to step outside the world of pure development and consider other folk that want to program. Needing a compiler, classes, typed variables etc just add to the difficulty of getting started with a language. HTML & JavaScript have none of those and are easy to get started with. Of course they scale horribly and one can quickly sink into the mire if one goes beyond the basics.

    @Richard (aka Anymouse), can’t say I noticed you commenting on the exception handling article, so I assumed you 100% agreed with it… 😉

  4. agree totally with the learning to program being easy in javascript, for a start no need to learn about an IDE or the build process as you edit code in a text editor and open it in a browser so you only have to learn the actual programming. A friend asked me to teach them to programming and my first suggestion was javascript.

Comments are closed.