4+n letter file extensions (small rant)

Malohkan - Weston was right about what I was proposing. I think the file name should be more descriptive of the content. I definately don’t advocate creating new file types, just for the sake of it.

I suppose its hard to seperate OS issues from file system issues.

Windows - Hides extensions and system files in its GUI, unless you alter the behavior. The filesystem (Fat32, NTFS) appears to choke on names greater than 8.3 and does something to get around this. IIRC, using win98 you could drop into the command line and do a dir. The longer file names would show up as myfile~1.txt and other variants all containing ~# before an extension.

Linux - Seems to hide all files and dirs starting with a . They also have this weirdness about knowing what you want to execute, unless you alter the shell?, as you have to preface your executable with ./programname to run it. Of course you can see the hidden ones using a switch with ls.

Mac - Doesn’t allow me to name files with the same name when using a different case. Seems a little weird, since Fred.text and fred.text are different in Unix land. The GUI presents programs as a single file, but there is some sort of ‘packaging’ going on. TextPad for example is really a directory name, with other stuff in it. Nested inside the directory is the actual binary. I’m sure there is a name for it, but I’m too much the newbie to the OS to know right now.

BeOS - Had a journaled filesystem capable of handling 64 Terabytes IIRC. How cool was that?

Amiga - Had a ‘pairing’ scheme, where anything you wanted to run from the GUI (pre OS2.x) had to have an associated icon file. If you had myprogram, then you needed to have myprogram.icon. The icon files contained image data but later contained meta data as well. You could run the executable from the command line, whether it was a GUI app or not.

Dr. A>

Because linux is outdated and mostly doesn’t have the concept of a hidden file, and instead uses the common unix convention adopted aeons ago of “to hide a file, prepend it’s name with “.””.

It’s badly explained to most linux users, but it’s a security feature. Since linux has practically no builtin commands, they’re afraid that someone could put a file “ls” into a directory, which is actually an “rm -R /” and you would run it by accident whne you typed “ls”.

There are other, more humane, ways of dealing with this threat, but this is a pretty simple and highly effective one: . is never in your path.

Hmph. The linux kernel is still broken (has bene for 5+ years) with mounts that decapitalize all capitalized filenames. It’s a data-loss bug that linux developers dont think is worth fixing.

Mac also does some nice-but-unfuriating things - like allowing almost any character in a filename, that either corrupts the files or crashes other OS’s when you’re transferring files from OS to OS, because most OS’s can’t cope with things like plain * and ? in a filename!

[quote]I suppose its hard to seperate OS issues from file system issues.

Windows - Hides extensions and system files in its GUI, unless you alter the behavior. The filesystem (Fat32, NTFS) appears to choke on names greater than 8.3 and does something to get around this.
[/quote]
This hasn’t been an issue for years.

[quote] IIRC, using win98 you could drop into the command line and do a dir. The longer file names would show up as myfile~1.txt and other variants all containing ~# before an extension.
[/quote]
That was a backward compatibility hack for old software that didn’t understand that filenames could now have reasonable names.

[quote]Linux - Seems to hide all files and dirs starting with a . They also have this weirdness about knowing what you want to execute, unless you alter the shell?, as you have to preface your executable with ./programname to run it. Of course you can see the hidden ones using a switch with ls.
[/quote]
Blah^3 has explained the security issue around not having the current directory in the path. The “hide stuff starting with dot” is at least a standard unix convention. It is similar to the file extension issue in that a naming convention is used for more than just the name. Rather that needing to learn some new obscure way to make files hidden, this ‘easy’ workaround is employed.

[quote]Mac - Doesn’t allow me to name files with the same name when using a different case. Seems a little weird, since Fred.text and fred.text are different in Unix land. The GUI presents programs as a single file, but there is some sort of ‘packaging’ going on. TextPad for example is really a directory name, with other stuff in it. Nested inside the directory is the actual binary. I’m sure there is a name for it, but I’m too much the newbie to the OS to know right now.
[/quote]
Mac OS like Windows and AmigaOS uses a case preseerving but case-insensitive file system. I prefer it to case sensitive file systems, since I think it is more confusing than helpful to have filenames that differ only by case. This can cause problems though.

The ‘package’ concept is where the Mac is brilliantly superior to other OS’s. It is only the Mac GUI - the Finder - that by convention doesn’t recurse into package contents unless explicitly told to (context menu ‘Show package contents’). The package concept makes application installation a trivial drag and drop application, and complex documents containing many files can be treated as a single entity. In the old days there was a special attribute set on the folder to say “this is a package”, now OS X can just recognize a specific directory layout as being a ‘package’, so once again they use a simple technique that doesn’t require any new interface to manipulate special bits… simply recognizing the layout makes packages easier to deal with most of the time.

[quote]BeOS - Had a journaled filesystem capable of handling 64 Terabytes IIRC. How cool was that?
[/quote]
It’s cool, but Windows and Mac also use journaled filesystems by default, and most modern Linux systems are the same. I’m not sure where the limits are in terms of partition size.

[quote]Amiga - Had a ‘pairing’ scheme, where anything you wanted to run from the GUI (pre OS2.x) had to have an associated icon file. If you had myprogram, then you needed to have myprogram.icon. The icon files contained image data but later contained meta data as well. You could run the executable from the command line, whether it was a GUI app or not.
[/quote]
Old windows 3.1 stuff used a similar concept that is still supported today for legacy stuff. I think it was .pif files.

Blah^3 wrote that the Mac can have files with almost any character in the name. The Amiga also had this ability. The backwards DOS/Windows stuff kept it away from most users still to this day. It’s been 20 years and we still have the artificial limitation on what characters are allowed in filenames in the worlds most popular OS. Sad. I’m not sure if Linux can handle anything like it either.

There is no good reason to restrict what characters are allowed in a filename. Simple escaping rules can allow path separator characters and the like to not hold special meaning. If this were implemented from scratch today, perhaps the rules for escaping characters in URLs would be the way to go.

Don’t get me started on the arcane and ludicrous concept of “drive letters” that Windos is still forcing on users decades after better systems were introduced by Atari, Amiga, and Mac, not to mention the single rooted filesystem of the unix world. Microsoft is directly responsible for keeping general computing in the dark ages. All because they want to be backwards compatible with DOS - the boat anchor that brings down the whole OS.

I much prefer the way Mac moves forward and knows when it is time to simply not be backward compatible with something that puts such severe limits on progress.

[quote]Yes, but you can set the file preferences to show the extension always, that’s what I do.
[/quote]
Well of course, everyone with half a clue knows enough to turn that back on first thing… the problem is that for the people for which it matters the most, those without a clue, it never happens. Most users haven’t got a clue how to do that and they don’t even know that they should do it. Yet another way that MS screws the consumer one tiny bit at a time.