Once in a while I imagine how much more pleasant HTML would be to type if only different brackets were originally chosen.

[div]
[p]
[a href=‘’][/a]
[/p]
[/div]

No single Shift press was necessary here.

Now curious exactly why SGML chose angle brackets! Would love to see a written statement. This is the closest I got to an answer, but it’s not really an answer.

https://www.xml.com/pub/a/w3j/s3.connolly.html

This is from the standard, which I found online here: https://nvlpubs.nist.gov/nistpubs/Legacy/FIPS/fipspub152.pdf

(That footnote is prescient.)

There are references to an 1980 draft, but wonder if that would be explained there. There probably also also working group notes…

Poring over SGML Handbook from Goldfarb himself (Goldfarb is the “G” in GML).

SGML had some wild features!

https://archive.org/details/sgmlhandbook0000gold/

Very interesting! https://jtc1info.org/sd-2-history/jtc1-subcommittees/sc-34/

Not sure those are available online…

I sent some emails, but I am not sure if this is going to go anywhere. It’s wild that there isn’t an authoritative answer online, given how much of modern “online” uses HTML and angle brackets.

More from the same person writing about “chicken scratches.” Includes a tantalizing cover page of a working document.

https://www.balisage.net/Proceedings/vol23/html/Mason01/BalisageVol23-Mason01.html

Still digging.

“To encourage acceptance, the authors of the SGML specification followed other design objectives: the ability to enter text and markup on "the millions of existing text entry devices"; no character set dependency; no national language bias; and markup usable by both humans and programs.”

https://www.loc.gov/preservation/digital/formats/fdd/fdd000465.shtml

Thanks to my emails but also people who were participating today, I got an email from one of the key players that sent me some great leads and info to investigate! (Including a PDF of the report I was salivating over earlier.)

It turns out the angle brackets are at most from 1979, if not earlier. More to research!

This is the earliest appearance of < > I know of today, from 1979.

This thread might slow down, as next step will be some interlibrary requests!

This might be more interesting. <P1> and <P2>! <#> for styling! Excited to dig and learn more.
They are *killing me*. In the old article about the history of it that I just discovered, they are using… square brackets.
They really are killing me.
Fired some interlibrary requests. Wish me luck!
Is this going to go anywhere? Unclear. But I like this part.
@mwichary Shift-Period/Comma Happens
×

Now curious exactly why SGML chose angle brackets! Would love to see a written statement. This is the closest I got to an answer, but it’s not really an answer.

https://www.xml.com/pub/a/w3j/s3.connolly.html

This is from the standard, which I found online here: https://nvlpubs.nist.gov/nistpubs/Legacy/FIPS/fipspub152.pdf

(That footnote is prescient.)

There are references to an 1980 draft, but wonder if that would be explained there. There probably also also working group notes…

Poring over SGML Handbook from Goldfarb himself (Goldfarb is the “G” in GML).

SGML had some wild features!

https://archive.org/details/sgmlhandbook0000gold/

Very interesting! https://jtc1info.org/sd-2-history/jtc1-subcommittees/sc-34/

Not sure those are available online…

I sent some emails, but I am not sure if this is going to go anywhere. It’s wild that there isn’t an authoritative answer online, given how much of modern “online” uses HTML and angle brackets.

More from the same person writing about “chicken scratches.” Includes a tantalizing cover page of a working document.

https://www.balisage.net/Proceedings/vol23/html/Mason01/BalisageVol23-Mason01.html

Still digging.

“To encourage acceptance, the authors of the SGML specification followed other design objectives: the ability to enter text and markup on "the millions of existing text entry devices"; no character set dependency; no national language bias; and markup usable by both humans and programs.”

https://www.loc.gov/preservation/digital/formats/fdd/fdd000465.shtml

Thanks to my emails but also people who were participating today, I got an email from one of the key players that sent me some great leads and info to investigate! (Including a PDF of the report I was salivating over earlier.)

It turns out the angle brackets are at most from 1979, if not earlier. More to research!

This is the earliest appearance of < > I know of today, from 1979.

This thread might slow down, as next step will be some interlibrary requests!

