Yesterday folks were talking about collaborating for a much needed presentation on IRC in the #lug/ip channel on freenode.net. I jumped into the conversation late, but in regards to the discussion of what IRC clients to cover, I chimed in that on the next release of the LUG/IP GNU/Linux, Xchat would be configured to automagically connect to irc.freenode.net and join #lug/ip. Immediately people began asking “What about Gaim?” My answer: I have no plans to do that.
Disclaimers/Caveats/Whatever
Before I get into the details of my decision, you should know that:
- I have no involvment in any way with either project
- I have both applications running on a 24×7 basis on my workstation
- This is not intended as a flame war, or a comparison on the general merits of either application - this is a specific comparison of the feature where an application can be configured to automatically join a channel and the effects of such a setting on an unsuspecting user.
- This is not intended to be an advisory piece on why you should use “foo” application instead of “bar” application - you use what’s right for you.
- Any comments that ignore these points are subject to moderation - editing or complete removal. Of course, if you make a fool of yourself I’ll most likely let your comment stand
Let’s Examine the Motive
The idea behind making Xchat autoconnect is not based on convenience, and it is not based on driving unsuspecting users into the channel. It’s not a clever “phone home” feature so that we can keep track of who is using the CD at any given time. The plan is to have a “Need Help?” dialogue somewhere on the desktop. This dialogue would have several options for getting assistance including using mailing lists, visiting LUG meetings, etc. For users who are able to connect to the internet, there would be an option to “Get Live Help via IRC” with a link that launches Xchat and a short description of IRC. The channel is already pretty good about welcoming new people, so I’m sure that folks logging in as “LUGIP_ISO_User” can get the help they need there. Autoconnecting is just easier for new users - a lot easier than going through a stepped dialogue of how to connect to the server and join the channel.
The Rule of Least Surprise
My strongest reason for not wanting to implement an autoconnect/auto join feature in GAIM is because I believe it breaks the Rule of Least Suprise. The Rule of Least Surprise, as defined in the Art of Unix Programming by Eric Raymond:
The Rule of Least Surprise is a general principle in the design of all kinds of interfaces, not just software: “Do the least surprising thingâ€?. It’s a consequence of the fact that human beings can only pay attention to one thing at one time (see The Humane Interface [Raskin]). Surprises in the interface focus that single locus of attention on the interface, rather than on the task where it belongs.
But, ESR is talking about interfaces, and both the Xchat and Gaim interfaces are good and generally obey this principle - how can I argue that Gaim breaks this rule? My argument isn’t with the interface itself, but how the user interfaces with each application.
Xchat is an IRC client. When an end user opens Xchat, there is a very high probability (maybe not quite 100%, but close) that user intends to open an IRC window. Gaim on the other hand supports multiple protocols (very well, I might add). When an end user opens Gaim, the probability that they are going to immediately open an IRC window is much lower. When you take into consideration a newish user, it becomes even more problematic. Default Gnome menus list Gaim as “Instant Messaging” and the menu icon bares striking resemblance to the little AOL guy. The uninitiated are not likely to even launch the application unless they want to do instant messaging. This is where the Rule of Least Surprise comes to play. If the end user does not intend to use the IRC protocol, then automatically launching the window is an inconvenience. For people who do not even understand what IRC is, it can be downright confusing.
It also becomes a minor inconvenience for #lug/ip regulars - watching random people identified as LUGIP_ISO_User wink in and out of channel, dealing with the more irate folks who will take their time to express their discomfort within the channel (I remember a few angry responses on the mailing list when someone had unknowingly added themselves to it).
All of these issues were considered carefully before deciding to make Xchat join the channel by default. In my mind, Xchat barely passed. In a way, Gaim’s advantage of using multiple protocols is a disadvantage here. It would be enough to decide against setting Gaim up in this manner, but…
Why it Doesn’t Matter Anyway
Now despite any points for or against setting up Gaim to autoconnect, the argument turns out to be moot because you can’t actually configure Gaim in this way. Sure, you can configure it to automatically connect to freenode.net. But AFAIK, there’s no way to set it to join a channel. In fact, in places I’ve found discussing the issue the instructions for setting this up in Gaim start with:
1) Click X-Chat and select Server List.
This leaves me a bit disappointed in a couple of ways. First of all, it would be a nice feature that other clients such as Trillian support. I’m sure that it will be implemented in Gaim in the near future, either by the development team or through some user-provided patch. But that doesn’t help us in the here and now. The second thing that disappoints me is the negative response I got from people who felt I was wrong in not configuring Gaim in this manner. Although my mind is already made up, it doesn’t mean I’m not subject to change. I went into Gaim to figure out how to set it up in case compelling evidence was provided to sway me. I wish the folks lobbying to make it a Gaim default had done the same. It could have prevented the unpleasant discussion entirely.
***ADDENDUM***
Daniel Zuckerman has pointed out that there is, in fact, a way to get Gaim to automatically join an IRC channel. According to him, if you go into “Buddies” and select “Add Chat”, you can then right-click on the channel and select “auto-join”.
Hi Greg,
I’m happy to see you posting a blog after a long hiatus.
If I understand correctly, you explain 4 reasons for not configuring GAIM to autojoin #lug/ip on freenode.
(1) Xchat is already configured to autojoin #lug/ip
(2) You believe it would be against Mr. Raymond’s principle of least surprise
(3) Your afraid someone might mis-interpret your motivations
(4) It might confuse people unfamilar with IRC or GAIM
I agree with all 4 reasons, but I think they all apply equally to xchat. If I understand correctly, you explain 2 ways GAIM and Xchat differ.
(1) Xchat is a single protocol (IRC) client, and GAIM is a multiple protocol client, and people choosing to use IRC may want to stop by #lug/ip, but people selecting GAIM may not
(2) Xchat will be utilised by a LUG/IP help dialouge
I think many people who want to use IRC from the LUG Bootable CD (BCD[1]) will want to connect to #lug/ip, but I think anyone familar with IRC can acomplish that without our assistance.
Utilising IRC in the help dialouge is an excellent idea, but if we can allow IRC newbies to autoconnect to #lug/ip without compromising the normal functioning of Xchat, I think we have an obligation to make it happen. I suggest the help dialouge execute Xchat with it’s url switch:
xchat --url=irc://irc.freenode.net/#lug/ip
I didn’t think any of this through when I asked if we could set GAIM up to autoconnect. I cannot appologise for other people’s neative responses, but I do appologise for asking you to act without thinking of the consequences of that action. If you listened to me, you would’ve taken the blame, and it would be my fault.
-Dave
[1] I don’t like calling it an ISO. I think of ISOs as things that waste space on my filesystems and prevent me from doing useful things like bittorrenting por^H^H^H educational movies.
Comment by Dave Harding — March 19, 2006 @ 12:56 am
Dave,
I agree with your comments (except the point[1] about Xchat already being configured - my mind doesn’t work that way).
Also, I never thought about Xchat’s url switch - never knew it existed. I agree this is the way to go.
As far as “ISO” is concerned, it’s not the official name of the finished project, which is “LUG/IP GNU/Linux”. For development though, the ISO is ultimately the thing that gets created. Aside from the sneakernet of burned copies, the ISO is the only version of the product which can be readily distributed.
That said, the initial post is a bit misleading and will be edited (probably by the time you read this).
It should also be noted that “ISO” is whole hellavulot easier to type than “LUG/IP GNU/Linux”, so if I fall back to just saying “ISO” here and on IRC, don’t panic - it’s just shorthand.
Comment by Gregory Haase — March 19, 2006 @ 10:45 am
Greg,
Thank you for accepting my url suggestion.
I didn’t know any of Xchat’s switches until last night. I’ve always used command-line IRC clients on GNU/Linux. But I grok the consistancy principle (which ESR, exapansively, calls the principle of least surprise), and I expect all configurable programs have a command-line switch to adjust where they look for their configuration file. When I installed Xchat to find this switch (which is cfgdir), I discovered the url switch.
I forgot that. I changed BCD to GNU/Linux in my recent blog.
Ooh! That sounds like you’ll blog again. I’m happy now.
Comment by Dave Harding — March 19, 2006 @ 3:49 pm