On Wed, Jul 27, 2011 at 2:37 PM, Ben Finney <ben+python@benfinney.id.au> wrote:
Dan Stromberg <drsalists@gmail.com> writes:

> It's been suggested that *ix has hardlinks because someone thought up
> hardlinks before someone thought up symlinks - IOW, there are those who
> suggest that if people had added symlinks first, no one would've bothered
> adding hardlinks.

Well, that suggestion is faulty. It ignores the fact that *all* ordinary
files on Unix are hard links. Any ordinary file entry in a directory is
a hard link to the file's data.

Not really.  Whether hard links is supported is mostly a matter of what filesystem you are using - in modern times.  It's true that filesystems with complete POSIX semantics probably all support hardlinks, but that's far from every file on any given *ix.  And of course, POSIX doesn't appear to have been created until the late 1990's.
 
The “hard links” capability, therefore, isn't something that was added;
it's fundamental to Unix filesystems from their inception.

Hard linking was reportedly in Unix Version 1, but I see nothing indicating it was in the original Unics of 1969.  Then again, I don't see much of anything on the net about what was and wasn't in Unics.
 
The ‘ln’ command adds *additional* hard links to an existing file's
data; but, once added, they're exactly the same as any other ordinary
file entry.

Well, if you're in a filesystem that supports hardlinking anyway.  Supporting that isn't inherent.  It requires some sort of on-disk representation for persistence, and not all filesystems support that.
 
> Symlinks are almost always more flexible, and almost always more
> clear.

Yet many tools don't work as expected with symbolic links which will
work with an ordinary file (a “hard link”). One can argue that such
tools are to that extent buggy, but symbolic links produce deliberately
different behaviour which is sometimes not what one needs.

Please recall that I was paraphrasing someone saying that hardlinks were seldom better, not never better.  I don't know that there's anything in your post that addresses that.

It's much easier to imagine a system with no hardlinks, than to imagine a system with no symlinks.