I mean, all other OSs that I know of use some form of slash as a path separator, so why did Apple choose the colon?
Colon was inherited from SOS for the Apple III
Unlike one may assume, MacOS (1984/01) did not inherited the colon (
:) from Lisa OS (1983/01), which used a hyphen (
-) as path separator, but from Apple III's SOS (1980/10), created for the Apple III to manage the huge data pile of a 5 MiB Profile.
On colon vs. slash, Apple went not once but twice full circle:
SOS had a colon,
ProDOS, the direct SOS offspring for the Apple II, switched the colon for a slash (
/) when introduced in 1983; its 16-bit follow up
ProDOS 16 for the IIgs (as kernel of GS/OS) reintroduced the colon for compatibility with MacOS, which in turn with
Mac OSX - (re)introduced the slash to accommodate its Unix base system.
The original Macintosh File System did not support directories. But the Mac did support multiple floppy drives from the start, and colon
: was used in fairly standard fashion as a drive prefix analogous to VMS, MS-DOS and elsewhere –
This is only an educated guess, but I suspect they generalized
: to a path separator later with HFS as it was already a reserved character for the drive specifier use. This would prevent incompatibility with forward slash
/ being used as a valid character in existing Mac file names.
I think the colon deserves to be considered the original, the one true separator character. All others are mere imitators ;-)
My rationale for this is the seminal paper A General-Purpose File System For Secondary Storage which first laid out the conceptual design of a tree-structured file system. It used ":" to separate components in path names (and in tree names, a distinction we don't generally bother with these days).
Thus, to answer the question - I imagine that the MacOS implementers were simply following historical precedent.
When implemented in Multics, the path separator had become ">", so the honors go to the paper, not the implementation.
George 3 (for the ICL 1900 series) curiously used ":" for a username prefix, but "." for the pathname separator. I suppose this to be similar to the way Unix interprets "~user", except that ":user" was built into the file system.
It's not completely accurate to focus on slashes as the established solution —
. was also in the mix, being DEC's choice for both TOPS and VMS.
That said, I'm going to speculate wildly that it comes down to:
- Apple's Macintosh filing systems were already fairly non-standard — supporting forked files, for example — in support of simplifying the user experience; and
:makes a lot more sense to a normal non-computer user than a slash.
E.g. suppose we were important 1980s office people and I told you that I had filed a report under 'Finance: Housing', you'd assume it was in the 'housing' subcategory to 'finance'. If I told you I had filed it as 'Finance/Housing' you'd think it was in the single category that is simultaneously both finance and housing.
So the former better communicates intent.
Couple that with the fact that Macintoshes of the era couldn't even physically read the floppy disks of other machines — other disks were either 5.25" or double density, Macintoshes take 3.5" disks and the pre-SE Macintosh disk controllers can decode single density and GCR only — and there's really no good reason for hewing to slashes.