"Using two cans has to be better than ICQ"
How it all started...
I'm in the habit of using ICQ to communicate with friends and colleagues. I've used ICQ for a fairly long time, although my ICQ number is nowhere near as low and 31337 as my friend Yoz's. However, this just means he gets more ICQ spam than me. Ha.
When I started using ICQ, it had a bearable UI (user interface) - certainly good enough for a 'first bash' at a proof of concept of the whole instant messaging idea. Since then I (with many others) have watched in dismay as ICQ turned from a small convenient transient utility with passable UI into a huge behemoth of pointless functionality, featuritis, long-standing problems and bugs and a UI that gets progressively worse with each release.
For the love of God, no!
I still remember the first time I used the version of ICQ that had a kewl 'typewriter' sound effect when you typed in a message - and yet in the same dialog, the ICQ coding mavens still hadn't managed to get all their buttons to be standard sizes - or even the same size as each other. I think that was when I first thought about writing a replacement for ICQ. It was obvious that the kids at ICQ now considered pointless eye and ear candy to be way more important than functionality and usability. This had actually been obvious for a long time, but this was proof, if proof were needed.
Later, I decided to actually go ahead and do it, for a few reasons. One was that I just wanted a version of ICQ that didn't piss me off, which ICQ did on a regular basis. Using ICQ was like reading "Edge" magazine - you need to do it, because there's some useful things to be had, but you can't help pining for something that filled this need without annoying you quite so intensely along the way.
Another classic ICQ moment for me was when my friend Sean pointed out to me that ICQ now installed and set up a web server on your PC by default. I mean for God's sake! The ICQ coders had obviously heard of Jamie Zawinski's theorem that all programs evolve to the point where they can send email, but decided that this was a paltry goal, and that their lightweight instant messaging system really ought to include a web server in the standard install.
To be honest, I can't remember the exact reason for finally snapping and committing to writing an ICQ clone for my own use - it was either the day that I found out that ICQ 2000 installed 87 (eighty-seven) DLLs into its program folder, or when I had a good poke around ICQ 2000 to see what had changed in its user interface.
Anyway, one of my reactions is recorded for posterity in an email I sent to a mailing list I use called 'anoraks' - an email which I reproduce here to give you some feeling of the mood I was in...
From: "Tim Browse"
Date: Wed Jan 17, 2001 11:17pm
I just had to reinstall ICQ at home, so I installed 2000b.
It's all changed again! What do all those buttons do? Why
I notice that ICQ does not yet have a brushed aluminium
I'm starting to think that the only reason ICQ sold to
Tim, now sitting up and taking fluids
As you may have noticed, I wasn't overjoyed with the changes.
As any developer worth their salt knows, the first thing you need for a program is a name. Preferably something cool that lends itself to levering in a backronym at a later date.
I decided to call my ICQ clone 'OFFS', which ostensibly stood for 'Online Family & Friends System'. However it really describes the reaction that finally pushed me into implementing an ICQ clone - OFFS is a handy abbreviation for "Oh, for fuck's sake!".
Anyway, once I'd started doing a bit of work on the project, Sean came up with a much better name (and one that is certainly easier to pronounce) - 'Two Cans'. The principle being that the simplest mechanism for peer-to-peer communication is a pair of tin cans with a string between them. This lends itself to a number of fun uses, such as:
"Have you tried using two cans instead?"
Trying to stop programmers making puns with program names is like trying to stop the universe expanding. It's painful, ultimately pointless, and you get goop all over your hands.