The great thing in the world is not so much where we stand, as in what direction we are moving.
Oliver Wendell Holmes
Tools and Applications
1 December 2008
Most of the programs I distribute at the UGA Stratigraphy Lab are simple tools for doing some calculation that cannot be done easily in a spreadsheet. All of the programs are tools that I developed for my own research problems and that I thought might be useful for a larger audience. Some turned about to be more useful than others (and some I’m sure have never been used by anyone but me!). What’s common to all of them is that they’re tools, not applications. The data is assumed to be in some text file, in some specific format, often in some specific location with some specific file name. The program reads that file, does some calculations, and churns out another text file with the results, with some specific ... you get the picture. If the input file isn’t in the right place, or doesn’t have the right name, or doesn’t have the right format, the program fails. Usually, the user has no idea what happened and they have to email me.
I don’t mind answering these questions - I like seeing the programs used - but this process has driven home to me that these aren’t applications in the sense that we expect. Applications generally don’t require files to have a specific name or location, and if their format is incorrect, the user finds out what is wrong.
I’ve come to realize even more the distinction between a program and an application. Applications should have a familiar interface. Things like undo, save, open, and print ought to work. Applications should have a functioning help menu. They should have more than a generic icon. They should have style.
I’m about to beta release a program called Diversity. It’s an application. It lets ecologists enter and view their data in a much easier way than generally done (more on this in the future). It then allows ecologists to perform common types of diversity estimates, including both individual and sample-based rarefaction. It also plots these results and lets users save them as pdfs and export the results for plotting in another program. As I’ve developed it, I’ve been marveling over how Cocoa has let me create a rich user experience, far more so than any of the programs I’ve released before. Open, save, revert, undo - they all work, courtesy of Core Data. It includes a great set of import and export functions that also validate data and give users meaningful advice when things go wrong. The interface is easy to use and works much like iTunes, again thanks to Core Data, as well as bindings. I’ve added custom about boxes, preference panels, and a help book. I’ll be curious to see how people respond to it - it’s so typical of how most programs work that users may not even notice it. And I’m sure they’ll have no idea the thought or effort that goes into it. It just works and that’s what I hope they’ll notice.