I’ve not done much programming in the last few years. When I first started working my job was mainly to “cut code” but I’ve done less and less as time has gone by. I now tend to concentrate on high level modelling and writing small utility scripts. I have not been doing much at home either, just minor tweaks to pre-existing software to “scratch an itch” or programs to automate tedious tasks.
For something that I claim to enjoy, why have I been doing so little of it? In short, it’s hard. Writing something useful that does not already exist is an increasingly challenging task. Even if the act is fun, what’s the point of making an inferior version of a pre-existing product? ((I know that for many developers the challenge is enough. I’m awkward in that I also want to be useful.))
It hasn’t always been like that.
In the olden days it was possible for one person to write a whole, useful application alone. Steve Wozniak wrote the original Apple Basic before they licenced Microsoft’s version. Matthew Smith single-handedly wrote the classic game Jet Set Willy. Even I managed to write a database application for my GCSE in Computer Studies and a graphical adventure game on my Sinclair Spectrum that at least one friend was quite impressed with.
But by the end of the eighties, software was getting more sophisticated and typically required a team. Programmers, designers and “architects” were required to make commercial quality programs. The lone, enthusiast programmer was effectively squeezed out of the market.
Fast-forward ten years and a new generation of developers were given their opportunity. Early web applications could be quickly slung together using a few lines of Perl, a rudimentary understanding of HTML and a commodity PC running Linux. I guess if I’d attended Stanford I would have been a dotcom millionaire by now ((I do have a t-shirt that says, “I got £80 million for my dot com idea but now all I have left is this lousy t-shirt.”)) but here in the UK I missed the boat. Just like programs on home computers had done before, useful applications quickly got far too complex for one person to build alone.
And now here we are in 2008. A few months ago Apple released the SDK for the iPhone and the possibilities are there again. If you go to the App Store you’ll see that many of the available programs play Sudoku or are thin front-ends to web-apps like Twitter or Facebook. The more sophisticated games — such as Super Monkey Ball — have tended to be ports from other platforms and so while originally written by many people were ported by a much smaller number. Sure, many applications are tiny and frivolous or just plain poor, but the barrier to entry is much lower than it has been for quite some time.
Undoubtedly the complexity level will rise over time — probably fairly quickly — but until then programming is actually fun again. I am, indeed, writing an application for my iPhone and, who knows, I might actually have something to announce in a few weeks. Watch this space.