Gerry Beggs, Gerry’s ICQ
ATPM’s Managing Editor, Daniel Chvatik, had the pleasure of interviewing Gerry Beggs by e-mail last month. Gerry is the creator of Gerry’s ICQ, an alternative ICQ client with more advanced features than ICQ Inc.’s own ICQ client for the Macintosh. ICQ Inc., formerly known as Mirabilis, created the instant messaging (or “chat”) application that came to be known simply as “ICQ” (I seek U).
• • •
Tell us a bit about yourself. Where are you from? What do you do when you don’t work on Gerry’s ICQ? How did you get started programming on the Mac?
I’m from Winnipeg, Manitoba, Canada, just about as far from any ocean as you can get. I work at the Real Canadian StupidStore—uh, I mean SuperStore. <sarcasm>It’s loads of fun.</sarcasm> I need a new job. I am an avid cyclist. I enjoy long distance riding, not the kind where you smash your bike up off-road. I plan on taking a couple weeks off this summer to spend camping and travelling on my bike.
I’ve been programming since I was in grade five, on a Commodore 64, but I started programming on the Mac in my first year of university, majoring in Computer Science. About eight years ago. (No, I still haven’t graduated. It’s too expensive for my pocketbook right now.) I fell in love with the Mac very quickly. Before university, I only knew the world of the PC; using the Mac was a big eye-opener.
What made you write Gerry’s ICQ?
It’s a long story…just by chance, I was browsing around ICQ’s Web site. I found a message board for Mac users, where about 90% of the messages were complaints about the poor support ICQ Inc., then called Mirabilis, offered for their Mac client. I saw one post of someone who said he was sick of it and was going to create an open source ICQ clone. I e-mailed him saying that I’d like to help out, even though I’d never done any type of network programming before.
To make a long story short, an open source project was started. Originally called Mac MICQ, its name changed to TrueICQ and is now called CQ2.
Over a period of a few months, I read up on how to program for Open Transport, slowly created a library for this open source client, and submitted it to the project. I created a sample ICQ client using my library to show that it worked. They were impressed and decided to use my library for their client also. However, they have progressed very slowly since then and they still don’t really have a usable client, although I would really like to see another ICQ clone. I know of another one in the works, but I’m not sure if the author has the time to dedicate toward it right now.
My client was never intended to be used on a regular basis. It was just to show that my library code worked. For fun, I began adding features to it to make it more usable. People who had heard about the client through the Web site started using it, and the user base grew slowly purely by word-of-mouth.
One day, I began receiving many, many e-mails about the client. I was wondering, why the sudden surge of users? It turned out VersionTracker had started listing it on their site. I have no idea who posted it to VersionTracker.
And the rest is history, I guess. The user base has continued to grow.
Using your best estimate, how many users do you think currently chat with your client? Do you track user activity in any way, such as sending messages to a server of yours when they go on-line?
No, I don’t track users in any way. The current download page counts the number of downloads of each language Gerry’s ICQ is translated into. However, there are several sites (VersionTracker, especially) which link directly to the download files, so this reduces the accuracy of the counter. The counter alone shows over 10,000 downloads of the English version (Japanese comes a close second) after each version I post, so I’m fairly certain the number is more than 10,000. I was once told it could possibly be as much as 100,000, but I seriously doubt that. That’s the best estimation I can come up with for now.
<rant mode=on>I think the number of people who like Gerry’s ICQ is a good reflection of how much they dislike the alternative. It would be nice if ICQ Inc. would listen to their users instead of cramming every feature (useful or not) into their Windows client, then have those features slowly trickle down into their Mac client. There’s more to a good program besides features. It has to be useful, well-organized, consistent, and intuitive. I may not have achieved these goals perfectly, but the difference is that I’m trying.</rant>
Currently you sell some banner space on your Web site, but that probably doesn’t cover your costs very much. Have you been considering making Gerry’s ICQ shareware or integrating banner ads, like GameRanger or Eudora? Do you have plans to make money off your work?
No. Absolutely not. In fact, I don’t even like the banner ads on my site. My main motivation in making Gerry’s ICQ is for a better ICQ client for myself. I just happen to post it on a server for anyone who comes along so that, if they like it, they can use it also.
[Note: The Gerry’s ICQ Web site has undergone a major make-over since this interview, which completely removes the banner ads.]
Do you find Apple’s developer support sufficient?
Apple provides very good reference material, but very little in the way of tutorials. However, an excellent electronic book exists which fills this niche for the Mac Toolbox, called Macintosh C.
I haven’t looked very much into Cocoa. From what I’ve read it seems that there is sufficient reference material, but again, tutorials are lacking. I also read however that Apple is working to improve this.
What’s the biggest problem you’ve encountered during the development process so far?
My biggest problem so far has been figuring out how to program for Open Transport. It is one of the least documented parts of the OS, and for someone new to network programming like myself, it is very hard to get started. It took me one or two hundred pages of straight reading before I figured out how to send anything over the network.
I’m still not very comfortable with Open Transport, but Apple does provide one thing which is invaluable—mailing lists. People on these lists have been very helpful whenever I’ve had a question.
What programming tools and language did you use to create Gerry’s ICQ, and why?
I use CodeWarrior (whatever the current version is), Resourcerer and sometimes ResEdit.
The only other real alternative to CodeWarrior is MPW (Macintosh Programmer’s Workshop), which I’ve never really tried, but looks a little too intimidating to me. Also, I think support for it is non-existent nowadays; even Apple themselves are using CodeWarrior now.
REALbasic looks great for making quick and simple applications, and I’m sure an ICQ client could be written in REALbasic, but I prefer to have a bit more control over my project. Also, REALbasic programs are known for having large file sizes and sometimes being a bit slow.
I program in a sort of hybrid C/C++ style. It’s not pure OOP (Object Oriented Programming), but I use objects where I think they’re convenient. For instance, 95% of the GUI is done with objects, but the ICQ networking library is purely procedural.
I am not using a framework such as PowerPlant simply because I am not familiar with it. Gerry’s ICQ is written completely in plain Mac OS Toolbox code.
Do you plan to make the transition to Mac OS X? If yes, are you planning to Carbonize Gerry’s ICQ or rewrite it for Cocoa?
This has been a very common question lately. Yes, I will be making a Carbon version relatively soon. Rewriting it for Cocoa would seem like too much work when Carbon is available, but I certainly do plan on learning it for future projects.
Do you think Apple is making the move to Mac OS X as smooth for developers as possible?
I think Apple is doing the best they can for such a huge difference between OS versions. Mac OS X is a whole new operating system. It isn’t simply an upgrade to Mac OS 9.x. Overall, I am quite impressed, but there are some things I think should be different in it, mostly minor things though. There will always be some things people will complain about. Mac OS X 1.0 will not be perfect. I’m sure any big problems will be fixed in subsequent revisions.
Did ICQ Inc. ever contact you regarding your ICQ client?
I’ve never been contacted by ICQ Inc. I don’t know what their official position is with respect to clones, however I’ve talked to someone who has been in contact with their Mac programmers and they’ve said that they are very impressed with what I’ve done!
Do you know what ICQ Inc.’s position is with respect to “clones”? Do they encourage them, discourage them, or are they neutral?
They do not encourage them. If they did, they would have released the specs for their protocol. Instead, several people have dedicated lots of time to decoding the protocol simply by looking at the network traffic produced by ICQ’s client. These people are making other ICQ clones for Linux and Unix in general, BeOS, and the Amiga. If ICQ Inc. discouraged clones, I’m sure Gerry’s ICQ wouldn’t be around right now. I’m not sure if they’re neutral either. Perhaps they’re waiting for the right moment to cut us all out. I hope that answers your question! :)
Where do you see as the greatest strength of your ICQ client, compared to ICQ’s own Mac client?
I think the majority of users prefer the general interface of the client. It is much more Mac-like and more organized than ICQ’s client. Their Mac client is looking more and more like a Windows program with each new version. Also, there’s the fact that I (sometimes) listen to people’s suggestions, and implement them. This is one thing ICQ is not known for.
The Windows Character Translation feature is very popular with non-English speaking users because the codes for the characters with the various accents are different on Windows. So speaking to a Windows user is very difficult without this feature. If you notice, the latest version of ICQ’s client has this feature also. I wonder where they got that idea from…that’s fine by me though. If I somehow helped to make their client better, then that’s a good thing.
What are your future plans for Gerry’s ICQ? Which is your highest priority; do you want to concentrate more on catching up with features found in the Windows version, or do you plan to implement more “Mac-only” features?
That’s a question I’m often asked. I take a casual attitude towards this project. It is not my career, and I’m not going to get stressed out over it. I usually implement features which I am in the mood for doing at the time. It’s not a very satisfying answer to most people, but it’s the truth. I do keep a “To Do” list posted on the Web site which is far from complete. I keep another list, written on a white board, of smaller features which I try to get done for the next version. Usually they are requests from other users.
How often do you use Gerry’s ICQ yourself? How much time do you spend chatting?
More time than I’d like to admit! ;) When ever I’m online, Gerry’s ICQ is running. I don’t actively seek out people I don’t know to chat with (although I have met several people whom I now consider friends, even though I’ve never met them in person). I usually use it to keep in contact with people I already know, so any time I spend chatting is usually just casual.
Thank you very much for the interview. Good luck!
Also in This Series
- Heather Sitarzewski, Graphic Designer · September 2010
- John Hart, ModYourMac.com · August 2005
- Jonathan Gales, MobileTracker.net · May 2003
- Frank Vercruesse (author of Application Switcher Menu) · January 2002
- Daniel Knight, Low End Mac · September 2001
- Dan Bailey, Fontosaurus Text · June 2001
- Gerry Beggs, Gerry’s ICQ · July 2000
- Chuck Fox, FreeMac · October 1999
- Oliver Joppich, iCab Company · March 1999
- Aladdin Systems, Inc. · September 1997
- Complete Archive