Now I'm thinking about how the ASR33 teletype doesn't have a way to type [] brackets nor {} brackets... And also if you send it ASCII underscore _, that gets displayed as an arrow pointing to the left ...

Don't remember where I read that, but supposedly by the type C and UNIX were being made, they had upgraded to Model 38 teletypes, which do have a way to type "all 128 ASCII characters" according to the manual

Notice the positions of [] and {}, that seems inconvenient to me, but maybe it's just because of habit...

That same... article? blog post?... may have also said that how _ gets printed as on the ASR33 is a reason why early UNIX code avoids underscores (it also avoids camelCase; note that the ASR33 is case-insensitive) and tries to just make the variable name short enough that none of it is needed

Though also: Didn't early C compilers have a length limit on identifiers that was just 8 characters or so?

Very annoying that I can't remember where I read it

(Don't boost this thread, I actually am now unsure whether it was model 37 or model 38 teletypes and I do not want everyone to read me being wrong online :psyduck: )

I think I found a relevant paragraph in "Unix: a history and memoir", but need a better PDF for copypasting...

If anyone has a good plain-text or PDF of that book, let me know

@The_T Thanks!

Somehow I failed to put together that in that famous photo ( nokia.com/bell-labs/about/denn ), they're using Model 33 teletypes! Must be difficult to program C on those without [] and {} characters, I wonder whether it was done at all...

So the teletyps that were upgraded to were in fact (according to the PDF that you helpfully sent me) model 37 teletypes and not model 38... And this book doesn't mention the stuff about underscores, so I'm not sure who claimed that it's related to the style of early UNIX code... (Though I have personally used a model 33 teletype and I know in fact that _ gets printed as )

@aescling @vaporeon_ @The_T Aww, beat me to it :p I love seeing these in underhanded recreational programming stuff

@The_T @amy @aescling What's to be confused about? C programming language needs { and } characters because that's how it delimits where a block (e.g. a function definition or an if statement) starts or ends. If you're on an (ancient) computer that doesn't have { and }, you can instead type ??< and ??> and the C compiler will replace it with { and }

@vaporeon_ @amy @aescling ok, that sorta makes sense

but why did they do that in the first place, if keyboards didn't support it...

@The_T @amy @aescling The keyboard of the Model 37 Teletype that the inventors of C were using did support it

But C is a very popular language that got ported to a lot of different computers, some of which apparently didn't support {} characters

@amy @vaporeon_ @The_T the example in Wikipedia with the cursed newline escaped “multiline” comment is wonderful lol

@aescling @The_T I'm aware of those, but I thought that they were only introduced at a later point, not when the ASR33 teletype was still relevant

Sign in to participate in the conversation
📟🐱 GlitchCat

A small, community‐oriented Mastodon‐compatible Fediverse (GlitchSoc) instance managed as a joint venture between the cat and KIBI families.