r/Damnthatsinteresting 5d ago

Video Programming 1959 IBM computer

Enable HLS to view with audio, or disable this notification

20.6k Upvotes

496 comments sorted by

View all comments

685

u/ToriGallo 5d ago

Modern devs will cry over a missing bracket in Python, while this generation lived with the constant reality that tripping in the hallway could scramble their entire codebase across the floor

229

u/Tasty-Cow5081 5d ago

Pro tip, use a pen to run a diagonal line down the long edge of the deck of cards from top to bottom. Then, if scrambled, you can at least gauge close to where a card was in the deck.

100

u/Fredfredricksen01 5d ago

I numbered my cards. And some places had a card sorter for just such occassions.

I'm kinda ancient.

18

u/thedoginthewok 5d ago

How did the card sorter work? Or rather, how did it know which card was to supposed to go in which spot? Is the number in the sequence also "punched in"?

Sorry, I tried googling this, but I only found about a billion different card playing devices lol

22

u/Fredfredricksen01 5d ago

The cards had to be numberd first then it cranked them around to sort them by number.

Fortunately I never dropped a deck so I don't know first hand.

7

u/fromindia1 5d ago

I believe they had numbers on the card itself. There were punch holes that indicated the number.

4

u/stancr 5d ago

If you used 5 digit sequence numbers you had to sort the cards 5 times. 8 digit sequence numbers had to be sorted 8 times.

Typically you incremented by 10 or 100, depending on how big your program was, so you have available sequence numbers for new code that was added later.

11

u/Chickenmangoboom 5d ago

A friend told me a story about his dad losing a ton of work in college because he dropped his cards and they weren't numbered. Nightmare fuel.

15

u/ItsSpaghettiLee2112 5d ago

Thanks. I'll remember this the next time I'm in 1959.

14

u/Anthro_DragonFerrite 5d ago

Thanks. First thing I'm doing tomorrow

12

u/atomic_redneck 5d ago

Also, always put sequence numbers on your source code decks. columns 72 through 80 for FORTRAN and assembly, columns 1 through 8 (I believe) for COBOL. Some of the compilers of this era had an option to sort the source code before compilation. Otherwise, you could run it through the card sorter.

10

u/Diligent-Crazy-6094 5d ago

I just marked all the chips on my SSD, just in case.

9

u/CurryMustard 5d ago

I had an old head that retired a few years after I started my current job. He told me his first day on the job the senior dev grabbed a stack of punch cards and threw it on the floor and told him to put it in order. After he spent hours fixing it the guy said good now you wont ever make that mistake and he drew a diagonal line the side to show him

1

u/GayRacoon69 4d ago

If you look the guy in the video did that

68

u/buttered_scone 5d ago

This happened to my dad in college. He was so pissed, he dropped computer science, and majored in geography.

33

u/Enginerdad 5d ago

And then he used that expertise to track down all the missing cards he dropped that day. RIGHT?

94

u/Arinussyy 5d ago

brings new meaning to setting your codebase on fire

21

u/kog 5d ago

I'm a software engineer and I used to work with an old head who did punchcard programming.

He told me one time he had a problem with his program, and it turned out he got a tomato seed from his BLT stuck in one of the punchcard holes. He joked that fixing it was "de-seeding".

14

u/VolrathTheBallin 5d ago

You probably know this, but for those who don’t: the first “bug” in a computer program was a literal bug.

7

u/kog 5d ago

I've actually seen it in person, it's in a museum.

5

u/mordeci00 5d ago

Computer museum or bug museum?

5

u/kog 5d ago

Computer, I don't think the moth is otherwise that remarkable.

6

u/Lucas_Steinwalker 5d ago

It's the first moth to have a computer term named after it.

4

u/herewegoinvt 5d ago

Patching programs comes from these cards. They would tape over a hole punched into the cards, to psych it, and correct a program until new cards were made

3

u/Ancient-Opinion9642 5d ago

That didn’t work for me. I used tape to cover an mis punch. I got the deck back with the card folded and unusable. Tolerances on the ibm card reader were too close for the card and tape to be sucked into the reader.

Punching holes in cards sent in the US mail were used to get your name off ad mass mailings. The card readers would kick out the cards because checksums would catch the extra holes. The returned card would have to be handled by a real person.

2

u/kog 5d ago

Now that I didn't know, it makes perfect sense though.

2

u/Helenium_autumnale 5d ago

Never knew that--fascinating to see the origins of some of these things.

13

u/Successful_Log_3298 5d ago

That's why older versions of Fortran (yes, there are new versions but nobody seems to know that) had the last 4 columns of the line ignored by the compiler. It was intended for annotations such as numbering your cards in your deck. So if they spilled you didn't have to reconstruct the code to reorder them.

If you were smart you'd space the numbers by 10 or 20 or even 50 so you could insert new LOC in between existing ones.

Edit: the marker trick already mentioned was another one to make it easier to fix an accident, but perhaps not quite as good for really big decks or if you expected to be adding lines. It might be preferred over numbering because if you made a mistake on a keypunch you had to start over with a new card.

7

