Thoughts on software and life.

Tuesday April 26

Boxely, Part 2 of 3

This is part 2 in a 3 part post about Boxely: Here is part 1.

Boxely was developed during the year in which Netscape engineers had nothing to work on, because AOL couldn't decide whether or not they wanted to keep us employed. AOL did not ask for Boxely, nor did they know that I was working on it. Sometime in July 2003, some people at AOL discovered my project. It turns out that they had been looking for a lightweight GUI toolkit for some time to replace their decaying, decade old system. In a strange twist, a few days later AOL layed off everybody at Netscape, including me. When the folks who found Boxely heard that I had gotten the axe, they pulled a few strings and I was given my job back. Not only that, but they created a whole new team dedicated to Boxely and asked me to lead it. I was thrilled initially, but over time I couldn't shake the feeling that AOL wasn't the right place for me, so I left the company in February 2004.

Fortunately, AOL kept Boxely going and has improved it quite a bit since then. It seems that it is now central to their plans for the future. I can only speculate what these plans are, but one thing seems certain: AOL wants you to use Boxely (and the rest of the AOL platform) to write your own desktop applications.

Before I talk more about what Boxely is, I should mention what it used to be. Boxely was tiny. Now, Boxely has become dependent on this "AOL Services" thing, which seems to be yet another portly COM-based platform. As a result, AIM consumes around 50MB of RAM and uses 4 separate processes. Ouch. I'm sure they're working hard to shrink the footprint. Still, as one of my motivations for Boxely was to escape Mozilla's giant COM layer, I'm not too thrilled about this. Oh well, I quit and left the project, so I can't complain.

Boxely was also supposed to be cross-platform. Although I only implemented the Windows side, the code was designed to make it easy to support other platforms. I don't know if AOL has plans to do this in the future, but as far as I can tell the AIM beta is all Windows to the core.

Boxely originally used Python as its scripting language (hat tip: Rob Ginda). AOL didn't seem to appreciate Python's infinite superiority, as they immediately ripped it out and replaced it with Javascript. I guess they'd rather appeal to the web developer crowd than support a language that doesn't suck.

The biggest improvement AOL has made to Boxely is its rendering engine. Boxely originally used GDI+ for all graphics. AOL replaced GDI+ with a ridiculously fast graphics library it bought a few years ago. This new library's performance blows GDI+ away, and should support some pretty zippy vector graphics and animation.

So, AIM is now just like Firefox in that anybody can look at the source code behind its UI. If you dig around in in "C:\Program Files\Common Files\AOL\AIMBeta\services", you will find a bunch of XML (.box) and Javascript files. Specifically, look in "imApp\ver0_1_12\content" to see the main AIM UI files. If you wanted to do something naughty, like maybe remove the banner ad from the top of the buddy list, you could do that simply be making a simple change to an XML file. If you wanted to do something nice, like add a whole new feature to AIM, you could do that too with relative ease.

In the final part of this series, I'll look more closely at Boxely and show how it differs from XUL.

Posting your comment. Please Wait...