What's the history behind using file extensions to indicate the type of a file?

  • Thread starter Thread starter Stephen Tashi
  • Start date Start date
  • Tags Tags
    File History
Click For Summary

Discussion Overview

The discussion centers on the historical development of file name extensions (such as *.c, *.for, *.bmp) and their role in indicating file types across various computing systems. Participants explore the evolution of file naming conventions from early computing systems to modern operating systems, touching on both personal recollections and technical specifications.

Discussion Character

  • Historical
  • Technical explanation
  • Debate/contested

Main Points Raised

  • Some participants recall that early mainframe computers did not require file name extensions, using them primarily as personal reminders.
  • Others note that with the advent of MS-DOS, file extensions became more standardized, although some software could theoretically identify file types without them.
  • One participant mentions that Unix systems had file extensions as early as 1977, predating personal computers.
  • Another participant challenges the timeline, suggesting that Apple computers may not have used file extensions until later, while IBM PCs utilized them from the beginning.
  • Several participants cite various systems, including DEC machines and HP2100, that employed file extensions in the 1970s.
  • IBM's MVS/TSO is mentioned as having a system for using dataset names to infer types as early as 1971.
  • Discussion includes references to specific file extensions used in different programming languages and systems, such as .for for Fortran and .c for C programming.
  • Some participants express uncertainty about the requirements for file extensions in specific contexts, noting that it may depend on the program or script being used.

Areas of Agreement / Disagreement

Participants do not reach a consensus on the exact timeline and requirements for file extensions across different systems, with multiple competing views and uncertainties expressed throughout the discussion.

Contextual Notes

Participants acknowledge limitations in their memories and the potential for variations in file extension usage depending on specific systems and software. There is also mention of the evolution of file handling from tapes and decks to modern file systems.

Stephen Tashi
Science Advisor
Homework Helper
Education Advisor
Messages
7,864
Reaction score
1,605
What's the history of using extensions of file names (such as *.c, *.for, *.bmp etc) to indicate the general type of a file?

My hazy memory of working on ancient mainframe computers is that a file name extensions were not mandatory for most software. For example, if you wanted to compile a Fortran program, you didn't have to end the name of the source file with ".FOR". People did use file name extensions as reminders to themselves, but these were a matter of personal preference.

When ms-DOS, arrived, the associated software did expect files to have particular extensions. For example, a BMP file has information about itself in a specified header within the file, so in principle a program could examine the contents of a file named "WALDO" and determine if it was a BMP image file instead of expecting the file name to be "WALDO.BMP". However, most software was lazy in that respect and required the extenson on the file name to indicate the file's type.
 
  • Like
Likes   Reactions: roam and Wrichik Basu
Computer science news on Phys.org
That's an excellent question. First, we didn't have files, we had decks or tapes. Then we had files but they didn't have names (search for 4 EOF marks on the tape). Then they had names, then they had names with extensions.

The earliest I can remember was Unix in 1977 had file extensions. That long predates the PC or the Apple ][ or MS-DOS.
 
anorlunda said:
The earliest I can remember was Unix in 1977 had file extensions. That long predates the PC or the Apple ][ or MS-DOS.
Not so long, depending on how long "long" is.
Apple ]['s were around in '77, and the IBM PC dates to '81. I don't believe that the Apple computers used file extensions, at least not before ProDOS (if then), but the PCs certainly used file extensions from the get-go, I believe.
 
I also remembered that the DEC machine also had file extensions. PDP-11 date? DEC 20 date? Also Multics going back to the 1960s.

Edit: Also the HP2100 circa 1973 had file extensions. As did the Prime 300 in 1974. The VAX in 77. Data General, Interdata, Modcomp, Xerox, there were many systems with file extensions in the 70s.

Edit: The Apple ][ in 77 yes, but it did not have files until the year ?? when it got floppy disks too. I bought my Apple ][ Plus model in June 1979. It had floppies from the first, if I remember right.
 
Last edited:
  • Like
Likes   Reactions: Klystron and Nik_2213
IBM's MVS/TSO did something similar in 1971.
 
  • Like
Likes   Reactions: Asymptotic
Stephen Tashi said:
What's the history of using extensions of file names (such as *.c, *.for, *.bmp etc) to indicate the general type of a file?

My hazy memory of working on ancient mainframe computers is that a file name extensions were not mandatory for most software. For example, if you wanted to compile a Fortran program, you didn't have to end the name of the source file with ".FOR". People did use file name extensions as reminders to themselves, but these were a matter of personal preference.

When ms-DOS, arrived, the associated software did expect files to have particular extensions. For example, a BMP file has information about itself in a specified header within the file, so in principle a program could examine the contents of a file named "WALDO" and determine if it was a BMP image file instead of expecting the file name to be "WALDO.BMP". However, most software was lazy in that respect and required the extenson on the file name to indicate the file's type.
Vanadium 50 said:
IBM's MVS/TSO did something similar in 1971.
It still does. These days it's called z/OS TSO/E. The EDIT (line editor) command in TSO (Time Sharing Option) uses the final qualifier of a dataset name as a dataset type to set defaults for record format, block size, and logical record length. Most other programs ignore the content of dataset names. MVS still limits dataset name length to 44 characters.
 
Stephen Tashi said:
What's the history of using extensions of file names (such as *.c, *.for, *.bmp etc) to indicate the general type of a file?
The article linked to by @256bits has a link to this 8.3 filename format article.
 
DEC PDP-11's (not sure about the PDP-8) and VAX computers in early 1980's used file extensions. IIRC the C interpreter expected .c and produced .o object files expected by the compiler. My first use of FORTRAN in late 1970's complied according to directives coded on the first punch card (usually colored green) in job control language (JCL). The IBM mainframes included .for and.obj file extensions but do not know if they were required. Probably depended on the program or script.

[Edit: removed .exe from JCL list. Used later.]
 
Last edited:
  • #10
Klystron said:
My first use of FORTRAN in late 1970's complied according to directives coded on the first punch card (usually colored green) in job control language (JCL). The IBM mainframes included .for,.obj, and .exe file extensions but do not know if they were required. Probably depended on the program or script.
The compiler or assembler can generate a dataset name ending in .OBJ for the object module. I've never seen .EXE in an IBM mainframe dataset name. It wouldn't be invalid, but it also wouldn't have its special meaning there. Maybe you remembered the JCL EXEC statement.
 
Last edited:
  • Like
Likes   Reactions: Klystron
  • #11
Klystron said:
(not sure about the PDP-8

OS/8 had two letter extensions.
 

Similar threads

Replies
65
Views
5K
  • · Replies 3 ·
Replies
3
Views
6K
Replies
10
Views
5K
  • · Replies 13 ·
Replies
13
Views
6K
  • · Replies 15 ·
Replies
15
Views
2K
  • · Replies 21 ·
Replies
21
Views
6K
  • · Replies 13 ·
Replies
13
Views
4K
Replies
1
Views
4K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 12 ·
Replies
12
Views
7K