Every now and then I run across a developer doing something so obvious and cool that I think, "Well, it's about time!" Through a total coincidence, that happened just last week, when Julian Miller of Script Software called to chat about his latest products. After we'd talked about Easy Card Creator and iKey (a macro utility that used to be called Youpi Key) and iClock (SuperClock on steroids), Julian asked if I'd heard about the MacPAD project. I hadn't, and he started telling me about MacShareware.net, a software update site along the lines of VersionTracker and MacUpdate. I commented that I mostly relied on developer sites to find updates for products I use, though I have forever remained disappointed that Apple never opened Software Update up to outside Mac developers. As Julian continued describing MacPAD, I realized it could at long last provide the underpinnings of a Software Update for Everyone Else.
Introducing MacPAD -- MacPAD is the brainchild of Ricardo Batista, a Macintosh developer best known for writing Extensions Manager, Apple's utility for managing extensions and control panels in the classic Mac OS. As a developer, Ricardo had become frustrated with the existing software update sites for a variety of reasons, and being a developer, he didn't simply get mad, he got even by creating his own software update site - MacShareware.net - with an eye toward addressing those aspects of the other sites that he didn't like. I haven't particularly used MacShareware.net, so I can't say how successful it is, though I do appreciate the site's policy of having a person review all submissions and comments before posting them. Hopefully that addresses the complaints I've heard from developers about ill-informed and misleading comments about their products on other software update sites.
One of the areas Ricardo hoped to improve was the submission process. Right now, if you're a developer with a new product, you must manually submit your product to multiple sites, each with their own different system and requirements. That's a pain, and it's not only unnecessary, it's a problem that's been solved in the Windows world via a technology called PAD (Portable Application Descriptions) and developed by the Association of Shareware Professionals. PAD is essentially an XML file containing a full and rigidly formatted description of a product, and most of the Windows software update sites prefer to receive submissions in the form of PAD files, since that makes life easier for both developers and webmasters. Ideally, the developer merely puts a PAD file on her Web site and gives the software update sites the appropriate URL for them to check on a regular basis for new versions. If you're into reading your news via RSS feeds, you can think of a PAD file as an RSS feed for software updates.
As much as the PAD format was clearly the right direction, Ricardo felt it was overly complex and not appropriate to the Macintosh world, so he created - with input from other developers - a simplified version called MacPAD. Along with the XML file format and tools that run on MacShareware.net to query developer sites for updated MacPAD files, Ricardo and others have created an open source software development kit (SDK) with which developers can add support for MacPAD to their applications, and that's what interests me.
Updates Done Right -- How do you learn about updates to your software? If you're like me, you receive an email announcement from the developer, read about it in a news source like TidBITS or a software update site, or if you're lucky, are alerted by the application itself. In most of these cases, you must still download and install the update manually. Only a few programs come with sufficiently clever update code that they can alert you, download the update if you agree, and install it for you, much as Apple's Software Update utility does.
The problem is that rolling a custom update utility is too much work for most developers, and those that have done so haven't been able to create a generalized solution. That's where MacPAD could swing the tide, by providing the standardized XML foundation on which others can build tools. Developer Mark Fleming has already provided the first piece in the puzzle, a simple application called MacPAD that creates MacPAD files, and the code snippets that ship with the SDK should get other developers started on adding basic update checking code to their applications. My hope is that someone will contribute code to the MacPAD SDK for the more advanced aspects of updating, such as automatic downloading and automatic application updating.
And, while I'm filling out my development wish list in time for the holiday season, it would be extremely useful to have a preference pane that would list all your MacPAD-supported applications, the currently installed version of each, and the latest versions with a description of what's new. This update utility would acquire its data by extracting the URL to each MacPAD file from the associated application and then querying MacPAD files on the Internet at a user-specified schedule. A checkbox next to each item would allow you to select applications to update, and clicking an Update button would download and install all the necessary updates. Creating such a utility shouldn't be too hard, given that it's essentially the equivalent of an RSS reader (like NetNewsWire, for instance) for MacPAD files. In fact, I wouldn't be surprised to see the RSS readers add support for MacPAD files as well, for users who want to see what's new with their software while they're reading the latest news.
Why provide such a utility on top of automatic updating inside individual applications? It provides a centralized location to see what needs to be updated, lets the user schedule updating for a convenient time, and simplifies the process of updating multiple applications at once. It might also allow the user to add the URLs to MacPAD files to check manually, to facilitate watching changes to a specific program that wasn't installed on that particular Mac. I could see network administrators wanting to keep track of programs that weren't necessarily installed on their personal machines, but which were in common use among their users.
First Steps -- My grand plans can wait for a bit. For the moment, the most important thing is that developers start using MacPAD to submit their software to the software update sites; on 05-Dec-03, TildeSoft's Rendezvous Browser was the first utility to be updated automatically on MacShareware.net via MacPAD. Next we need software update sites other than MacShareware.net to support MacPAD and developers to add the update checking code to their applications. Once all that's in place, there will be an audience for this alternative to Software Update.
But first, Ricardo Batista, Mark Fleming, Julian Miller, Kevin Ballard, and all the other developers who have worked thus far on MacPAD deserve a big round of applause for kick-starting a system that could help the entire Macintosh community.