On 2009-07-09, at 06:41, Shot (Piotr Szotkowski) wrote:
Surely you can’t do anything serious with a file based solely on its
extension, and I guess you’d rather my UI would not have to look at the header just to choose an icon for a file, *and* the shell completion is
so much easier to code if it only has to consider extensions – but why
wouldn’t a filesystem that, say, stores the file type in metadata, work
better than extensions?

Because using metadata for data, even something as simple as the UNIX execute bit, is hateful.

Metadata is a great place for storing information for managing access to the file (permissions), caching information about the file (eg, spotlight), and for tracking system level information (has it been backed up, when was it created/modified/whatever). Metadata should not be used for anything required to use the file (figure out the program to open it, etcetera). Ideally, the file itself should contain that information, but after 50 years of evolutionary negotiation the file name and location has FINALLY reached the point where it can be reliably used for that role across more than one OS (it took a LOT of work to get things to this point. If you never had to deal with file names like RL0:[1,54]TKB.SYS;1 or UNION*DEVEL.BUILD(JANE).CONF/REL be happy).

It's been more than 25 years since Apple came up with their resource forks, maybe 15 since BeFS, and a decade since NTFS file forks really started getting attention, and there's no sign that there's going to be any consistency in metadata in the next half century. Everyone is moving AWAY from using metadata for anything that will break functionality if it's lost. We do NOT want to go the other direction. Really.

Reply via email to