Have been researching the history of CS and the mo...
# linking-together
p
Have been researching the history of CS and the more I look into it, the more I feel it is deeply intertwined through the lives of people involved. For example Scott and Strachey worked together resulting in Denotational Semantics. Same Strachey used to be a classmate of Alan Turing, who was the student of Alonzo Church who made Lambda Calculus, who worked with Kleene resulting in Recursive Function Theory. Both of these mathematical models were used in the creation of Lisp by McCarthy. Peter Landin who used to work with Strachey creates the SECD machine which becomes an operational substrate for Lambda Calculus which is used along with Denotational Semantics to give a formal footing for today’s FP languages. To give a structure to this braided nature of CS history, I created a visualization here: https://twitter.com/prathyvsh/status/1197525794245009408?s=21 Would love to get any opinion on how I can improve this visualization!
❤️ 6
s
This is powerful! Using people and timelines as an approachable overview of this field is super useful and I’m happy you put a lot of thought into this. The often invisible connections between people and how they influence each other add an additional dimension to how we can interpret their research and more often than not it’s these connections that give us the clues for deeper understanding. There was a Flash-based Ishkur’s Guide to Electronic Music that did something similar in a different domain, which I’d recommend looking at for inspiration (you’ll have to search for it and install a Flash plug-in, but it’s worth it). I’d love to see something like that as an interactive explorer through the history and the people of our field, with links to important presentations and papers sprinkled in.
👍🏼 1
d
Landin's 1965 paper "The Next 700 Programming Languages" was the original manifesto for functional programming, and Landin was pushing the idea, even as Strachey thought it was impractical. The paper introduced ISWIM. Some of the core ISWIM syntax (let, where, indentation as syntax) lives on in Haskell. I see "ISWIM" in the diagram, but not "Functional Programming".
p
@Stefan Thank you for the comments! I think may be adding a geographical aspect as an extra dimension might be really helpful. I was aware of Ishkur's guide, but hadn't looked into it as a material for inspiration. Thanks for making the connection! About using papers and presentations mixed in, that's exactly where I want to take this. I would like to get this big picture of how we got to where we are with this map.
@Doug Moen This is only a partial sampling and obviously I have left out quite a few events in there. I will add categories like FP/Denotational Semantics as a first class category and try to link how it is linked with these luminaries. If you have any input tracing the history of FP, it would be a great help. Cheers!
d
In 1952, Alick Glennie invented Mark I Autocode, the first practical compiler for a text based high level language. It was influential: an ancestor of Fortran and all the other high level languages used today. If you like this kind of history, please read Donald Knuth's "Early development of programming languages". http://bitsavers.trailing-edge.com/pdf/stanford/cs_techReports/STAN-CS-76-562_EarlyDevelPgmgLang_Aug76.pdf In 1944, Konrad Zuse invented Plankalcul (Program Calculus in German). This was the first high level computer programming language, full of features decades ahead of its time, including nested data structures, and a 32 bit binary floating point format with Infinity and NaN. In 1946, John von Neuman invented the first node-and-wire programming language. It was highly influential in its day, but today the kids think they invented this idea.
❤️ 1
p
Thanks a lot for the info. Will read that Knuth paper. But one piece of info: I dont think it was Von Neumann but McCullough and Pitts that invented the notation. Neumann’s EDVAC paper borrowed that notation. Its beautiful btw!
This is how it looked like.
b
p
Also, interesting to look at is the Randolf diagrams thats shown along with the diagram that McCullough invented. It is a visual form of Boolean computation: https://en.wikipedia.org/wiki/Randolph_diagram