I really enjoyed reading your comment. So well argued!
Re. the "OO tape"
I've heard Alan Kay tell this story. He said he saw this while he was in the Air Force. Most tapes just had data on them, and each set of data came in a different format. Each tape would come with instructions for how to read it, and programmers would have to write a program to read the tape. This involved a lot of revision, as you can imagine. Kay said one enterprising enlisted man (he knew the programmer must've been enlisted, because officers did not program) came up with a scheme to do away with this. He put executable routines for reading from, and writing to the tape, at the very beginning of the tape. These were loaded into standard addresses in the computer's memory. Any programmer knowledgeable of the machine would know where these addresses were. The tape required no instructions for how to read the data format, because the routines would do that for the programmer. All the programmer had to do was use the routines. In fact they could write their program once and reuse it for subsequent tapes from this same individual, because his tapes always used the same scheme.
Kay said he didn't know who created these tapes, though. He didn't talk about it being made at Burroughs. Do you perhaps know more about this story?
The basic concept this programmer got was that code is a formalized executable specification. So rather than writing out the format spec., knowing that all anyone was ever going to do with the tape was read and write to it, just encode the spec. into the actions and be done with it! Yes, modularization was an important part of it. You make a good point re. DbC. However, another part that has been almost completely neglected in modern OO systems is the idea that the actions were serialized with the data! We have a rather bad analog to this with stored procedures in databases, but there are problems with it in terms of no encapsulation, no revision control (for code), and with some exceptions no debugging facility. It feels sad, because I feel like with RDBMSes we almost have the necessary ingredients for an implementation of Smalltalk, but hardly anybody sees that. The only ones who've realized it are Gemstone (now a part of SAP).
Keep Up with TechRepublic