27:16 Here’s another quote from that paper: “Regrettably enough, [the importance of subroutines] has been underestimated in the design of the third-generation computers, in which the great number of explicitly-named registers of the arithmetic unit implies a large overhead on the subroutine mechanism. But even that did not kill the concept of the subroutine, and we can only pray that the mutation won’t prove to be hereditary.” Sounds like he was not a fan of having lots of CPU registers. I wonder how he felt about RISC architectures ...
27:37 ALGOL 58 was officially the “International Algorithmic Language”. One offshoot of it that was implemented was JOVIAL, “Jules’ Own Version of the International Algorithmic Language”. The “Jules” in question was Jules Schwartz, but his was not the biggest role in it.
39:25 Programmer productivity has improved by orders of magnitude over the decades, though. An early study came to the conclusion that a programmer working on a large system could really only come up with about 10 lines of well-tested and functional source code per day. And this figure applied across the whole spectrum of available tools, from assembler (where each line was one machine instruction) up to high-level scripting languages. Therefore, high-level languages did indeed improve productivity. For example, I looked at some statistics related to the Linux kernel a little while back. That had something like 1000 active contributors at the time. And true enough, the amount of new and changed code flowing into the commit history was around 10 lines per contributor per day.
25:49 This “ALGOL-like syntax” was likely LISP 2. There are some papers on that here www.softwarepreservation.org/projects/LISP/lisp2_family/#LISP_2_ .
6:23 I’ve been doing software development for about 40 years, and I don’t agree at all. I have to point out that this quote comes from one of the principal minds behind COBOL, which has to be seen as one of the least imaginative languages of all time.
The only time I used it in my career was in VB1 through VB6, where error handling code used on error goto, it allowed something like RAII semantics if used carefully. (I also used C++, so was attempting to manually reproduce destructor semantics, somewhat successfully). Entirely a workaround for language deficiencies of course.
What an absolutely amazing talk!!!!!!!!
Such a fun talk. Those papers are full of great quotes.
27:16 Here’s another quote from that paper: “Regrettably enough, [the importance of subroutines] has been underestimated in the design of the third-generation computers, in which the great number of explicitly-named registers of the arithmetic unit implies a large overhead on the subroutine mechanism. But even that did not kill the concept of the subroutine, and we can only pray that the mutation won’t prove to be hereditary.”
Sounds like he was not a fan of having lots of CPU registers. I wonder how he felt about RISC architectures ...
Slides and bibliography are available here: speakerdeck.com/mrallen1/all-of-this-has-happened-before-and-it-will-happen-again
Thanks!
The link is not available anymore.
awesome talk!
27:37 ALGOL 58 was officially the “International Algorithmic Language”. One offshoot of it that was implemented was JOVIAL, “Jules’ Own Version of the International Algorithmic Language”. The “Jules” in question was Jules Schwartz, but his was not the biggest role in it.
34:20 Burroughs adopted it heavily, and even used a version of it as a systems programming language.
39:25 Programmer productivity has improved by orders of magnitude over the decades, though. An early study came to the conclusion that a programmer working on a large system could really only come up with about 10 lines of well-tested and functional source code per day. And this figure applied across the whole spectrum of available tools, from assembler (where each line was one machine instruction) up to high-level scripting languages. Therefore, high-level languages did indeed improve productivity.
For example, I looked at some statistics related to the Linux kernel a little while back. That had something like 1000 active contributors at the time. And true enough, the amount of new and changed code flowing into the commit history was around 10 lines per contributor per day.
25:49 This “ALGOL-like syntax” was likely LISP 2. There are some papers on that here www.softwarepreservation.org/projects/LISP/lisp2_family/#LISP_2_ .
36:47 Grace Hopper explains nanoseconds to David Letterman: ua-cam.com/video/lGTEUtS5H7I/v-deo.html .
6:23 I’ve been doing software development for about 40 years, and I don’t agree at all.
I have to point out that this quote comes from one of the principal minds behind COBOL, which has to be seen as one of the least imaginative languages of all time.
The only time I used it in my career was in VB1 through VB6, where error handling code used on error goto, it allowed something like RAII semantics if used carefully. (I also used C++, so was attempting to manually reproduce destructor semantics, somewhat successfully).
Entirely a workaround for language deficiencies of course.
31:51 I would say goto is not so much “harmful” as “unnecessary” and “counterproductive” ... github.com/ldo/a_structured_discipline_of_programming
yeah, and Donald Knuth would agree with you! ;)
11:00 It exists: www.computerhistory.org/collections/catalog/X1005.89 .