A Little Information for Our Files
Too often neglected in developer education, file systems deserve more respect.Partisans of object-oriented programming, often including myself, often say that the only proper programming model is one of data structures with bundles of associated methods wrapped around them. Yes, algorithms are fascinating things, but ultimately any application thats not just part of someones doctoral thesis is going to do something to something else. Mere data-centric advocacy falls short, though, in a world of massive data collections and the need for persistent storage. Even the casual user who actually knows something about files, instead of being limited to application-imposed abstractions of "documents," has a big edge on fixing things when they break or on creating new capabilities as needed. The higher-level developer concern is to make sure that data has a safe place to live, and that means a robust (and preferably high-performance) file systembut the file system is the most neglected element of developer education, and that should change. I got to thinking about file systems importance with the news late last week of MacFUSE, a Mac OS X version of the open-source FUSE toolkit for implementing file systems in a user spacepulling file system conception and construction into the space of a developers options, instead of being the kind of chunky decision that only comes at the level of choosing an entire operating system.
Developers have had some real disappointments in the area of file systems during the last few years: WinFS, which would have given developers a powerful new set of levers for manipulating stored information, disappeared from Vista in August 2004 and fell off Microsofts product road map almost entirely last June. Im sure that many developers were dismayed by this lost opportunity.