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.
EDIT: Please stop responding with “only on some keyboards.” I am aware.
@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.
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
Believe it or not, I’m still figuring out where HTML got its angle brackets.
But despite grabbing a lot of interlibrary items, I am not sure I’m getting any closer. I still have some ideas, but one involves going to a museum in Maine, which might take a while.
However, good news (for someone?): There are now over 40 papers and books I scanned that deal with history of markup. Enjoy!
https://archive.org/details/wicharytypewriter?tab=collection&query=subject%3A%22markup%22
@mwichary I .. didn't think this was a mystery, the simple answer is from SGML, clearly and explicitly at the time. I assume you're digging past that and trying to trace it back to earlier origins via there? I'd love to see where that hole goes.
@mwichary that's a good Q because SGML (1986) has angle brackets but IBM's GML doesn't
@secretasianman Mhmmm. All signs point to the GenCode side of SGML but how *that* came to be angle brackets is shrouded in some mystery.
@mwichary this is really a lovely mystery Marcin
@secretasianman It’s kind of interesting to see people debating markup and other stuff as it was happening! A lot of it too smart/nerdy/academic to me, but nonetheless fun.
@mwichary I wouldn't be surprised if they just had to pick another delimiter that wasn't already used by an existing macro processor or compiler at IBM
@secretasianman My current lead is that it actually maybe came from the typesetting universe as a convention, not the computer side. But a lot of the typesetting stuff of that era is extremely not preserved online.
@mwichary I think it's really important to know the evolution of the tools we use everyday. We are almost trained to accept the world as given, but like you know, decisions are made by people who have their own stories etc
@secretasianman Yeah, I was astonished that for as many of those HTML tags I wrote myself and as many as are floating around in the ether everyday (which would also be a fun thing to try to measure), there is no clear answer to “why angle brackets.”
@mwichary it's too bad Carl Schlesinger isn't around but may Romano would know. I'm assuming you're talking about early electronic to photo setting
@secretasianman Romano is exactly the museum I need to visit, ha.
@mwichary it's kinda cold in NH this time of year :)
@mwichary see if you can catch the last few minutes of farewell etaoin shrdlu and see how they formatted then!
@secretasianman It’s not HTML-like since it’s not semantic, but it was a lot of angle brackets floating around. I would love to understand more who started it or popularized it, etc.
@mwichary @secretasianman So you are thinking that «name of thing» somehow became <METADATA>?
@mwichary we're looking at the same "<uf141>" markup?
@mwichary it's definitely not HTML, it's from 1980, it would be interesting to know who made all that equipment. The film shows a data general machine, a dec pdp11, and an IBM system 370 (I think)
@secretasianman Yeah, there were also industry-specific players like CompuGraphic (which is one of the bigger leads).
@secretasianman Sorry I didn’t mean it’s not HTML but not even HTML-like even since it might serve a different purpose. But that part is better documented. The angle brackets much less so.
@secretasianman I’d love to be able to write an essay about this. I have a bunch of ideas on how to make it fun, but I just don’t have the answers ha
@mwichary @secretasianman Maybe also look into the use of codes in angle brackets to denote a substitutable or otherwise "out of band" object in descriptions of syntax? That's in Backus's notation from 1959 and he may have got it from maths, but you can see it evolving into tags, at least the atomic ones
@drawkcab @secretasianman Yeah, some people pointed it out in these threads. It’s very attractive because it’s just so similar!
@europlus Tim’s part is I believe well understood! The decisions came before his involvement.
@mwichary maybe it's because {} and [] where just not widely available? see e.g. ISO 646 https://en.wikipedia.org/wiki/ISO/IEC_646#Variant_comparison_chart
@mwichary this also points to that: http://sgmljs.sgml.net/docs/sgmlrefman.html#basic-sgml-declaration
nice quest(ion)!
@josch Yeah! That’s close to where I started this journey.
I just would love to see it spelled out somewhere, you know?
@mwichary @secretasianman Tracing back the history of ideas is difficult. Sometimes the questions we ask are obscuring what was obvious to the persons of the time. Sometimes a solution became dominant at many disconnected places, simply because they were good enough and needed no alternative. I see a semantic shift here (markup vs. quotation/placeholder), not primarily a typographical one (<, [, <<, «) , but maybe this is the wrong way to look at it.
@bitnacht Yeah, I’m well aware there might be no smoking gun. I would just want to understand it more given the popularity of HTML, and then write about it. The stylistic to semantic evolution is better understood in the papers I scanned and in other things already available online. But landing on these particular brackets is shrouded in mystery.
@josch (However, it’s also possible angle brackets happened “before” with only US considerations in mind, and then were sort of backported into SGML.)
@josch (Actually, checking my notes more carefully I have a quote from the person who was there (personal email) citing ISO/IEC 646 as specifically *not* being a consideration.)
@mwichary @secretasianman Doesn’t EBCDIC have iffy support for []{}? The angle brackets might have been easier to use at IBM
@tigt @secretasianman Yeah! Just not sure if that’s relevant or not…
@mwichary On a US keyboard that is.
On a German keyboadt, its the opposite and mroe.
@krono You are responding to a post from June. Dozens of people wrote a comment like yours already, and I responded to that, too. Thanks for your contribution.
@mwichary You might find some pointers in https://en.wikipedia.org/wiki/Markup_language
@mwichary Table 3 on page 360 of "The SGML Handbook" by Charles F. Goldfarb has a table of the _standard_ assignments for #SGML delimiters which is configurable in the SYNTAX DELIM part of the declaration. STAGO (<), ETAGO (</), MDO (<!), PIO (<?) are closed with TAGC (>), MDC (>), and PIC (>). Curly braces, part of ASCII and Unicode 2.0, are not found.
So your search is for the authorship of the #standard for STAGO, ETAGO, and TAGC. Legacy systems still in use in 1980 used a wide variety of character sets. It is possible that a legacy 6-bit character set was used as a constraint as the bias to all-upper case and lack of curly brackets is consistent with that theory.
As you want history, not speculation, I will point out that #Goldfarb wanted the system to be visually distinct because this format (like GML) was designed for humans to be able to parse and this concern would have been common. But SGML was designed and adopted by a committee building off GML and committees have documents. Good luck!
@Arpie4Math Thanks! I already know from first sources that the tags came not from the GML side of the process, but from GenCode efforts that might originate more from the typesetting industry than anything else. Digging into that now, but it’s been hard.
@mwichary It’s just speculation, but could it be due to the impact on readability and the fact that these characters were relatively rare in texts? <P> vs [P] or {P}, especially in the days of monochrome monitors, could make a difference.
[] and {} were not in the invariant set of EBCDIC (Charles Goldfarb worked for IBM).
<> were.
https://www.ibm.com/docs/en/i/7.1.0?topic=sets-invariant-character-set
@mwichary @bogdanb
When were the angle brackets adopted?
That must have been around 1974.
I'd expect that the practicality of fitting in EBCDIC may have been something that would be discussed inside IBM, not in the wider GenCode community.
(But then, the defaults in SGML include !, which isn't inside the invariant set either.)
@cabo @bogdanb Yeah, I’m pretty sure the practicality/portability would have been important at some point in time. But I also understand that this effort came more from the GenCode side and not GML, and I’m not yet fully sure how that came to be.
I can imagine one history flow where <> started as a proprietary thing that one manufacturer liked, and it just spread elsewhere by convention. And it just *happened* to work for portability/EBCDIC/SGML/etc.
@cabo Curious what’s making you think of 1974 in particular?
Just a guess, but https://history-computer.com/people/charles-goldfarb/ mentions that year as the start of work on SGML.
@mwichary psst @mhoye , I think you'll enjoy this HTML/SGML/GML history spelunking thread 👀↑↑
(edit: courtesy of @feonixrift )
Nice! Marcin, thank you for this.
If it contributes anything to the cause, I found a number of citations back when I was trying to figure out why programmers start counting from zero, that talked about the credible rodeo keyboards and character sets were back in the larval stages of this industry, and how Dennis Ritchie picked square brackets for array notation in part because they were available on most of the keyboards nearby when he worked at Bell Labs.
@mhoye Ha – this is how it all started for me if you scroll up all the way up!
@mwichary Seems like it would be as simple as the fact that the characters were required on all keyboards for use as greater than and less than signs, but they could be repurposed as brackets, and weren't otherwise being used as brackets in everyday text.
@mikemccaffrey Yeah, but this is just one speculation among many.
@mwichary Amazing! You might enjoy this, as well: https://exple.tive.org/blarg/2020/11/26/punching-holes/
@mhoye Thanks! Will check it out later. Reminds me of historical computer keyboards that had the zero on the “correct” side – and, mysteriously to me, modern keyboards in Hungary.
@mwichary I was unaware of this thread. It's fun to see someone digging into SGML; I guess it's now entered the realm of archeology.
As you already know, in the beginning, the angle brackets were just by way of example. HTML is an SGML application, so if web browsers natively understood SGML, you could have a version that uses square brackets instead of angle brackets by just pinning a modified DTD to the beginning of every document instance.
@mwichary The proximate cause of HTML's use of angle brackets is that they were used in the SGML Starter Set created by Anders Berglund as a teaching example for his fellow workers at CERN. One of them, Tim Berners-Lee, added the <A> tag to create HTML.
@bosak Do you have any experience/advice on how to find more information about GCA’s GenCode efforts? I understand this is what led to angle brackets in SGML, but the world of standards is a mystery to me.
@mwichary @timbray did you find COCOA? http://www.chilton-computing.org.uk/acl/applications/cocoa/p001.htm (with a date of 1965 showing) has
<W SHAKESPEARE> <T HAMLET> <A 1> <S 1>
@mwichary Designa- ... Cumulative ... -tion ... No.
It's like the "Don't Dead Open Inside" of table formatting instructions, grrr
@mwichary @quixoticgeek HTML started as a drastically cut-down subset of SGML. SGML is the motherlode. (I was tracking HTML professionally from 1993-ish.)
@cstross @mwichary @quixoticgeek Before SGML, there was Compugraphic typesetting—when I first learned about HTML (and then backwards, about SGML), I was shocked to see relatively similar coding standards to what I used to type on the EditWriter 7500, a device still in wide use by the mid-1980s because it was a workhorse.
@mwichary No, I joined the group responsible for SGML (ISO/IEC JTC1 SC18 WG8) in 1995, long after GenCode. My impression has always been that Goldfarb liked the angle brackets and that there was no more complicated reason for choosing them (there didn't have to be; Charles was complicated enough, and he made decisions for the group with an iron hand for his own arbitrary reasons), but I have no evidence for this. Maybe you'll turn up something more concrete.
@bosak Thanks! I likely won’t, but it’s been fun so far.
Of course there’d always be the underlying question of *why* did he like angle brackets, even if that is confirmed.
@knapjack Maybe! I am hoping to spend more time in that space and see what I learn.
@glennf @cstross @mwichary @quixoticgeek Before SGML there were WordPerfect control codes
@geraint @glennf @cstross @quixoticgeek I don’t think those used angle brackets?
@mwichary you could use [ and ] in SGML if you wanted, but SGML was complex and i think never fully implemented - one goal of XML was to make an SGML with a 30 page spec, not 300.
Early card punches and teletypes did not have { or }, and some did not have [ or] (EBCDIC lacked them).
At SoftQuad (SGML firm where i worked) 80% or support cost was from people mis-using shortcuts (minimization). We eliminated them from XML.
1/2
@barefootliam Yes, but that really doesn’t answer the question, I’m afraid: the flavour of brackets is not the only option. GML itself didn’t have them. Neither did TeX, CMS Script, Scribe…
@irvingreid @mwichary Nope, the angle brackets were in place when I first encountered that kind of markup, which was in 1987. However, a couple of years ago I wrote a GML parser (see https://www.tbray.org/ongoing/When/202x/2021/02/14/Recent-Code) but that flavor of GML had tags that looked like:
:root tag=ANNOTATIONS.
:isContainer tag=sec grabAttribute=secNo endAt=trule.
:paraEnders endAt=sec.
:synonym tag=FLPAR treatAs=par.
:synonym tag=flpar treatAs=par.
@timbray @irvingreid @mwichary lol i used GML to write my 1A work term report at Bell Northern Research in Spring of 1984.
@timbray @irvingreid @mwichary yes no angle brackets IIRC but my memory is not the best :-)
@roland @timbray @irvingreid This quotation from a 1997 paper is killing me – cannot find what that could have been.
@roland @timbray @irvingreid (Well, the authors of the paper might still be around – a long shot, but I’ll try.)
@mwichary alas, Charles died, but i could try emailing Sharon & Anders and asking where < > came from. I didn’t see them used for this before SGML either. Itś obvious why not [ ] or { } though (IBM).
@barefootliam That’d be great! What do you think about me making a quick doc with timelines and keywords to possibly jog their memory?
@mwichary You know you can always ask 🤓
Do you remember SGML? The metaphysical precedent of Markdown? It meant to be read by humans, not just computers. The idea is that parentheses and square brackets are present in normal writing. But angle brackets are not.
@senki What a condescending answer. Please catch up with the whole thread.
@ndw @mwichary BTW, in defense of Goldfarb (or whoever made the initial decision to use angle brackets), remember that SGML was designed for the management of massive collections of documents containing thousands of instances of square brackets as parts of the text, and if you decided to use square brackets for delimiters, you'd have to escape every one of the square brackets in the text with a character reference.
Maybe this has been mentioned already (super thread!) but I wonder if Goldfarb could have borrowed angle brackets from Backus Naur Form (BNF) which had used them since ~1959?
@ink @bosak @ndw Thanks, yes! It’s one of the hypotheses. I just wrote out what I know so far: https://docs.google.com/document/d/16QNavHjds1OdkKsfqLYx6EF0ohA-Qh_dZc8OK9TFrQk/edit?tab=t.0
@timbray This doc is also good! https://hublog.hubmed.org/archives/002029
@mwichary @darkphoenix @buherator IBM mainframe keyboards from the 80s often did not have square brackets at all, and square brackets are not in the invariant character set for EBCDIC or ISO/IEC 646—so they could be absent of localized keyboards as well.
Youngsters these days have no idea what a big deal EBCDIC compatibility used to be.
ref: https://sharktastica.co.uk/topics/3101-3270-5250-comparison
Wrote down what I learned so far and open questions in this new doc: https://docs.google.com/document/d/16QNavHjds1OdkKsfqLYx6EF0ohA-Qh_dZc8OK9TFrQk/edit?tab=t.0#heading=h.z1r9lwho309s
…in case you are interested in seeing where I am and what are my next steps, and maybe have new ideas. Thanks in advance! The doc is free to comment, or you can always ping me here.
EDIT: Please do not tag/bother Tim Berners-Lee. Angle brackets happened many years before he started working on HTML.
@mwichary Maybe I don't understand the question, but isn't it just a personal choice of Tim Berners-Lee, maybe influenced by pre-existing protocols like SGML?
In any case, you may find the following useful if you haven't already seen them:
https://home.cern/science/computing/birth-web/short-history-web
https://www.loc.gov/preservation/digital/formats/fdd/fdd000476.shtml
@miramarmike Love your implicit assumption that Tim Berners-Lee’s time is less valuable than yours, given you haven’t even looked at the doc.
@mwichary According to @w3c Tim Barners-Lee @timbl wrote the first HTML version: https://www.w3.org/about/history/
Maybe they can shed some light on this topic?
@jornfranke @w3c @timbl HTML got its brackets from SGML, and I’m trying to figure out what happened on the way to SGML, which predates Tim’s involvement.
(I’m pretty sure Tim Berners-Lee would have not picked SGML if SGML wasn’t a great solution, but that feels beside the point.)
@bri7 This is wrong and/or speculation. This is not advancing the research. Please read the document.
@mwichary here's Backus's 1959 paper, angle brackets on page 14
https://softwarepreservation.computerhistory.org/ALGOL/paper/Backus-Syntax_and_Semantics_of_Proposed_IAL.pdf
this predates typesetting/etc considerations. I don't know how to determine if this was Backus's invention or not. maybe it came from some earlier formal notation?
@gray17 Thanks! I haven’t seen that particular paper before.
I have no idea if the BNF has any relevance here, but at least it’s in the “vicinity of interest” – e.g. it comes up occasionally in papers.
I really like this way of annotating/commenting on an old document – in this case an old markup language called PUB, from Larry Tesler himself.
I just wish it worked on mobile as well. And, perhaps, that it would show the scanned pages rather than recreated ones. Something about that feels important to me.
@mwichary Are you sure those are actually recreations of scans? They look like they were generated that way as a way of typesetting — likely using roff or a macro package built thereon complete with pagination and all.
@alerque I mean, it’s extremely skeuomorphic so whether it’s recreating or gesturing toward something, it feels similar. There was a better way to do this whole page if this wasn’t a consideration – look at all that wasted space on the right!
@mwichary Any evidence that it's a negative reaction to Lisp parens? Because that would have been my guess.
@barefootliam @jwz It sort of explains it maybe if you assume no letters ever come glued to & naturally, which is mostly true I think?
@mwichary In his Frontend Masters lecture, Crockford gives this account: "Goldfarb looked at this and went: 'Angle brackets? I didn't know you could do angle brackets—that's great."", linking Brian Reid's Scribe system to SGML's angle bracket choice. https://frontendmasters.com/courses/good-parts-javascript-web/the-history-of-html/
@mfiorentino Thanks for sharing this! This story came up a few times although each time it’s even more colorful, ha.
Part of this kind of amazing-looking phototypesetting machine… but then again, all of them were amazing-looking.
Case in point: Another phototypesetting machine, this time with my beloved braces.
Yet another typesetting system (1971), this time with only opening angle brackets.
@mwichary when they finally get around to closing all those brackets it's going to be quite a surprise!
@cliffle My text editor (Nova) had/has a bug where it didn’t understand you don’t really need to close <li> and in its breadcrumb at the top I routinely see/saw ul > li > li > li > li > li > li > li > li > li > li > li when I was inside a list.
@mwichary I’m enjoying your sleuthing so much—it’s like a continual Knives Out mystery for nerds!
@adactio Thanks! I hope it makes for a fun interactive essay even if there is no clear answer.
Very close (<b>!), but the tags are ongoing, rather than opening and closing.
This is microcomputers, and called ASPIC? Never heard of it before.
I am vibing with ASPIC! But it’s also kind of strange from the perspective of HTML that escaped delimiters are also regular tags.
@mwichary I am legitimately looking forward the inevitable sequel to "Shift Happens" called "Full Metal Bracket"
Ah, it seems ASPIC stands for Authors’ Symbolic Prepress Interfacing Codes or Authors’ Standard Prepress Interfacing Code, and was specifically made and popular in the U.K.
Loving the [] for new line/paragraph.
@mwichary The tags look similar to xywrite formatting commands.
@apples_and_pears Oh, cool. Do you remember how those guillemets were entered? They’re not on the keyboard. The information about XyWrite seems somewhat sparse on the internet.
@mwichary i'm intrigued by the use of double quote to represent open single quote.
@ranjit Yes! Interesting. Might be a fun hack.
I’ve seen double quotes in typesetting being represented by doubling a single quote, so that might free up that key.
Thank you to @apples_and_pears for letting me know about XyWrite, a word processor that used guillemets! Because why not.
@mwichary If memory serves, they were added automatically as part of the command when selecting the command.
XyWrite III Plus (DOS) was still available a couple of years ago and is probably still available. DisplayWrite 4 (XyWrite III Plus replacement) may still be available.
@mwichary Seems to me there were drivers for about 200 different printers. That was one of the things the Dev found annoying. He would write a driver for whatever printer the customer had without charge. I've never heard of that happening since then.
@apples_and_pears I think it was the same in the land of videogames with graphic and sound cards.
Simplicity of operations and reduced operating costs are STILL the two main things being pushed by IT vendors of all kinds.
I'm starting to think they're lying because it's never that simple and we'll never see the day where a cost level is low enough.
@mwichary re: edit…
I mean, fair enough, what would *you* know about varieties of keyboards?! 🤣
@europlus It’s not even that. It’s just how social networks bring the worst out of us, where immediately we want to shut a stranger down by pointing out some small flaw. I don’t like. And I probably do that, too.
@mwichary that was, I think, the format the the Collins English Dictionary was held in. Never knew it was a formal markup standard, just thought it was something Marlborough House cooked up.
@scruss Good question of what makes a standard a standard, though!
@mwichary Due to personal interest, I own a few (German) books on foto typesetting. One of them shows an example on formula typesetting with a Linotype CRTronic 100. The book is from 1989, CRTronic 100 most probably is a bit older. They're using angle brackets as well, but “the other way round”. I posted a photo of this example quite a while ago: https://mastodon.social/@stiefkind/114132118895249052
@stiefkind Thanks for sharing! Here’s another CRTronic machine doing the same: https://mastodon.online/@mwichary/115767227014828568. Interesting to also reverse them visually!
@mwichary it makes sense, from a culinary point of view, that someone in the UK thought aspic was a positive reference for an acronym…
@Drwave Ha. It existed in my childhood, too! I remember that you had to drench it in vinegar.
@mwichary I found Peter N. van den Bosch's 1974 MSc thesis at https://open.library.ubc.ca/soa/cIRcle/collections/ubctheses/831/items/1.0051838 (and https://web.archive.org/web/20200211014206/https://open.library.ubc.ca/media/download/pdf/831/1.0051838/1). He uses < and > for Texture & Eureka.
Commands "are enclosed in parentheses — in this case … < and >."
Examples: "<P> New paragraph", "Every word between a <U> and the next <NOTU> will be underlined."
The Eureka language output for <EQ,5,<ADD,2,3>,YES,NO> is "YES".
He cites Harris Composition System (1970) as recognizing the need for matching command delimiters, using [ and ].
@dalke Thanks so much for this!!! Will review later today!
@dalke This is such a great paper/thesis. Thanks so much for surfacing this.
If not guillemets, then maybe slashes will be to your liking.
@mwichary @apples_and_pears That last example looks like << and >> because the font the manual was set in wouldn’t do «»
@mwichary it makes the whole thing feel slanted to one side. Can we compromise?
/center\/h1\How about this
@aburka I think boats would look nicer than houses. Like the words are on a journey.
Or if you don’t like slashes, there might be ways around that, too (h/t @dalke).
PS if anyone is curious about the current tally, the earliest appearance of angle brackets for markup I can see was is 1965, with the British COCOA. But not sure if it influenced anything that came after. I’m trying to find out more about it.
https://www.chilton-computing.org.uk/acl/applications/cocoa/p001.htm
@aburka Pipes for delimiters would be interesting, actually. They’re not super well designed in many fonts, but that could change.
@mwichary they're not polarized though, so miss one and the rest of the document is inside out...
@mwichary Ooh, just thought to look at Knuth's literate programming and he was using angle bracket delimiters in WEB in the early 80s http://www.literateprogramming.com/knuthweb.pdf
Also, I love this "I chose the name WEB partly because it was one of the few three-letter words of English that hadn’t already been applied to computers."
@grwster Oh, thanks! Those are not necessarily the angle brackets, but the math angle brackets like the BNF notation – this whole thing seems very math-y.
Also yeah, huh.
@grwster Sucked this into my library under “BNF-like,” haha. Knuth is already there for TeX, of course.
@grwster He’s using some truly uncharted brackets, too. I guess he wrote himself software so he could do that kinda stuff.
It’s funny, seeing some computer at the library tabulating numbers that don’t really make sense. (I’m guessing one of the books I interlibraried had some exorbitant value on some used-books site?)
@mwichary Maybe it's the price the library pays rather than the price any other bookstore customer would pay.
@apples_and_pears Interesting! But it’s still sort of like these software piracy or streaming media calculations that assume I would have actually forked out that number if the other way didn’t exist.
1972 and a new form of escaping. This is a system called RCA Page-1, and if I understand it correctly, it implies =(alpha)= for characters unavailable on the computer keyboard, but available.
In a deliciously meta way, they also talk about how they needed angle brackets to be different to less-than/greater-than – perhaps similar to the mathematical ⟨⟩ angle brackets?
This is interesting because of all the brackets I have seen systems shy away from () for obvious reasons. This is the first approaching it, but carefully and surrounded by = presumably as this makes the combination unlikely to appear in source text.
Same paper, and here are angle brackets put to use to indicate upper- and lowercase, presumably on a machine like a teletype that supports only uppercase.
Honestly, I feel like I still have months of interlibrary requests until I follow all the citations and nooks and crannies here. But at this point I’m really starting to dig into the (photo)typesetting parts and that’s really fun and all foreign to me.
@mwichary - were capitalized words at the beginning of sentences implied, or how did it know to capitalize "These" and "In"?
@mwichary - oh gosh. I guess "shift happens". And I'm the one always complaining about people who don't read to the end.
@axel_hartmann The auto period capitalization is what BlackBerry and then smartphones did, too, during typing!
@mwichary - I hate that. I know which keys I'm pressing, and that happens to coincide with what I intend to type. I can't stand any logic interfering with that. Unluckily - for me -my employer insists on keeping auto-correct forced on in our MS Office setups. The only time any "logic" worked for me was with the Palm Pilot Graffiti input :-)
@axel_hartmann Yeah, I can’t do that on desktop keyboards for the same reason. Okay with it on smartphones, though.
@mwichary those specific glyphs suggest that the scheme was designed for MICR-style magnetic ink scanning, or maybe very early optical (that typeface looks like OCR-A)
@cliffle Yes! I think this must be Farrington Selfchek, which was an OCR-A alternative lost in the sands of time.
@mwichary You're welcome!
I found it because I read "A Hypertext Editing System for the /360" chapter in "Pertinent concepts in computer graphics" (by Steven Carmody, Walter Gross, Theodor H. Nelson, David Rice, and Andries van Dam) at https://archive.org/details/pertinentconcept0000univ/page/290/mode/2up?q=hypertext . It mentioned TEXT360 as the underlying document processing system used when generating paper output. While trying to learn more about TEXT360 I came across that excellent thesis.
This is an interesting way. Instead of delimiters using punctuation, a combination of regular in-band letters (qq) is used that is just not meant to appear in real text.
And this one has double braces, which presumably avoids the need to escape single braces if the appear in text.
@mwichary Lol, people telling you about keyboards like you didn't write the definitive volume on the subject.
@damieng It’s not even that, it’s just this frustrating “I need to find a little flaw in your ad hoc post” posture that annoys me on Mastodon specifically.
It’s also a strange argument. It’s like keyboard NIMBY-ism. “Hey, it works for me. Don’t you dare change it. But I’ll cloak my argument as «you’re not emphatic enough toward my needs».”
Oh, wow. Got a book about RCA PAGE-1, a typesetting system which came out in 1967.
In it, they talk about typical stuff like [tf,4;mi,50;bs,100;mx,150] for changing fonts, and [ob] for italics/oblique and [ro] to go back to Roman…
…but the also have a concept of [c1] and [c2] and [c3] that are actually starting to feel kind of semantic! They still are more for macrodefinitions/expansion – kind of like the “Lucy” of this space – but that’s much earlier than I expected.
Also: braces. 😍
Scanned the book here if you are interested! https://archive.org/details/computer-composition-using-page-1
And more information about RCA PAGE-1 (VideoComp) is here: https://www.worldradiohistory.com/ARCHIVE-RCA/RCA-Engineer/1968-04-05.pdf
By the way, I have never heard of a roman (non italic/non oblique) style being referred to as “erect.”
@mwichary That's pretty interesting! Does that oblique angle imply it was changeable? (e.g 10° vs 18°?) That would imply a resolution/vectorization of the fonts that likely wasn't there as a capability?
What you're doing feels like "bibliographic archeology"! The Hunt of the Snark but for brackets
@scottjenson No sure what “factory adjustment” means. They definitely say you can faux oblique… It seems the fonts are pre-digitized/pixellated on a CRT, but the resolution is high. Tbh I don’t fully understand phototypesetting yet!
I’m trying to figure out what were the keyboards that were used with RCA VideoComp (or Hell Digiset, which I understand is the alt/original name of the device). One of the arguments against braces and pro angle brackets is that the latter weren’t easily available – but at least here it seems this wasn’t a problem.
@scottjenson @mwichary for sure. we just want to say we've been following this thread off and on as you've made progress, and it's a fascinating topic.
@ireneista @scottjenson I’m going to try to write it up in a nice essay once I’m done! I hope it’s fun even if I never get to the answer for the specific question I am looking for.
“A battery of girls on perforators.” https://www.nytimes.com/1967/11/16/archives/processing-of-long-book-is-entirely-by-computer.html
I just ordered online on Biblio a copy of that book, just for fun. It’s not expensive.
I don’t know yet what layout perforators were used, but here’s the RCA Spectra terminal, using a pretty standard Selectric keyboard (and some other buttons – a pretty typical setup of the time).
What’s interesting is that <> are nowhere to be seen, but [] are there as alts on the 1 key.
https://archive.org/details/TNM_RCA_Spectra_70-752_video_data_terminal_20180205_0106
Where we would expect <> today are just , .
But they’re also available unshifted.
This was pretty typical for typewriters. Shifting was kind of heavy, and ,. punctuation very common… so often ,. were there both shifted and unshifted on those two keys.
Elsewhere in RCA docs, ASCII is already being referred to, with <> listed, but [] or {} not available. Interesting!
And the teletype console seems to have only () and maybe <>? What a mess! I might not get anywhere here.
@mwichary One side note: This being reported from Hauppauge, Long Island is interesting because by 1967, I believe Linotype had move out to there. I wonder if RCA and Linotype were working together?
@onpaperwings RCA was using Hell machines, although I *think* the PAGE-1 software was coming from the RCA side. I know Linotype and Hell got together at some point. Was it before 1967?
@mwichary Ah, no. The merger to make Linotype-Hell wasn’t until much later, in 1990.
@mwichary But: this does give additional color to the merger of Linotype and Hell!
My understanding was that Hell was purely into scanner technology and that is why they were merged together, but you just informed me that they were already into computer and typesetting tech much earlier. Which makes sense.
@onpaperwings Did you see this page? This + the menu on the left: https://hell-kiel.de/en/hell-development/191-typesetting-technology
I was so eager to scan this after it came because it was months before one appeared on eBay!
This is a manual for a popular Compugraphic typesetter, with a very different approach to markup that’s more similar to control characters in e.g. WordStar.
Everything is based on specialized keys, and displayed with special characters, shade, and underline.
Imagine a version of HTML where you’d need a keyboard with a key for each tag!
Check it out here: https://archive.org/details/compugraphic-edit-writer-family
@mwichary Wow - I taught myself the basics of using a Compugraphic Editwriter back when I worked on a university newspaper in the 80s. For years later, I'd slip up and refer to typefaces by their CG knockoff name - Helios being one of them.
@u0421793 Yeah, a lot of those machines loved specialized keys! https://newsletter.shifthappens.site/archive/new-in-the-collection-pt-5-new-hermes-nhi-810/
This is the generation just before the MCS Modular Composition System that I've slowly been collecting all of the pieces for. You can see the MCS was a follow on system to the EditWriter, which itself was a CRT replacement for the Compuwriter.
@bitsavers What’s interesting is that perhaps this is part of the answer. It had to have this particular way to do “markup,” because more modern ways wouldn’t work as well without a screen.
I implore you to contribute info like this to either Wikipedia or to PRONOM (or both).
As much as I love mastodon, I'm pretty skeptical about the longevity of user feeds.
@stuartyeates My plan is to write an essay about it all once I’m done researching!