This might be more interesting. <P1> and <P2>! <#> for styling! Excited to dig and learn more.
They are *killing me*. In the old article about the history of it that I just discovered, they are using… square brackets.
They really are killing me.
Fired some interlibrary requests. Wish me luck!
Is this going to go anywhere? Unclear. But I like this part.

I like scanning and putting up interlibrary stuff on Internet Archive.

This is the first one I got. Not sure yet if it’s going to help with the HTML bracket investigation, but maybe it’ll help someone else! https://archive.org/details/gca-standard-101-1983

GCA Standard 101-1983 : Graphic Communications Association : Free Download, Borrow, and Streaming : Internet Archive

Internet Archive

@mwichary this is a fun rabbit hole you've fallen into here!

As someone who has an inherited reverence for SGML but not much actual knowledge of it, it's pretty cool to see.

@mwichary Impressed by your level of focus.
@mwichary Shift-Period/Comma Happens

@mwichary Somewhat related and/or unrelated … did you know that there’s an XML/HTML tokenizer for the #AppleNewton?

https://40hz.org/Pages/newton/packages/ntox/

Ntox

@mwichary Good luck! An ILL getting fulfilled is better than Christmas morning!
@mwichary if the next example uses (h1)parentheses(/h1), then we can be certain you’re being trolled
@jonasdowney I’m worried that it will all amount to a big fat nothing… but we’ll see.
@jonasdowney @mwichary There will be one! Read the text. It said it uses IBMs OCR-A on the Selectric. If you print the same text and forget to use that Type Element, you will see ( ) where { } used to be.
@jonasdowney @mwichary And maybe this is (part of) the reason for < and >. Because those two take the place of ± and ° in OCR-B and this allows you to use normal parenthesis at the same time.
@mwichary plot twist: this is actually the markup language Mandela effect
@mwichary
Ah! My eyes! The goggles do nothing!
@mwichary Now I’m wondering where WordPerfect was inspired to use square brackets…
@cos Oh, that’s a very good question!!!
@mwichary
Oh man, the Irony came for you!
@mwichary I think the readability suffers a bit using square brackets instead of angled. It wouldn’t be much of a problem in a code editor with a colour theme though I guess.
@mwichary I feel like the answer here is going to end up being that angle brackets are balanced, and less likely to appear in the kinds of documents they envisioned being marked up than square brackets or parentheses, thus requiring less escaping. But this is very much a guess.
@gwcoffey Yeah, I think we all suspect the answer. I just wanna *see* it.
@mwichary Oh totally! I’m following with bated breath.
maybe related to the IEEE citation format style somehow? [x] may have been used by engineer-academics already?
@mwichary have you come across the predecessor? I was typesetting on a 1970s CompuGraphic in the 1980s and it was similar to SGML syntax particularly with surrounding stuff with <tag>. Someone told me years ago that CompuGraphic had borrowed or developed a spec that fed into SGML.
@glennf I think technically SGML comes from GML but indeed I found some other surrounding codenames. Will investigate!
@glennf You might be onto something – I just got a solid lead pointing to at most 1979 and Graphic Communications Association (GCA) GenCode, not GML. I wonder if it is connected with CompuGraphic. If only we knew someone with a museum filled with info about that kinda stuff…

@mwichary "no character set dependency; no national language bias" might have made [] and {} unpopular choices in an international context at the time; there were non-US ASCII variants which didn't have these characters. (Strictly ISO 646 variants I suppose..)

The standardized form of the C language had a grim workaround for this: https://en.wikipedia.org/wiki/Digraphs_and_trigraphs_(programming)#C

Digraphs and trigraphs (programming) - Wikipedia

@kwaktrap That’s very interesting! I don’t think I knew about this.

@mwichary I’d offer to look in my copy of Goldfarb but it looks like you’re way ahead of me.

Among the many problems with SGML is that it’s possible for either start or end tags to be optional. This means it’s impossible to check a doc for well-formedness without a DTD, and I suspect it also leads to parsing ambiguities.

I’d guess angle brackets were chosen as the default because they’re the least likely paired characters commonly available compared to parentheses, square brackets, and braces.

