[linux-elitists] Freeing document _formats_

Aaron Lehmann aaronl@vitelus.com
Wed Jul 12 00:13:05 PDT 2000


As this topic started looming on the list, I knew that the question was
when, not whether, I would get involved in this thread. While no one has 
directly advocated filename suffixes, that have been discussed. My
oposition to filename extensions is almost religious. I wrote a patch to
GMC that allows you to make it ignore file extensions. I spent a lot of
time trying to convince the authors of EFM and Nautilus to ignore filename
extensions and have nothing to do with them. So be forewarded, I am
opinionated!

I started out on the Mac, where there was a nice tagging system that was
invisible to the user who prefered to ignore it. I was very pleased with
this system, but I am doubtfull of the utility of such a system on UNIX,
which has no standard mechanism for such metadata which would thus prevent
the file type from being automatically transfered along with the file.
With Linux becoming a system where it would be useful for an
application to know the type of a file, people who could not innovate
decided to reenact Microsoft's braindead, haunting descisions of coding in
metadata into the filename. Think of all the space on a harddisk, in a
file, and in the file system that is invisible to the casual user. The
filename is a rare exception. Of all the places they could have put the
metadata, they put it in a place that was visible to human eyes and one
that a human would have to worry about, effectively _FORCING_ users to
name their files in a predescribed way. Why not put this metadata in the
filesystem or some other place? Well, Microsoft is not known for its
innovation. Sadly, neither are most Linux programmers. GNOME and KDE are
clones of the Windows user experiece, down to the last user interface bug.
But let's not get into that.

I think you should be able to understand the problems that I have with
filename extensions by now. I want to name my files what I wanted to name
them as I could on a Macintosh, not have annoying pesky filename suffixes
that _took up space in the filename but duplicated information that was
already present_. Let me say that again. If I title my document "Marketing
proposal" (obviously a hypothetical example :)), I know what it is. On
a MS OS it might be named MARKETPR.DOC, but let's assume for now that our
file system is one such as ext2 that can handle names of resonable sizes.
So, in this example I'm an end user. I don't want to know what format my
favorite SuperDesignApp saved this document in. I don't want that to
distract me.

However, I dislike most examples for end-users becuase I don't like
arguments such as "I'm an idiot - I can only understand an inferior
system!". I'll talk about what I want in a filename. The point of the
filename is to be something that I'll recognize and remember. I can
abreviate things or fully expand and capitalize them if I want to. I could
even include a nasty file name extenstion to remind me what type it was.
The point is CHOICE. I am a hacker, and I don't want to be forced by
crappy software to name my files in the way it wants me to. This is my
file system. I believe in this so much that I commited a patch to AbiWord 
which reversed a previous consensus that file extensions should be tacked 
on to filenames that the users type. Again, I think you get my point by
now.

I've had enough with being negative about this subject. It's time to make
a solution. And I have mine. My favorite currently-existing solution is
file(1). Yes, it is slower. Yes, it is not completely accurate. I don't
care. It works well for me. So well that I wrote a patch for GMC to use
file(1) info instead of file suffixes to find file types. It actually
works quite well, using gnome's API call for getting the mime-type
corresponding to a file using the file(1) database. Feel free to test my
patch and draw your own conclusions. It is available in the latest version
of GMC when you check "determine file type by content" in preferences.
Note that it _does_ fall back to filename extensions, which I think is not
unresonable for a last resort. The current problem is the lack of many
entries in the /etc/mime-magic table that makes it work. I would have
added more but the GMC project was more of a proof-of-concept since GMC is
getting replaced soon and I don't like or use GMC at all.

But personally I admire the file(1) philosophy and innovation. Why keep
track of the type of a file through various weird method when you can
use simple tests to rather accurately determine the type of file at
runtime. That means no need to transmit any sort of metadata over a
network, and no need to use any filename extensions.

I say it's time for us to move on to file(1)-based file management.
Hardware has been getting so much faster and we're still using this
DOS-originated filename suffix crap. Our hardware is amazing but
our software still sucks, sometimes as much as DOS. file(1) is fast enough
for me with the method used in my patch to GMC. I personally hope that
people writing software of any kind use file(1) to detect file types
rather than using some ancient method. Please help make software get
better and more useful!

Well, this was quite a rant. Time to register
burnallfilenameextensions.HTM.org! =)


Aaron Lehmann, the only person I know who actually cares so much about
this crap.




More information about the linux-elitists mailing list