That Dragon Guy Profile picture
Feb 15, 2022 19 tweets 7 min read Read on X
Open a terminal window on your computer—whether Windows, Mac or Linux—and unless you’ve fiddled the defaults, the width is almost always 80 columns. Run a code reformatter like clang-format and same deal…defaults to 80 columns. Why? (1/18) Image
You may’ve heard a story about the launch capacity of the space shuttle ultimately deriving from the average size of a horse’s butt. It’s not strictly true, but a few elements are true *enough* to weave a good tale about engineering constraints.

This is a horse butt story.
(If you’re not familiar with the space shuttle horse butt story, just Google “space shuttle horse butt” and there you go. “Always mount a scratch monkey” is a good one too.)

ANYWAY, why 80 columns?
In the early 1980s, a hallmark of doing SRS BZNS on your computer was having an 80-column display card and suitable monitor. Only “game machines” had 40 column displays (“game machine” used to be a put-down, ha!). So a TON of code is formatted for 80 columns. But why? ImageImage
It was a carry-over from serial terminals of the 1960s and 70s, which most often had 80 column, 24 or 25 line displays. These would communicate with “big iron” systems for banking and science and such. A lot of software was formatted for such displays. Why 80? Image
Because disk and tape were expensive and not very portable, code was often stored on IBM-standard 80 column punch cards. One 80-column card per line…usually FORTRAN or COBOL.

But the cards actually long pre-date these languages…and electronic computers for that matter! Image
They were originally for use with electromechanical tabulators and sorters…an early way of handling databases. The 80 column card was introduced by IBM in 1928. Other companies produced cards with more columns…but even before computers, “IBM compatibility” was a selling point.
Why 80 columns? Because that’s how many of the rectangular holes IBM engineers could reliably punch and read back on a card that size…carried over from the existing 45-column cards of Hollerith’s Tabulating Machine Company, a precursor to IBM around the turn of the century. Image
The 45-column cards were a tad longer than Hollerith’s 1890 census cards.

You may be thinking this leads to the 1804 Jacquard loom, but no, too modern. Remember, question isn’t “why punched cards?” but “why 80 columns?” It resulted from the rectangular holes and THE CARD SIZE Image
See…the 45-column cards were matched to the size of U.S. paper currency of the time, because banks already had many drawers and cubbies perfectly sized for those. This was an established standard, somewhat bigger than today’s paper currency… ImageImage
The U.S. Bureau of Engraving and Printing officially codified that size with its founding in 1862…but really it was already in use with earlier bank notes, like these from the 1820s. Why this size? (which ultimately determined IBM’s 80 column constraint) Image
Because of standard press and paper sizes already in use. You could fit 8 notes on a British Imperial “foolscap” size page, or 4 on “foolscap folio.” (A paper size called foolscap was also seen in U.S. offices into the 1970s, but was a bit smaller, more like legal size) Image
The earliest specimens of foolscap paper date back to the late 1400s, not long after Gutenberg’s death, and before Columbus got lost looking for India. This might be the end of the story, it’s hard to say. Image
Keep in mind that Gutenberg’s invention was movable type, not the press. Engraver’s plates and page sizes were already standardized before this… Image
The “Bologna Stone” which provided page size reference for the city’s papermakers dates back a century further (late 1300s, this is a 17th century reproduction). Foolscap isn’t on here…so maybe it didn’t exist yet, or was derived from some fraction of one of these. Image
Fun fact: ALL of these page sizes are a √2:1 aspect ratio (1.414…), so they can be folded to produce a half-size page that’s *also* √2:1, and so forth all the way down.

Paper from Asia long preceded this, but settled on different sizes. Europe got in around the 9th century.
Page size ultimately comes down to the papermaking frame size…and that’s ultimately limited by how large a frame a Medieval European person could reasonably lift and manipulate. So there’s the horse butt of this tale: the spread of a man’s arms.
THE MORAL OF THE STORY IS: every time you open a terminal window or run clang-format, you are summoning a demon legitimately no less than 160 years old and with some imagination perhaps 500-1000 years old. Image
Postscript: “demon summoning” was a joke, but I’ll mention that much of the impetus for those higher-density punched cards mid-story has a tragic origin. Here’s a thread on Rene Carmille, who bucked the system and saved thousands of lives:

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with That Dragon Guy

That Dragon Guy Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @PaintYourDragon

Dec 27, 2020
Peeking inside @lumencouture LED mask. Will put this on logic analyzer tomorrow. Idea is to get Protomatter matrix library generating a compatible signal. Might be room for a Feather or ItsyBitsy board in forehead. Image
Doing a science. Things were learned. Image
Learned the upper OE pin is always high. Maybe PWM’d + ANDed w/second OE for brightness setting? No. 100% high.

Can see bit-angle modulation happening on lower OE pin: 8 bits, data issued in off periods. Fairly HUB75-ish so far. Image
Read 13 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(