@mwichary Anecdote only, but I'm fairly sure I remember in the early 1980s that `<something>` was already fairly established as a plain text way of writing a meta value.
And while `<` and `>` are used in programming (although, hmm, Fortran and `.LE.`) and mathematics, they weren't common in ordinary text, unlike (for instance) `[` and `]`. So that may also have had something to do with it.
@mwichary The more I follow this, the more I'm convinced that alcohol was involved in the decision
@mwichary SGML descended from GML, which descended from SCRIPT, which descended from RUNOFF. As described in “A Generalized Approach to Document Markup,” (1981) https://doi.org/10.1145/800209.806456, GML used colon and period as delimiters.
@mxp Yes, but this is not getting us closer to the <> answer, and this is alas not the “chicken scratches” as mentioned above.
@mwichary No, it doesn’t, but it shows that the decision to go with <> must have been taken later.
@mxp Sorry, later than what?

@mwichary Later than the 1981 paper. Given that the first working draft standard was published in 1980, the “chicken scratches” are thus likely to refer to a later draft; given the year 1983, presumably the 6th working draft, which was published as GCA industry standard, as mentioned in the SGML Handbook, p. 569.

Note also that Annex A of the Standard (p. 5 in the Handbook) is an SGMLized version of the 1981 paper.

@mxp Sorry, not sure I follow the logic – the paper is from 1981, but talks about something much older. It’s entirely possible SGML already had <> then, but a) the paper was not about SGML, and b) it might have not been advisable to talk about work in progress anyway.
@mxp This puts it no later than 1982. I just wish it was possible to see those working drafts… https://mastodon.online/@mwichary/114715537112186412
Marcin Wichary (@mwichary@mastodon.online)

Attached: 2 images More from the same person writing about “chicken scratches.” Includes a tantalizing cover page of a working document. https://www.balisage.net/Proceedings/vol23/html/Mason01/BalisageVol23-Mason01.html

Mastodon

@mwichary Yes, I agree, and I'd also love to get my hands on these drafts…

The author specifically mentions the angle brackets, which IMHO supports the assumption that the inital SGML working draft still used the GML syntax.

@mwichary I explicitly do not discuss the Concrete Reference Syntax (i.e., the angle brackets) in this paper, but some other historical idiosyncrasies:

Michael Piotrowski (2019). “History and the future of markup”. In: Proceedings of XML Prague 2019 (Prague, Feb. 7–9, 2019). Ed. by Jiří Kosek, pp. 323–333. URL: http://archive.xmlprague.cz/2019/files/xmlprague-2019-proceedings.pdf#page=335

@mxp Thanks! Will check it out.
@mwichary Unclosed Short Tags is absolutely cursed, but Empty Tags has been on my HTML wishlist for a while!! Cool to see the idea has been around for a long while!

@mwichary Back in the days when I had to edit a lot of HTML by hand, I always wished for a `</>`. It would certainly help with badly nested HTML.

But the tagc-less tags are absolutely bonkers.

@mwichary Okay the </> thing looks really nice and useful actually. HTML should have that!
@mwichary EBCDIC only has regular parentheses and angle brackets in its base encoding page, and IBM was pretty big into SGML.
@mhd Now I’m curious what were the most common IBM systems for those, and what are their keyboards like.

@mwichary One of the more important items in the timeline here was the LEXX editor (for lexicographers), and that was commonly access width IBM 3270 type terminals. That means a lot of Model F keyboards, so plenty of keys.

It's just that angle "brackets" are the least common denominator. I'm also reminded of the C "trigraphs" where you could write ??< instead of {.

Internationally, those brackets aren't as ubiquitous or easy to reach, as that place is often taken by other letters or accented forms.

@mhd Interestingly, on the 5251 both <> and {} are similarly accessible.

@mwichary On US keyboards, sure, as are the characters in the US EBCDIC code page, it's just that the angle brackets are everywhere.

By 1986 when SGML came out, it wasn't really impossible or even hard to get to other characters (IBM also was big into APL, so consider the possibilities…). But it was still easier to just go with the spiky bois.