[I sent this almost a week ago, but it never showed up, probably because
my From address didn't match my subscription address. Apologies if this
is a dup.]
I confirm Jon's observation. It's true, sendmail wasn't
"designed" in
the waterfall model sense, because at the time the email world was a
disaster, with new networks appearing seemingly daily, each of which
seemed to feel a need to come up with a new syntax for addresses. Some
of those syntaxes were left-associative and some right-associative, and
there was no "correct" answer --- different sites wanted to parse the
same email address differently. For example, consider:
decvax!research!foo@berkeley
If you're on decvax you should send this to research. If you're at
Berkeley you should send this to decvax. And if you're on some other
site with an ARPAnet connection but without UUCP, you should send it to
Berkeley. I concluded that something arbitrarily flexible (which meant
Turing Complete) was necessary. Also, since some sites didn't
understand things like "@" signs in addresses, it was necessary to
rewrite the header so "reply" would work. And all of this had to fit
into a 16-bit address space.
Life is easier today: the world has agreed on "user@domain", the
multitude of networks (e.g., UUCP, DECnet, CSNet, Berknet, ChaosNet,
PurdueNet, and possibly my favorite, a network out of the UK that used
"user@domain" but with the domain reversed, e.g., eric(a)edu.berkeley.cs
instead of eric(a)cs.berkeley.edu) is down to effectively one, and the
only 16-bit machines out there are not-very-powerful microcontrollers.
If I were building sendmail in this very different world, it would look
very different.
eric
On 2018-11-19 08:48 , Jon Steinhart wrote:
Warner Losh writes:
On Fri, Nov 16, 2018 at 2:40 PM Jon Steinhart
<jon(a)fourwinds.com> wrote:
Emacs sort of
violates my UNIX-sense as it does many things instead of doing one thing
well.
I'd argue that's not a bad thing. When people tried to add macros to make
or sendmail, you wound up with crazy like imake or the crazy sendfile.m4
stuff. Of course, sendmail and one thing aren't mates, but sometimes you
need to do a few, well chosen things well to avoid the crazy that trying to
misuse something will bring to the table.
Warner
Funny that you bring this up as I was just talking to Eric about this.
I was telling him that someone had recently asked me why sendmail was
so complicated, and I explained to them that it was because email wasn't
always like it is today; that there were many disparate email systems and
sendmail glued them all together. Eric said something like yeah, and I
would have liked to have a better syntax but memory was too constrained
at the time to let me do anything better.