(Back to index)

3-character filename extensions

One thing which really baffles me is why even today, in 2010, many file formats and programs (and people) limit file name extensions to 3 characters, for no obvious or logical reason.

The vast majority of new file formats which are created to interact with new technology, will have a three-character file name extension, even if it doesn't make any sense, makes the extension cryptic, and there is no logical reason for this. Why?

For example, the relatively recent MPEG-4 container file format has the extension .mp4. Why? Why couldn't it be .mpeg4? What would be the problem?

Take almost any file format, and you'll find out that its file name extension will consist of at most three characters.

Perhaps the only, quite unusual, exception is the .html file name extension for HTML files. But even then, you will nevertheless find on the internet tons and tons of files with the .htm extension. Why? Why do so many programs/people use a shortened version of the file name extension? For what reason? It doesn't add clarity or anything else. Why do they do that?

The argument that DOS used three-character extensions (which it inherited from the older CP/M operating system) doesn't make the least bit of sense. Why? Because DOS had also a limit of 8 characters for the file name (besides the three-character extension), yet people have no problem in using longer file names than that. Trying to somehow keep some odd type of compatibility with a legacy system (which died over 10 years ago) by restricting the file name extension to 3 characters doesn't make any sense when the file name itself is over 8 characters. If you use a file name longer than 8 characters, then it doesn't make any kind of difference if you also use an extension longer than 3 characters: You already broke any kind of compatibility with legacy DOS systems. Restricting the extension to 3 characters isn't going to change anything.

And exactly why would one even want to have this kind of half-assed "support" for legacy DOS systems? The three-character extension limitation was removed 15 years ago. While it took years for users to completely migrate away from DOS applications, by the early-2000's all of them had done so in practice, and DOS could be declared dead for good. Nobody uses DOS directly anymore. You can't even buy any old DOS system which does not support long file names anymore. The system is dead and buried. Nobody uses it, and thus there's absolutely no need to have any kind of half-assed "support" for it.

And before you ask: Yes, the 8.3 file name format was pretty much exclusive to DOS. Earlier CP/M used the same file name limitation, and DOS inherited it from that. Basically no other popular system used that kind of limitation. Especially nowadays, in 2010, there are no operating systems being used in practice which would have any kind of three-character file name extension limitation.

So to answer the question: No, there aren't any systems out there which would require three-character extensions. There is absolutely no reason to restrict file names in that way.

So why do program designers still limit their new file formats to have a three-character file name extension (while having absolutely no problems in using file names longer than 8 characters)? There is absolutely no reason for this.

On the contrary: This causes problems. There are only so many different three-character extensions you can use, especially if you want them to be somehow understandable. This causes tons of collisions because many systems (especially Windows) use the file name extension to deduce the file type. Now, try making a little research and count how many different programs use completely different file formats (which have nothing to do with each other) with the file name extension... let's say .dat. An estimation of one hundred is probably way too low.

To all the people out there cutting their HTML file names to have the extension .htm instead of .html: Why are you doing that? For what reason? What are you going to achieve with that? It's not like it saves typing or anything. It only decreases clarity.

(Back to index)