3-character filename extensions
warp.povusers.org
warp.povusers.org
I think that the original selection of 3 character extensions was made because it felt like a comfortable number of characters to make something meaningful while not being too burdensome to type. The fact that we still tend towards <= 3 character extensions is probably because this is still true, not because of a conscious attempt to maintain DOS compatibility.
Also, probably should note, file extensions are largely a Windows-based OS thing as well. On the 'Nix's, an extension isn't really needed (OK, it's not needed on Windows-based OS's either, but the OS prefers it). the "file" command will tell you all you need to know about a file without an extension. Or, you can just open it with a text editor. Or, execute it if it has execute permissions, etc.
So, it seems, the 3-character extension (or extensions at all) are really a Windows-Based OS thing.
(While we're at it, Windows-Based OS's are the only OS's I've worked with that actually require something in-front of the "."! For example, try to natively create a ".somefile" on Windows -- it will complain and not let you).
That's what he means...you can create it in various applications though.
A slightly bigger challenge is a file named CON :)
I was specifically referring to the part of the article that the author claimed that windows inherited it from MS-DOS, which inherited it from CP/M. The chain goes back farther than that -- by the time CP/M was written the 3-character file extension was well-established. In general CP/M was influenced a lot by the DEC minicomputer OSes (its "PIP" command is one obvious example)
AFAICT, UNIX never had a concept of file extensions.
In the 80s you started seeing things like "resolv.conf" appear, so they didn't stay mostly-single-character for long.
Can easily create such files by other means (saving in notepad, sublime, etc).
IIRC I first saw the three-letter extension scheme when I started using TOPS10 in 1974.
Exactly, and nowadays we have fast enough storage that reading the first few bytes of a file isn't a burden either. Might as well do that instead of appending bytes to each filename. Magic mime is more reliable, versatile and arguably safer (.jpg.exe attachments..?).
I'd also argue that the endurance of the file extension is a hint that people may actually like them. Extensions were invented as an affordance to the computer (which it no longer needs) but the information they convey is useful to humans as well. It may be a quirky old convention, but it provides a universally-understood language for describing a file type.
Anyway, I think the overall discussion on this submission is a good example of why 3-character extensions survive: some people here argue for longer extensions, others say we should have no extensions, and the silent majority is happy to keep splitting the difference.
By default MacOSX doesn't read Linux file systems (EFS, ReiserFS, etc); by default Linux doesn't read MacOSX file systems (HFS, HFS+). On the other hand, by default, most system read FAT16 or sometimes FAT32 file systems.
Therefore if you want to use those amovible media to exchange data accross file systems, you better stick to those MS-DOS file systems. Granted, you could use MS-Windows extensions, but again, nothing guarantees that the system where you will plug your USB key will have a system understanding those extensions. In all probability, it will have FAT16 or FAT32 support, ie. 8.3 file names.
(Any stragglers can simply be ignored; people still stuck on DOS are even less important in the grand scheme of things than people still using the Amiga...)
The same logic applies to most programming languages. I have no problem remembering `.js` is javascript or `.rs` is rust. And I think the vast majority of programmers would agree with me.
Further, filenames don't play a large role in most (nontechnical) users lives. The tools they use (e.g. Word or Excel) append the filename for them, so they don't worry about it at all. The only people who routinely write filenames by hand are coders and they're familiar enough with the extensions that shortcuts work fine.
This works for many similar concepts. The idea of not overloading words that already have meanings with other meanings was one of the sensible underpinnings of the Hungarian Naming Convention. Let's not rehash the Hungarian debate, you don't need to like Hungarian to realize the sensibleness of this particular concept.
But seriously, it's a silly limitation from a bygone era. Why should we adhere to it?
Why should we have to remember these things? Some of them are easy to remember, but even less technical users change their workflows from time to time.
Sketch uses ".sketch" as its extension. Should they have gone with something ".skc" as their extension, just because that's *the way things are done?", even though the application only runs on the latest version of an operating system without that primitive limitation?
Even with Markdown, most people use ".md", but Gruber has expressed ".markdown" as his preference because the limitation doesn't really exist.
Ideally the filetype should be determined from metadata or scanning the header.
(Speaking as someone who's had to fix image file processing bugs because the original coder trusted file extensions to be correct.)
From the article: "It's not like it saves typing or anything. It only decreases clarity."
I find it both easier and clear enough.
Typing p-s-d is faster than typing p-h-o-t-o-s-h-o-p but typing the whole thing isn't the only way to skin the cat.
Interestingly this is a problem that lives on, people still want to identify what a file is and that requires some sort of identifier. Embedding it in the name is just as good as anything, but the important bit is that you stay consistent. If you're web documents are .htm, .html, .www, .web, etc your configuration gets unwieldy.
The app install process on Windows makes me weep (I think that Visual Studio installs well over 10,000 keys in the registry. What the hell? This number should be zero in a well designed system . . . but don't get me started on the disaster that is COM).
Incidentally, Windows NT has file forks. They're not often used, and lots of utilities don't know about them, but they can be quite useful.
Sounds like he has been missing out on Microsoft Office since at least 2007, though I must say I can only applaud that fact.
More seriously, the article might as well have ranted about files having any extension at all. Magic mime is much more reliable and versatile, not to mention all the viruses using .jpg.exe extensions.
Decade later you can see that there a greater amount of 4+ characters extensions.
Good one, hadn't thought of the analogy to .commercial, .network and .organization yet (.com, .net and .org, incase anyone doesn't get it). It's 2014, let's use the whole name already!
Also, the 3 letter convention is a somewhat helpful limitation in the same way that countries defining which side of the road to use is actually helpful. For instance, it is nice to have all of my JPEGs ending in .jpg rather than a mix of .jpg, .jpeg, .JPG .JPEG.
NTFS has a file length limit fo 255 characters. And if the company you work for does things like this:
\\SERVER1\Data\Region\SubRegion\SubSubRegion\Reports\Weekly\2014-25\WidgetReport\SubWidgetReports\..... you can eat up space pretty quickly. You might need those extra characters.
The posix and NT-native APIs didn't have this limit so Windows admins either had to find a ported POSIX utility (rm.exe was popular) or learn how to use UNC paths:
http://msdn.microsoft.com/en-us/library/aa365247%28v=vs.85%2...
Characteristically, Microsoft doesn't seem to be interested in fixing this so everyone who builds a new file sharing service probably has to add layers of script-kiddy protection for backwards compatibility.