Live data from Hacker News

The tyranny of the Hollerith punched card

pub.gajendra.net

71–80 of 148 posts

Re: The tyranny of the Hollerith punched card

#72
post #14

The article has the causality backwards. We don't use 80 characters because that's what the Hollerith card used, the Hollerith card used 80 characters because that's a good ergonomic width. (Or, if you prefer, the Hollerith card succeeded because it was a good ergonomic width.) Coincidentally (or perhaps ironically) the article itself is formatted for ~80 characters per line, not because it's bound by the Hollerith c…

I think this might be a case of two-way causation, though. ~80 characters is a good, readable target, but that's not what we have. For a long time, we've had a militant standardization on So the question remains: why 80? 80-ish, sure, but why such a fixed standard? I don't know enough history to say if that's down to Hollerith cards, or the consequences of auto-formatters, or something else, but there's a more defini…

> why 80?

Because 80 is a very good approximation to 80-ish.

Re: The tyranny of the Hollerith punched card

#73
post #35

Out of curiosity, where did the 132 column standard (for wide carriage printers) come from (why 132, not 130 or 120)?

Likely because of the VT100: http://vt100.net/docs/tp83/chapter5.html > 132 column × 14 lines (VT100, VT101, VT125) display > Allows you a larger format for detailed or spread sheet work so you can preview reports prior to printing. (Note: The advanced video option, which is standard with the VT102 and VT131, provides 132 column × 24 lines display.)

So in this case, the 132 column printer came after the 132 column vt100 series?

Re: The tyranny of the Hollerith punched card

#74

Earlier quoted context omitted.

Also the author seems to have missed that this char limit is changing. In Python, for example, an official style guide update in 2013 [1] allows for 100 char line length. [1] https://www.python.org/dev/peps/pep-0008/#maximum-line-lengt...

The author wrote this in 2012, so at the time it may have been impossible to predict the 2013 update.

A style guide doesn't change on a whim. I can nearly guarantee the shift was visible coming down the pipeline a year earlier.

Re: The tyranny of the Hollerith punched card

#75
post #14

The article has the causality backwards. We don't use 80 characters because that's what the Hollerith card used, the Hollerith card used 80 characters because that's a good ergonomic width. (Or, if you prefer, the Hollerith card succeeded because it was a good ergonomic width.) Coincidentally (or perhaps ironically) the article itself is formatted for ~80 characters per line, not because it's bound by the Hollerith c…

I researched Hollerith cards and 80-character lines in excessive detail while studying card sorters [1]. The Hollerith card is the root cause of 80-character lines, of course. Prior to 1928, Hollerith cards used round holes and 45 characters per card. IBM wanted to fit more data on a card and investigated two alternatives: binary coding so 90 characters could fit into 45 columns of holes, or rectangular holes which allowed narrower holes so 80 columns would fit. They chose the latter because it was more compatible with existing card sorting equipment, and the rest is history. Competitors used 90 column cards, but didn't achieve the same success as IBM. IBM later introduced 96-column cards, but they weren't as popular. Thus, it's just a historical accident that everyone uses 80 columns rather than 90 or 96. And 80 columns is used because that's how many could fit on a punched card the size of obsolete US currency. Note that ergonomics has nothing to do with the success of 80 columns: for the most part these cards held accounting data, not program code or text. (I wrote an article covering this in great detail but haven't posted it to my blog yet; hopefully I'll get it out soon.)

[1] http://www.righto.com/2016/05/inside-card-sorters-1920s-data...

Re: The tyranny of the Hollerith punched card

#76

Earlier quoted context omitted.

but "20-odd" (let it be 24) is just 3 * 8, which is something like this. I don't see how this is already screwed up for complexity. class A { A::a() { if (expr) { do1(); } else { do2(); } } }

I don't actually know of any project which uses 6 or 8 characters per indentation level.

8 chars is default tab size. So e.g. "git diff" shows you 8-position tabs. Github (and Bitbucket, etc.) diff visualizer also shows it as 8 positions. Any editor should use 8 by default, too.

And, believe me or not my space-loving friends, tab-indented codebases still exist.

Re: The tyranny of the Hollerith punched card

#78
post #35

Out of curiosity, where did the 132 column standard (for wide carriage printers) come from (why 132, not 130 or 120)?

That's a good question, and I've been trying for weeks to find the answer. 132 columns for printers is way older than video terminals, dating back to the IBM 1403 printer from 1959. I've studied the 1403 printer closely and asked the IBM history experts, but nobody seems to know exactly where 132 columns came from. One theory is IBM wanted to have more columns than competitors with 120 columns, so went to 132, but that's not a completely satisfying answer. I wonder if 132 is a limit due to the (surprisingly complex) timing of the print chain, but haven't been able to nail it down. I've studied the 1403 printer's circuitry in detail, and haven't seen any reason for 132 columns. If the printer had 12 characters per inch, 11 inch wide paper would have 132 characters, but the printer has 10 characters per inch so that doesn't explain it.

Re: The tyranny of the Hollerith punched card

#79

Earlier quoted context omitted.

I don't actually know of any project which uses 6 or 8 characters per indentation level.

8 chars is default tab size. So e.g. "git diff" shows you 8-position tabs. Github (and Bitbucket, etc.) diff visualizer also shows it as 8 positions. Any editor should use 8 by default, too. And, believe me or not my space-loving friends, tab-indented codebases still exist.

My editor definitely puts tabstops at 4. Weird.

Re: The tyranny of the Hollerith punched card

#80
post #19

Earlier quoted context omitted.

Agreed, 80-chars may be an accident of history, but it's an accident which happens to line up quite well with the human eyes ability to track horizontal lines of text. It gets tiring listening to devs rage about the 80-char limit, then go on to produce code that's basically unreadable because it scrolls way off the screen.

> it's an accident which happens to line up quite well with the human eyes ability to track horizontal lines of text. Citation needed.

From observation, people on HN tend to discourage small replies that say nothing (such as this). It is likely that you would not have got downvoted if you had said what evidence you have to the contrary, given your opinion on it and why you think that, or even made an effort to debunk or state why you think a few common arguments for the line length being 80 chars are incorrect.

Hacker News keeps clean discourse by downvoting comments that are not relevant or do not stimulate debate.

Post reply on HN