In the Loop with Tim Hatcher

Recently I had the oppurtunity to ask Tim Hatcher a few questions. Tim is the …

Recently I had the opportunity to ask Tim Hatcher a few questions. Tim is the developer of the popular Colloquy Internet Relay Chat client and an innovator that first developed the use of Webkit as a means of display in third party chat clients. We talked about his development history, open source, and his relationship with other developers, and a new project ChatKit—all a part of keeping you In the Loop!

IL: Was there ever a question between open- and closed-source for you? A lot of people talk about the advantages of open source development, but did you encounter any disadvantages?

TH: Colloquy basically was required to be open source since it was initially based on Firetalk, a GPL IRC and multiprotocol library (now Colloquy is based on Irssi). I never intended to make a profit on Colloquy either, since most IRC users expect clients to be free. Being open source has given me flexibility to use other open source libraries and quickly extend Colloquy.

IL: You use a number of Open Source projects and classes in Colloquy—Irssi, SILC, Adam Iser's Tabs—do you ever find this a bigger hindrance then help? Do you ever find yourself saying "you know this would be easier if I just did it myself," or "I would never do anything that way?"

TH: If it is easier for me to do something, I will typically just do it myself. Also, if I have any reservations about integrating a particular piece of external code I will analyze the code and try to learn from its limitations and mistakes. At that point I will either try to fix the original and submit the changes back to the original author or simply recreate it from scratch with a fresh mindset on what problems the code needs to accomplish.

IL: Do you ever find yourself putting more time into adjusting or manipulating other peoples' code than your own?

TH: Yes, but it all depends on the original developer, their software design abilities, and coding habits. I am personally very picky on how I want my code to look, and I like any contributed code to Colloquy to meet my coding style guidelines. I make exceptions if there are whole classes or files that are coming over from another project, like Adam Iser's tabs, that I want to keep in sync and diff for changes later.

IL: Many of us use multiple operating systems so we know why you would pick OS X from an end-user perspective—but why would you pick OS X from a programmer's perspective? What makes it the most attractive OS to program for?

TH: If you look back on OS X's lineage you will see NeXTSTEP, a grand object-oriented operating system. This history gives OS X the strong Cocoa API that has been refined over the years. Objective-C also comes from NeXTSTEP and gives new developers an easy and powerful jump start into object-oriented programming. You can also mix C++ alongside Objective-C with Objective-C++, letting Windows or game developers easily port code and leverage Cocoa.

IL: Now that OS X has been around for a while, how is the reception of Macintosh programmers in the Open Source world? How does it differ now from when OS X first hit the scene?

TH: OS X had a strong open-source community way before it was "OS X." The NeXTSTEP community carried on that legacy and helped it grow under the OS X title. With a strong existing open-source community, more developers are opening up to the idea of sharing and collaborating with the community.

IL: The developers of Colloquy and Adium seem to have a unique interest in one another's projects. How have these projects influenced each other and how does this perpetuate the beliefs behind open source? And what can you tell us about the application you are working on together reportedly called Chatkit?

TH: The first time I spoke with the Adium developers, mainly Adam Iser, I had just overcome a hurdle in the WebKit integration I was doing on Colloquy. It was brought to my attention that Adium was struggling with the same issue, so I stopped in the Adium channel and pointed them to what I had done. This reinvigorated the Adium WebKit themes, something they had started to give up on.

Shortly after this I was contacted by two of the other IM software developers, Justin from Proteus and Graham Booker from Fire. Although Proteus is not totally open source, I was still happy to guide them along the same lines I helped Adium, since I strongly believe in using WebKit this way.

Fire was a different story than Adium and Proteus. Adium and Proteus decided to go with a more simplified route in their theme system, more or less against my wishes for a unified Chat theme format. After many back and forth e-mails with Graham, he decided to share the style, log format and code I established in Colloquy.

Regarding ChatKit, it is a fairly recent project that got started by Chris from Growl, who then gathered up as many chat program developers he could message. The project aims to provide a background daemon that handles many chat services, from AIM to IRC (and all the ones in the middle). The daemon would then be accessed from one or more applications that provide chat interfaces, or have an interest in some aspect of a chat protocol.

IL: When did you start programming, what was the first machine that you programmed on.

TH: A Commodore 64! I was about six when I got my Commodore and my mother helped me type in programs from a BASIC book. I played with that a bit, but I didn't program much more until around 13. That's when I got on the Internet and started doing HTML and JavaScript hacking. That progressed into Perl and CGI programming. Later I picked up C for some intense server-side things.

Once the OS X public beta landed, I started reading up on Objective-C with the PDFs that come with the developer tools. Started hacking with the example programs and developing small.

IL: With a project like this, at what point do you just cut all your ties to it and say, "it's time for me to work on something new?"

TH: I haven't yet considered dropping all ties with Colloquy. I have taken a few long breaks, but that just fosters new ideas and features when I start back up. Lately I have been looking for "something new" as a day job. All I can say at this point is I think I found my dream job! (Hint: everyone's favorite fruit company.)

IL: Finally, what is your main machine? Hardware, software, processor—all the gory details. We are geeks, we like this kind of stuff.

TH: I have a generation-old Aluminum PowerBook 1.5 GHz with 512 MB of RAM (need more soon) and the 128 MB VRAM option. Stock OS X 10.4, no tweaks or haxies, etc. Being a designer by trade, I have the Adobe Creative Suite, along with some of the Apple Pro apps. My text editor is SubEthaEdit, used for HTML, PHP, etc. I code Colloquy in Xcode.

* * *

We'd like to thank Tim for taking the time out to talk with us and be among the first to congratulate Tim on his new job. Since we first talked to Tim, he has finalized the paperwork to be the new Safari/Webkit Integration Engineer at Apple. Congratulations, Tim!