HACKER Q&A
📣 eatbitseveryday

Material on early computing history and innovation?


I am not old enough to have lived through this part of history, but as I age, I realize the value in experience as it relates to understanding something (i.e. historical events). Recognizing the value in many of the concepts I use today, I believe, would be better reading more about the history - what was computing life like decades ago, what limitations were there, and what did programmers have to think about when building systems?

I searched HN and only found this: https://news.ycombinator.com/item?id=15865504

Are there any books, lectures, or other detailed materials that would help me and the younger crowd learn more? For example, a detailed discussion of PDP-11 or other systems.

I'm technical (PhD in CS) but realize my history is weak, and would very much enjoy reading a balance of technical details with a broader perspective on the impact.


  👤 verdverm Accepted Answer ✓
Walter Isaacson, The Innovators is a great book

👤 ipnon
This unfortunately is not the most studied field. The level of expertise to make meaningful contributions requires being a skilled computer scientist and historian.

The best surveys available are by Paul Ceruzzi[0], as far as I know. Even this is lacking a bit because it focuses unduly on more recent business developments like Microsoft's monopoly and the emergence of Linux. These topics don't have much to do with the long development of computers themselves I would say. One also begins in 1940, after a fair amount of interesting history has already passed.

If you're looking for a more experimental approach, I would say you can focus on just studying a few machines in-depth and glean quite a bit of the main thread. For examples:

1. Babbage's analytical machine and Lovelace's contributions. The birth of computing was really a meeting of two minds. Babbage's machine was such an oddity I think he had trouble imagining all of the possibilities himself. Lovelace really does deserve quite a bit of credit for her collaboration, and she really transformed Babbage's crank wheel calculator into the sort of algorithmic processor we know today.

2. The IBM 360. It's ubiquity in the mainframe means there are still plenty running in the wild, which is not something you can say about most computers from that era. IBM's foothold in the expensive hardware business meant that they effectively controlled the software business as well. It's hard to exaggerate how closed computing was during this era.

3. The PDP-7 through the PDP-11. If the 360 was when computing became mainstream and closed, the PDP-11 was when it proliferated. The PDP-11 was when trends in time sharing, price, and computer science converged. The C language and Unix-like systems we know and love today, including all of their derivatives, could not have been born earlier without this specific machine.

My suggestion would be to read a general survey, and if you are still interested and curious, find some of the original documentation and handbooks for the computers of the era you are most interested in. A surprising amount of emulators exist for any pivotal computer of the past like those 3 that I mentioned.[1] Programming them is an exercise in humility and appreciation for how far computers have come.

Finally, I would suggest going to visit one of the old machines in person. The Computer History Museum[2] has many still working exhibitions, but if traveling to Mountain View is too far, there are still many working examples scattered around the world in universities and private collections. The tangles of wires, dim hums, and clicking terminals are precious experiences.

The history of just memory is equally fascinating[3], but I think I've said enough here.

Good luck and have fun!

[0] https://mitpress.mit.edu/books/history-modern-computing-seco... or https://mitpress.mit.edu/books/computing-1

[1] This PDP-11 emulator is a treat for the simulation of the case and it's buttons. https://skn.noip.me/pdp11/pdp11.html

[2] https://computerhistory.org

[3] For example, https://en.wikipedia.org/wiki/Delay_line_memory