It's an arduous task, doing Symbian development. You don't just have to fight with horrible API:s. You also have to use tools that you learn to hate. I like my job. I like the people who work there. I like the stuff I do. But I really don't like the fact that my arch enemies live in my computer. It's not like it's an even fight either, there are four of them and just one of me. My arch enemies are:
Codewarrior. I use either the pro or the OEM edition, can't remember which one. These are the editions that professionals use. Poor professionals. I'm not going to get into the quirky UI, the lack of bld.inf support and stuff like that. It's the bugs that bother me the most. Like the sudden crashes. And the mystical bug that's called "Symbolics window" (there's a discussion about this over at Forum Nokia, but the search function there is another enemy of mine, so I couldn't find it), that slows things down so that stopping at a breakpoint can take up to a minute. I kid you not, that's 60 seconds. It sure steals my time, this tool. I can't even begin to understand how it can take Codewarrior a minute or more to import an MMP file. These are simple text files that describe a project: basically the source files and the libraries to link. Importing one of these can take minutes. I don't think any software developer with half a brain would argue that this makes any sense.
PGP Desktop. Built on top of the stable, standardized and generally wondered pgp code, this is a horror in software form. It's not just the instability, the way it can suddenly refuse to unmount a disk, or whatever. It's mostly the fact that it's completely braindead. There's no way to just assign a drive letter (2007 and we still have drive letters, great work there, Bill!) to a specific PGP disk. Instead it'll always default to the first free one. Every time I mount one of these suckers, and I usually have about a handful of them, I have to choose where to mount it. This isn't just inconvenient, it means I have to remember where I want it mounted, so that Codewarrior won't piss me in the face if I choose the wrong drive letter and then try to open a workspace. You get the picture.
Epoc. The Symbian OS "emulator" (it's not an emulator, it doesn't even run native code, you have to build x86 code for this "emulator"). This one has a lot in common with Codewarrior, which is probably why they work so well together (yes, that's irony). It can take minutes just to start it (yes, I have a fast CPU and 2 gigs of RAM). It looks up for no reason. Bugs in the code you're debugging makes the whole "emulator" go down in flames. And of course the actual emulation isn't good enough to be trusted.
Windows XP. Yes, the foundation of shit on top of which all of the above shitbuildings are based. There's no end to the misery that this sucker can bring to you. I mentioned drive letters above. That's not even funny anymore. The instability, the bad temper, the reek of bad design that sometimes makes me want to throw up all over my computer. Oh well, you probably know already, so there's no point in me going on about it.
Oh well, I'm on vacation for two weeks now. I know my arch enemies won't follow me to Japan (going there on Monday). Or well, they just might... They're not to be trusted.
[np: Napalm Death's second album]