The other gasp-worthy thing about SGML was that all of these lexical items, such as '<', '<!', and so on and very much on, were configurable, so you could prefix your document with declarations (in the 'other' syntax) which changed these, and have different character sequences open and close start-tags, processing instructions, and so on. The angle brackets and ampersands we're familiar with are just the SGML defaults.
Many thanks, Norman. Very interesting. That sounds a nightmare for
both (wo)man and machine! SGML vs. XML does seem to be a good exemplar
of Antoine de Saint-Exupéry's “Perfection is achieved, not when there is
nothing more to add, but when there is nothing left to take away.”
(Although some might insist that more can be taken away from XML ;) )