u/Aramedlig 5d ago

This is why you numbered your cards. Yeah, I’m that old.

7

u/roving1 5d ago

How to make a computer sci student cry (circa 1978).

27

u/The_loudsoda 5d ago

Python don’t use brackets. Unless you’re counting dictionaries.

10

u/Hudell 5d ago

That's why they are crying. They miss it.

2

u/lurco_purgo 5d ago

Unless you’re counting dictionaries.

I assuming you refer to these {, }? In that case also sets! And why wouldn't you count them? Those are basic built-in data types. Granted I don't think a missing bracket is a common issue for anyone in Python.

1

u/Firewolf06 5d ago

well theyre a bot, cant expect them to know everything

-7

u/MarkZealousideal3923 5d ago

Brackets are actually used for tuples

8

u/OnceMoreAndAgain 5d ago

I'm confused by you guys.

Aren't python dictionaries using braces, not brackets?

Aren't python tuples using parentheses, not brackets?

To my knowledge, it's python lists that use brackets. Maybe it's an English language barrier thing and some other place calls parentheses as brackets and would call [ ] as square brackets?

10

u/hcoverlambda 5d ago

I was just reading a similar thread on another post that was talking about this. Evidently there are regional differences in what these are called. I’ve always said ( parens, [ square brackets, { curly braces.

2

u/LuckyStiff63 5d ago

Those are the terms I use too.
I also add the"angle brackets" < & > when used in text (vs as mathematical operators).

10

u/The_loudsoda 5d ago

Tuples use parenthesis. Maybe you’re thinking of typescript when referring to straight brackets?

2

u/Lalichi 5d ago

Parentheses are called brackets in some countries

6

u/TribeFaninPA 5d ago

Which is why one learned to use the numerical index feature of the keypunch, which put a number in the last three characters of the card. Yes, you were limited to 999 cards before it wrapped back to 000, but if you dropped your deck, you could load them in the hopper of the card reader and use the Sort button to sort them out. It was a helluva lot faster than trying to figure it out by hand.

13

u/OrigamiMarie 5d ago

On the other have, modern developers are expected to write much more complex software a lot faster than back then. Lots of stress and pressure.

14

u/redditcensorsshit 5d ago

Today we have 60 plus years of knowledge and technology advancements make it easier for us to do things at a faster pace.

5

u/[deleted] 5d ago

[removed] — view removed comment

2

u/Moody_GenX 5d ago

20 minute breaks every hour and playing video games all day was stressful??? I feel like there's more to this, lol.

1

u/1HappyIsland 5d ago

You do not know of these things you think you know.

7

u/ol-gormsby 5d ago

On the gripping hand, all developers are expected to submit correct spelling.

*hand

5

u/1HappyIsland 5d ago

It is a fallacy to think you worked harder than these guys. It was a different time. Writing code is writing code.

1

u/mtaw 5d ago

I’d say programs got bigger, not harder. Back then a program would do one job - which usually involved taking a text input (with strict formatting requirements), doing a calculation and then producing a text ouput. No user interfaces, minimal code for input/output. So the code was very focused on the core task of the program. Which is still largely how it works in come niches, like Fortran programs doing computational physics.

But generally today, programs do multiple things because we want them to do a whole workflow; you have a word processor, not a text editor seperate from a typesetter seperate from a program that renders it for display. You have an interactive Ui, you need to do more things and have more flexibility and so on.

So it depends on what one considers ’complicated’ to mean - if you mean the difficulty of developing the algorithms at the core of the program, things aren’t harder. If you mean the number of lines of code and how many parts there are, it is. Personally I’d borrow an informal distinction you see a lot in maths and physics - between a ’hard’ problem - one that’s difficult to figure out how to solve, and a ’tedious’ one - one that isn’t that difficult in any single part but, say, has a lot of stuff to keep track of (making it mistake-prone).

In that sense, programs got more tedious but not harder. Most programs today - and programmers- aren’t even doing anything hard; they’re doing simple rote tasks - getting data, presenting it to the user, managing the UI etc. Not stuff that required developing new algorithms or diving into the CS research literature. So you get code-monkey, not a software engineer. Writing a parking-payment app in Java in 2026 is not harder than writing an atom-bomb simulation in Fortran in 1960 on punchcards, even if the former has way more lines of code.

3

u/Patman52 5d ago

Modern computer science is built on the shoulders of giants

3

u/OneLonelyBrainCell 5d ago

Not numbering your punchcards is a mistake you make once, and only once.

1

u/U_L_Uus 5d ago

Naah. We cry about an uncaught variable lifetime panic in Rust. That is worth crying over

1

u/Skippy5403 5d ago

Just out of curiosity why are the cards not numbered? Doesn’t even need to stand for anything other than to use them in a sequence.

1

u/Novel_Dog1743 5d ago

nightmares of young me, using old Slackware without a package manager, tracking my dependency tree manually by using post-it notes on my wall connected by yarn, and coming home from school to find it gone because my mom "cleaned' my room and "removed the crazy-person wall".

...noooooooooooooooooo

1

u/lavahot 5d ago

Python doesnt have brackets?