Christopher R. Lee said:
Why the hell did they do that? It just adds more confusion to a confused
and confusing OS.
When you install a program, it proposes "C:\Program Files", whatever your
language. When you want to know what the installer has done, you have to
know to look in "C:\Programmes" (in French). I thought aliases were for
Unix geeks.
If the program installer is written correctly, it will query for
CSIDL_PROGRAM_FILES and display "C:\Programmes" on a French Windows, instead
of "C:\Program Files". If an Installer displayed "C:\Program Files" as the
default installation path on French Windows, then it is a bug in the
Installer.
But, I take your point about path names and aliases. I kind of agree.
Ideally, the literal file system name of the directory would fairly
arbitrary, not necessarily meaningful to humans (eg, "C:\bin"). Let the
Shell (Explorer) take care of translating literal directory names into
human-readable strings ("Programmes" or "Program Files")
CMD is tied to legacy path names; but Powershell can navigate multiple
hierarches (flesystem , registry etc). So Powershell could be tweaked to
navigate a User-oriented namespace ("cd Program Files" would change
directory to c:\bin); and leave the filesystem behind.
I think Microsoft was stuck between the two extremities ... for a long time,
they've *tried* to replace literal directories with logical place names,
such as CSIDLs. That is a good thing. But they couldn't let go of filesystem
directory names as some kind of meaningful string, in their own right.
Partly for backwards-compatibility reasons. It also seems the marketing guys
at Microsoft have even colonised the filesystem - Microsoft products always
want to install into directories caled "C:\Program Files\Microsoft Great Big
Product 2007 Enterprise Edition v1.1". If Microsoft followed their own
Windows developer guidelines, they'd have ONE directory off
CSIDL_PROGRAM_FILES called "Microsoft" and then all their products would
install under there (eg C:\Program Files\Microsoft\SQL Server" instead of
C:\Program Files\Microsoft SQL Server"). This would result in a shorter,
tidier tree. But it seems the marketing guys just can't resist trying to get
the string "Microsoft" into our faces an extra twenty times. I hate it. We
should say to the marketing guys "No, no, no - this is a file system path;
it is an operating system internal data structure, not free advertising
space. Go pollute the Shell, instead". After all, we say "dwProcessID" not
"Microsoft_dwProcessID" ... and so on.
Oh well. All widely-used operating systems have a tonne of compromises. If
Synchronicity takes over from Windows, maybe they'll get it more right, this
time round
