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.
@mwichary ahh, so BBCode had it right?
@mwichary This absolutely sounds right. Make HTML bbcode again
@hesthamar Ha! Is it actually nice to type HTML on that layout? Feels very bottom left-y.
@mwichary you realise the ease of access of all these varies wildly depending on whether or not your keyboard is American right
@darkphoenix Always love the one random Masto know-it-all holier-than-thou passerby, keep it up! That’s what makes everyone love this network.
@mwichary You most certainly are aware that on French keyboards (which are in use at CERN) < does not need shift (the key it is right next to/of shift) and [ and ] need Alt Gr and a weird hand movement.
(Another factor was that you cant get good aftermarket German keycaps, but I have stopped using German keyboards mainly because of [, ] and {, } and now I have to choose whether to struggle, when typing quotation marks or to use key combinations that aren’t uniform across software/systems.)
@bitnacht @mwichary what kind of keyboard did NeXT stations use? France still does not have a single keyboard layout, with Apple doing its own thing, so I wouldn't be surprised if NeXT also did things differently. That is, assuming they bothered to do an azerty layout at all, and that CERN would use it, knowing that they are partially in switzerland and a very international thing anyways.
Also, the <> date back from SGML of which HTML is a subset, so that's not the right keyboards to look at
@pulkomandy @mwichary Hmm, I didn't think about SGML. You have a point there. I remember seeing a NeXT azerty-keyboard (maybe I even owned one for a while). I also doubt the NeXT at CERN had a French keyboard. But it certainly was a design goal, to make all people working at CERN happy with the WWW.
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.
@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.
@buherator It was the tone of this one that bothered me.
@buherator @mwichary oh that’s *fascinating - I kinda wanna know more about this now, heh. Makes sense tho - a bunch of these brackets, particularly [] and {}, are a lot more easily accessible on a US layout than, say, a German one where umlauts take up those spaces and you need to contort yourself to alt-gr for that one
@darkphoenix @buherator A bit of a progress in figuring it out here, but not much yet: https://tilde.zone/@mhd/114715005404149186
Ironically, I wonder if the answer is even online.
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…
@mwichary Having grown up on a TI Explorer LispM keyboard, for a *very* long time I remapped my "[{" and "]}" keys to "([" and ")]" and put {} on F10/F11.
I eventually gave up because it meant I couldn't type on anyone else's keyboard nor they mine.
@jwz Yeah, I went through the same thought process once. If key remapping was easier on common operating systems, that would be more of an option…
@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.
Poring over SGML Handbook from Goldfarb himself (Goldfarb is the “G” in GML).
SGML had some wild features!
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.
@mwichary See also, stupid SGML tricks: https://www.balisage.net/Proceedings/vol17/html/Walsh01/BalisageVol17-Walsh01.html#roadnottaken
@ndw The author is one of the people I’m trying to reach! (If they’re still around. They published another paper at the same conference in 2019.)
@mwichary SGML descended from GML, which descended from SCRIBE, which descended from ROFF. 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 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
@mwichary No, it doesn’t, but it shows that the decision to go with <> must have been taken later.
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
@mwichary You are aware that, as opposed to <>
, {}[]
are not even available with Shift key on non-US keyboards? So we need to use AltGr + some unlabeled keycap every time?
@ysegrim I am. I wrote a little Mastodon post. I’m not trying to solve all of international keyboard problems.
@mwichary My theory is that <> were chosen because they were the only type of brackets that do not have special meaning in regexp.
But I could easily be wrong.
@ppk Yeah, I’d love just to see the considerations spelled out.
@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
@mwichary Once in a while, I wonder what it would be like if the guys who created ASCII had built in “format-shift-in” and “format-shift-out” codes.
@mwichary Well, if you mean the author of the stupid SGML tricks paper, that'd be, uh, looks around nervously, me. Who else are you looking for?
@ndw Sorry, got the papers mixed up! Mostly just trying to figure out how SGML got its brackets. https://mastodon.online/@mwichary/114715424372809982
@mwichary @ppk Tim Berners-Lee was just copying the angle brackets from SGML …and that was a version of GML.
In GML you could specify the characters you wanted to use for the tags.
So a decision was taken sometime between GML and SGML to use angle brackets.
Time to track down Charles Goldfarb and ask him about it!
@mwichary No problem. I know a couple of old time SGMLers. I've asked around and if I get any interesting responses, I'll let you know.
@ndw Or, if anyone has records of the proceedings or working docs!
@timbray @erik @mwichary The angle brackets come from SGML, which became an ISO standard in 1986. But they were just there as an example; SGML allows you declare any delimiter you like for this role. Or to eliminate visible delimiters by writing the DTD to make their existence necessarily implied. It was features like these that made SGML so f*cking hard to implement, and XML was created by eliminating them.
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
@mwichary I worked at a publishing shop that generated SGML, but had the < and > defined the other way around. So tags looked like >this<ewww ...>/this<
I really miss the </> close last tag. HoTMeTaL, IIRC, used to support it
@scruss Some text editors allow you to use it and then auto expand.
@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…
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.
@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.
They are *killing me*. In the old article about the history of it that I just discovered, they are using… square brackets.
@mwichary I bet the Balisage folks will know. @ndw is on here, but another guy named James David Mason seems to have been there. https://www.balisage.net/Proceedings/vol23/html/Mason01/BalisageVol23-Mason01.html
@mwichary The pain! What problem does this abomination of a rule solve?
@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 "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
@kwaktrap That’s very interesting! I don’t think I knew about this.
@mwichary Now I’m wondering where WordPerfect was inspired to use square brackets…
@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.
Is this going to go anywhere? Unclear. But I like this part.