Stroking AdiumX

One of the more common things I get asked regarding the AdiumX chat I did awhile ago is "What about Fire and Proteus?", and well, ok. It's worth noting that when I pick something for one of my 'chats', by choosing it I'm not dissing the others somehow.

To really go into it, its worth touching on something that you often encounter when using software. One of four things are going on:

  • You're using it because you have to
  • We're using it because it's the best alternative at the moment, but your eye is generally wandering for what you really want
  • It's the first thing you used, it did the job, so you stuck with it and haven't really investigated alternatives
  • You're using it because it's clicked with you and subsequently owns the mindshare in your brain for that app's market, and everything else has to give you a reason to switch

Fire fell into the second category for me. In terms of 3rd party clients on the mac, I pretty much started with Fire and a few clients built around ICQ. And Fire is really worth noting, as it was a trailblazer in terms of multi-protocol clients on the mac. But it was really, really rough to use simply because they were trailblazers, and I could never really get things to work as they should, but it was pretty much all that was there so you kinda put up with all the weirdness and went with it.

I distinctly remember downloading the code and getting this sinking feeling in my stomach as I poked around: no one but those specifically working on it day-in-day-out were going to be able to make any headway into it. And it sort of confirmed what I was seeing on the mailing lists: they'd throw up a fix for one issue, and find out they've just created a whole bunch more. That's not good, and is generally a red flag for larger issues.

Around then I got turned onto Adium, which wasn't AdiumX yet, just Adium, and only did AIM. I was enthralled. It had an exceptionally clean UI. It was very resource-friendly, using spartan amounts of memory and CPU. And it was stable, which was a huge selling point to me at the time. And it had that damnable cute duck icon. I was so surprised at its resource usage I downloaded the code and within ten minutes was enamored in a different way: the code looked like it had been written by someone who expected other people to see it.

It was a little surreal; I'm not coder and within ten minutes I saw how the entire app pieced together and what did what. Later on I saw an interview with Adam Iser that, while omitting the fact that his family has a penchant for owning goats (found that out while researching the AdiumX interview with Evan, and sorta had to put it to use somewhere, sorry) mentioned that at the time, Adam had been doing Adium as a sort of portfolio piece for his portfolio to hopefully get work writing Cocoa apps for OSX. That made a lot of sense and jived with what I was seeing.

AdiumX came out of a long rewrite, and if you download and look at the code yourself you'll see much of the same things I saw when I first downloaded that code back in the infancy of OSX. The new plugin-architecture not withstanding, everything is cleanly separated out again just like the original code into clearly defined classes and sections. Quite honestly, it's not the type of discipline you see in every OSS app. Usually OSS devs are scratching an itch, and if you're like me, when you're scratching an itch you scratch hard and fast.

I recognize this discipline in the AdiumX team simply because I lack it, so I know what I'm looking for. And no, I'm not a reverse fanboy; back when the blog had 1.5 readers (I think the count is at 13?) I was saying much of the same thing.

The maintainability issue is really what makes me give Adium such a big nod over Fire, UI and niceties aside, and I believe it's just starting to really show its benefits with the 0.7 release. Having code that is designed to be maintained from the start, and is heavily modularized takes extra effort but allows you to go so much farther down the road.

You're able to, say, rip out and refactor the entire chunk of code that handles your buddy lists without overly worrying that it'll break lots of other things in a relatively short time span. Someone can check in a fix in one area and those fixes trickle down correctly to someone checking in a fix in another area, rather than breaking something obscure in another.

I feel safe in saying that the biggest thing holding back the Fire team at this point is the state of the code itself. That's an incredibly hard thing to recognize when you're in the thick of it, and it's much easier to just stop and hit the bugs you're dealing with at the moment rather than taking time to change the conditions so that you'll be dealing with fewer bugs in the future. And Fire has a ton of bugs.

AdiumX has bugs too, you can take a look at the bugs they're dealing with at the moment for yourself, but the situation is very different.

AdiumX usually has an idea of where to start when a bug has been introduced or discovered, not "Well, it worked before I checked in the last code... better look there". Fire is playing whack-a-mole, it shows, and it's only going to get worse as time goes on. There are things, whether you care about them or not, that the AdiumX team can do in fraction of the time the Fire team can now.

This might sound as though I'm calling the Fire team out; I'm not. It's a great app. I have tremendous respect for the project and would do a chat with them in a heart beat. There are real, solid reasons for choosing Fire as your app of choice right now. It has some brilliant guys, and a lot of its features and protocol handling are more fleshed out than others, Adium included. If I was a heavy Jabber/ICQ user I'd be banging my head against it more, and for encryption its really the app to use right now.

As for Proteus... I can't wrap my head around it. More power to those who like it, I just have some severe philosophical differences with the author and how he's handled his app. And no, it's not because it's not free. I have nothing against software you have to pay for. But even getting beyond those philosophical differences, I just don't really like the app. If you're heavily into ICQ I can see valid reasons for using Proteus, and there are some nice features here and there.

But when I tried to use it felt inordinately gooey, and not in a good way. There's a lot of eye candy, but it just seemed forced and heavy. Kind of like the difference between a light drop shadow behind an image to give some depth and definition and those horrid monstrosities you see on 15yr olds' websites that would make Tammy Fae Baker feel at home. I'm going to fall short of saying it felt bloated, but quite honestly I couldn't figure out where all the cycles were going.

You don't have to take my word for it (and shouldn't); if you're an OSX user, by all means try them all and see which rocks your socks. Different strokes for different folks.

yummy alcohol posted button Posted by drunkenbatman
    September 28, 2004, at 04:02 AM


Comments (6)




Post a comment



Anonymous comments are allowed, but please enter something for a name.

And do endeavor to appear sane.









Remember personal info?