Just for Fun

If you're new here, you may want to subscribe to my RSS feed or you can register for email updates. Thanks for visiting!

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?1

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 now2 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.

  1. I know that for many developers the challenge is enough. I’m awkward in that I also want to be useful.↩
  2. 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.”↩

My del.icio.us bookmarks for July 15th through July 16th

  • Ars Book Review: "Patent Failure" - Interesting book review about the effect of patents on an industry. Apparently cost more money than they make in anything but chemical and pharmaceuticals.
  • Lucky to be a Programmer - I don't program as much as I used to but this explains why I love to when I get the chance.
  • WordPress 2.6 - Usual drill. I've upgraded to the latest version of Wordpress, the underlying software of ZX81.org.uk. If you see anything wrong please let me know!
  • 20 Amazing Facts About  Voting in the USA - Still in any doubt that computerised voting machines are a bad idea for free and fair elections?

Byline Bypass?

Earlier today daringfireball pointed me to Byline by Phantom Fish, a Google Reader client-side application for the iPhone.

Since I recently abandoned Safari’s built-in RSS reader for Google, this is just the kind of application that I have been looking for. Unlike a lot of programs I’ve found on the AppStore, Byline seems to be very well put together. The author appears to have included a thoughtful set of features. Not everything, just those elements you use every day; either a good starting point for later versions or an Apple-like approach depending on your perspective.

However, one thing worries me: Google have not released a publicly available API for Reader. Unless Phantom Fish have reached some deal with Google — and there’s nothing on their website to say that they have — then the only way that this application can work is if they reverse engineered the protocol1.

I’m confident that the interface works now, but what about tomorrow? The popular opinion is that Google are not happy with parts of the API and will publish the full version soon, but until the API is publicly available and stable there are no guarantees and it could change at any time.

Do you want to spend £5.99 on an application that could be disabled at any time by a third party? As useful as it looks to be, I don’t want to start relying on an application with foundations as shaky as this.

  1. My first thought was that it was just a specialised RSS feed. However, the video shows support for the “Star” functionality and they say that it synchronises read status, etc.↩

My del.icio.us bookmarks for January 12th through January 16th

  • Apple introduces new Apple TV software, lowers hardware pricing - Now potentially more useful with the movie rentals. But where is the price drop in the UK?!
  • Dell tells customer ‘Mac is good option’ - “Now, it’s possible that the techie was referring to a 1970s rock band, or to an item of waterproof clothing. But we can’t help concluding that he was indeed talking about Apple’s operating system.”
  • Steve Jobs gets cohesive - Some cool stuff from Apple at the MacExpo. I think the Time Capsule is going to be on my shopping list when it ships next month. The movie rentals (when they get to the UK) look interesting but they really need to build their catalogue!
  • How to recognise a good programmer - Great discussion on recognising great developers. The problem would seem to be finding them! Most recruiters just pattern match on CVs which tends to favour the “career” developer.

Joel On Software

Let’s cut to the chase: if you’ve read and enjoyed any of Joel Spolsky’s ramblings on the web you’ll like this book. Skip the rest of this review and just go buy it.

For the benefit of those that have not heard of him, who is this Joel chap and what is the book and his normal prose about? The “About the Author” section describes him as an industry veteran that writes an “anti-Dilbert manifesto” on his website. I can’t think of a better description, which is why I have shamelessly copied it rather than finding my own phrase…

He writes about software development at every level from bashing out code right through to strategy and he applies the same degree of pragmatism, common-sense and humour to every subject he covers.

The book is split into four sections and an appendix. In the first he talks about “the practise of programming,” which is the low level stuff. He starts with choosing a programming language (or, at least, why it’s probably not as important as you might think), moves on to the now almost classic “Joel Test” (Google it if you’re in any doubt how influential it has become), moves onto functional specs, schedules and the like.

Section two is all about managing developers. Personally, I think this is the part that he really excels at. Indeed, the best bits of the other sections are actually about the higher level stuff. One of the highlights is about what he calls “leaky abstractions,” basically that clever things that try to hide their underlying details tend to fall down in unpredictable ways. Ever got confused about the way a string class works in C++? This is the chapter for you!

The penultimate section is a random collection of articles, including his thoughts on the 80/20 myth, various business models and open source. I particularly like the piece on getting things done when you have no authority to do anything officially. Most books assume that you just need to learn what the right thing to do is, so it’s refreshing to find a book that deals in Real Life!

The final section is less relevant to someone like myself with a Unix background (and interest). There are three pieces on Microsoft’s .NET architecture. Nevertheless, I did read them and thought that he had some interesting things to say.

There is also an appendix, which is a “best of” collection of questions from the “Ask Joel” section on his website. This is perhaps the weakest section in the book and, although entertaining, most of the good advice in this section has already been expressed more clearly in earlier sections.

You can probably see by that I was impressed. It was an easy book to read — something that a lot of technical writers forget about — and even when I disagreed with certain things I could at least see where he was coming from.

The facts

Author: Joel Spolsky

Cost: $24.99

ISBN: 1-59059-389-8.

Buy from Amazon.co.uk.

Coder to Developer

The concept

I liked the blurb on the back:

“This title addresses all of the skills required to effectively design and develop complex applications, including planning, building and developing the application and coding defensively to prevent bugs.”

It suggests that it can bring you from the stage where you focus entirely on the code to the point where you can take in a whole project, make it all work and delight your customers. Mike Gunderloy has 25 years of commercial experience and so has a lot to say.

As he points out in the early chapters, there is a lot of ground to cover. There is everything from actually writing better code, through to planning, risk management, release management and handling your team. He covers all of these areas, providing handy hints and war stories clearly gleaned from hard-won experience.

For example, I liked the way that he sticks to the things that you need to know, even splitting them up into categoories where it makes sense. Gunderloy seems to be as amazed as I am about how m any projects do not use source control, and he lists Three Levels of Source Code Control Enlightenment, from Opening Your Eyes (just six commands and many benefits!), to SCC Journeyman (which he acknowledges may be all many people need), through to Experts Only (which he spends so little time on that it’s difficult to know what the various options he talks about are for).

Windows Coder to Windows Developer?

What you’ve seen so far is praise for the general concept of the book rather than anything very specific. There’s a reason for that. For a general software engineering book, it’s strange that there is such a strong Windows and .Net slant. There is no need for such details and it will reduce its longevity and usefulness. Steve McConnell’s “Code Complete” is ten years old and is still relevant (even though a new edition has just come out). In six months Coder To Developer could well look dated.

There is also a question-mark over the accuracy of some of the information. For example, he credits the the iterative development process to Microsoft and Rational, forgetting Bohem’s spiral model predated both by well over ten years. He seems to be much more fluent in more recent practises like Agile and XP, which is commendable but seemingly lacking the foundations makes it difficult to put these newer methodologies into perspective.

But if you can ignore these problems, there is lots of good advice. He’s pragmatic — using the good bits of, say, XP without taking the process as gospel — and the writing is accessible and friendly. Even disagreeing with some of the early chapters, I still persevered as it wasn’t a dense or difficult read.

The facts

Author: Mike Gunderloy

Cost: $29.99

ISBN: 0-7821-4327-X.

Buy from Amazon.co.uk.