Over at Acts of Volition, Steven Garrity continues his writing about file formats, tackling office suite formats like those used by Microsoft Word and why they are important. As you might recall, I wrote about the first post in the series, which focused on music file formats like OGG and MP3. Again, I am not going to try to explain the problems of closed formats when Garrity has already done such a good job. He concludes this post by stating, "Freedom must be on by default," meaning that programs should be able to open and save open file formats simply and easily.
Here's a personal example. Since late May, I have been looking for a program that would edit the metadata in iTunes Music Database files, which contain track information, album artwork, play counts, and a bunch of other useful information. Specifically, I would like to edit the play counts, in order to import the play counts information from my tenure in Linux and from the installation of iTunes that was on my old computer. iTunes saves music library information in two files, both called "iTunes Music Library." One of them is an XML file. It contains data like this:
<key>Name</key><string>The One I Love</string>
<key>Kind</key><string>MPEG audio file</string>
The other file has an ITL extension, which marks it as an "iTunes Music Database file." It has data like this:
Syc®'ÓÞwø³«6jª7 Oâ¿×šòf"E"ìÏÂ'ãÖçiYIèØ6uÌÇr×3V_çYk(¬Ò‡É)ÜãWÝŸ(®Üi¨¼›GjŽ¤.]ßÔ‡0—PÁºõ²²;¶™ö-ø"ÃÉo ãµ3ôEL»
Obviously, it would be far easier for me to change the data in the XML file. Here's the kicker: while iTunes creates the XML file to make it easier to programmers of other applications to manipulate iTunes library information, the iTunes application ignores any changes in the XML file, periodically overwriting it with the contents of the ITL file. Hence, while I can view the contents of my music library in XML, I cannot modify them without reverse engineering the undocumented format of the ITL file and then creating an application that can open and save such files. If iTunes stored its information in XML, or if the ITL format was documented, an application that allowing modification of play counts would either be unnecessary (as XML can be edited in any text editor) or already created.