Feedback sent to Apple on 9/18/01:
I just wanted to drop a line in while you're wrapping up 10.1 and say that
after a lot of thought and debate with friends, and research telling me
how you have implemented it, that the feature of hidden filename
extensions in 10.1 is actually not only the way it should be, but an
ingenious step.
It can't be denied that loading file-type information into the filename is
an ugly hack, and the world would have been better off without it (oh,
what a world it would be if Apple had dominated in the 80s and 90s!)...
but it also can't be denied that the crappy way that Windows has designed
their file-typing system is the Way It Works now, and holding to Apple's
(superior) system out of stubbornness would just deepen people's
uncertainty about the platform. So I see the wisdom in adopting the
idiom.
But more heartily, I applaud the way Apple is *doing* it. If it's possible
to go about implementing such an awful feature the "right" way, it's the
way Apple has done it: by making the extension into a piece of meta-data
that's stored along with the filename, turned off or on at the user's
whim, on a per-file basis rather than globally. In effect it's as if the
extension were just an associated bit of data that gets called up and
tacked on when the file is sent into a program (or out onto the Internet),
which is a solution that many of us proposed when we first heard about the
filename-extension brouhaha in the first place. So we won't have
picture1.jpg.jpg or virus.gif.vbs problems, or so we can
hope.
There are, of course, some complexities to watch out for. What about, for
instance, filename collisions? Does 10.1 trap for collisions on the
basename level, or based on what is displayed at the time, or on the full
"unhidden" filename? In other words, can you have a picture1.gif
and a picture1.jpg in the same folder? If so, under what
conditions? I don't want to see my Mac succumb to the Windowsian stupidity
of six files in a folder all called setup, differentiated only by
their icons. The best solution would be to check for name collisions based
upon the visible portions of filenames depending on whether the extension
is being displayed or not (so picture1.gif and
picture1.jpg could coexist, but not picture1 (with
.gif hidden) and picture1 (with .jpg hidden)).
And the global "always show filename extensions" switch should probably
not try to affect that, because what if you turn it on, put some colliding
files into a folder, and then turn it off? What should it do-- prompt you
for an action on each offending file? No. That switch shouldn't try to
address such a problem; it's an "Experts only" mode, as I see it
now.
And of course, we must STILL make sure that type/creator codes are always
set and honored by all applications, including Cocoa ones. The OS should
still prefer those codes rather than the extension for type mapping,
because it's so much more definitive and configurable than the Windows
way. We must be able to associate files with certain apps based on the
creator code. And the type code should override the extension. And the
type/creator combination should always be used to generate the correct
icon for the file, like it always has been. Filename extensions are a
second-tier mechanism, something to assist in cross-platform
compatibility, not something Mac users should have to get used to in their
everyday lives.
In that vein, we must be sure that the table that maps extensions to file
types is user-accessible and customizable. I need to be able to set what
application should open my un-type-and-creatored .jpg files! And I need to
be able to add new extension mappings for file types that Mac OS X doesn't
know about! *And* I need the system to apply the appropriate type/creator
codes to new files that enter the system, like it used to do with the
Internet Control Panel. All this functionality can be encapsulated into a
new system preference panel, "Extension Mappings" or some such. A table
that lets me customize the extension-to-application mappings the OS knows
about, add new ones, and associate type/creator codes to assign to files
that only have extensions. That's a need that will not go away.
Finally, something that must be streamlined and thoroughly tested is what
happens when you rename a file. Let's say you have a file called
Diary.doc. What if you give it a name like My Diary
4.6.2000? If the new extension isn't recognized by the system, don't
bother and frighten the user with dialog boxes with dire warnings about
what might happen if you change the extension. Just make it My Diary
4.6.2000.doc and hide the .doc extension. But what if you
have picture1.jpg and you rename it to picture1.gif?
That's a trickier situation. Do you make it picture1.gif.jpg and
hide the extension? That's what leads to things like
virus.gif.vbs... it's clearly not a good way to go. But neither
is it a good thing to sternly tell the user "Hey! Just by renaming the
file, you're possibly going to screw up your system!" like Windows does.
And renaming it canonically to picture1.gif will in fact break
things-- that's no good, unless it sets type/creator codes to cover for
it. So maybe what we need is some kind of automated mechanism that will
flip the switch so the extension is always shown, if multiple recognized
extensions are detected. Or better yet, have it so that when you rename
the file, it ensures type/creator codes are set, and then renames it to
picture1.gif with .jpg hidden. That way it would still
functionally be a JPEG file, even for Windows users, but it would still
display the name the user gave it. Of course, Windows users with
extensions hidden would only see picture1.gif, but eh...
It's a rather messy situation, but I want to thank everybody at Apple for
taking these things into account. It's a thankless job, I'm sure-- and the
urgently-worded feedback messages I've been sending have not helped
matters, I imagine. I apologize for hounding you on this subject, but I do
think it's vitally important to the future of the Mac that it be handled
properly. However, I'm now much more willing to accept that Apple has an
intelligent plan for it, and I have faith in the product designers and
engineers and their ability to see it through.
Thank you...
Brian
Back...