Library Applications
9th of May, 2008
There’s two broad kinds of applications.
- Library applications like iTunes, Things, YoJimbo, iCal and iPhoto, etc.
- and Process applications like Photoshop, Preview, Quicktime, Firefox, GarageBand, etc.
There’s a third, less prevalent kind that doesn’t deal with data at all, applications that just do things like OmniDazzle. I argue that you could put any application into one of those categories, perhaps with overlapping — eg. Firefox processes webpages one at a time but stores things like bookmarks. I have a problem when applications don’t act like they’re in the category they’re in.
The data that process applications use should be application independent. Text files can be opened and worked on with TextMate, BBEdit, Pages, TextEdit, emacs, etc. Images can be opened in Preview, Photoshop, Pixelmator, Acorn, etc. The application is in control of what can be done with that data. Because the data used by these applications is generally application agnostic, it’s not their responsibility and no one expects it to be. End users like managing this kind of data because they’ll save different versions or want to use it inside another application or need to send it or upload it different places.
The data library applications use is often proprietary, even if it’s just a custom XML schema it’s specific to that app. These applications shouldn’t appear to use data but should also appear to store it. They are the lone window for all interaction between the data and the user and this is good. YoJimbo does a fantastic job here, you make a new note, you edit notes, categorise, delete, organise, quit, reopen and everything is as you left it. The data you put into YoJimbo stays in YoJimbo until you delete it from YoJimbo.
That data has to be stored somewhere, it has to be saved, modified, added to and it is. But what makes library applications great is that that whole process is invisible to me. I don’t know where the data is stored, how it’s organised or when it’s saved and I don’t care.
Mac OS has a Library directories for exactly this purpose — data storage for application’s use.
Cha-Ching is a pretty slick personal money management app and a great example of a library application. I put data into Cha-ching, I quit and I’m done. I don’t know where that raw data is, as far as I’m concerned my data is inside Cha-ching.
I do have some small, unrelated issues with Cha-ching so in my endless pursuit of something better I found Liquid Ledger and MoneyDance.
Both look great, Liquid Ledger especially.
On first start up you’re presented with a setup assistant which is often great. But to quote the first screen of Liquid Ledger’s setup assistant, emphasis added:
This assistant will walk you through the steps of creating a new document for tracking financial activity with Liquid Ledger.
Personal finance is the job of a library application — one library, lots of small pieces of information stored in that library. Liquid Ledger is a library application acting like a process application.
What is the point of a single, proprietary library file that I have to load every time I open the application and save every time I quit? I don’t want to manage a library file, I don’t want to put it somewhere safe, I don’t want to make sure I don’t delete it, I don’t want to create organisation around it so I have a place to put it and I don’t need multiple libraries. The OS X Library directories are made for this situation.
So despite Liquid Ledger solving my small issues with Cha-ching I don’t enjoy using it nearly as much and can’t switch.
iTunes and iPhoto handle libraries in the same crappy way. Single library files are stored in your home directory. Dragging an mp3 into iTunes from your desktop appears to add the file to your iTunes library. Deleting the file from the desktop deletes the only instance of the file and iTunes doesn’t know what to play.
For the user it looks like iTunes is the box in which your music is stored but that’s not the case. I would prefer to have everything added to iTunes/iPhoto copied to their respective “hidden” library directories so I’m free to do what I want with what are now my files, unused or linked to anywhere else.

In iTunes’ preferences if you turn on “Keep iTunes Music Folder Organized” iTunes will copy all music it’s fed to
~/Music/iTunes.If you’d really rather it was less apparent where iTunes stored its library you could always change the default folder in preferences to somewhere like
~/Library/iTunes.Made by anon.