But also the progress of the last 50 years: the KWIC index went from “a small system [that] could be produced by a good programmer within a week or two” to a tiny system that can be written in a couple lines using the standard library of Java (as I once saw a demo of).
Also: I recently wrote a blog post related to this paper and all of the initial test readers told me they had no idea what a KWIC index was and it needed more explanation. Instant full-text search really changes things.
With a bit of cocktail napkin math that more than a factor of 100 faster than Parnas' estimate, just for having a higher language with a reasonable standard library at your hands.
Fred Brooks wrote in his 1986 "No silver bullet" essay that "There is no single development, in either technology or management technique, which by itself promises even one order of magnitude improvement in productivity, in reliability, in simplicity.". - but the compound effects of many years of many, many gradual improvements in developer tooling are really not bad.
The code therein uses the specification language described in https://dl.acm.org/doi/pdf/10.1145/355602.361309 (reference [3] in the 1972 paper). From there:
"The notation is mainly ALGOL-like and requires little explanation. To distinguish references to the value of a function before calling the specified function from references to its value after the call, we enclose the old or previous value in single quotes (e.g. 'VAL'). If the value does not change, the quotes are optional. Brackets ("[" and "]") are used to indicate the scope of quantifiers. "=" is the relation "equals" and not the assignment operator as in FORTRAN."
We can all be 100x programmers, if we look at a broader timespan.
There are so many unknown deps and unknown opportunities to optimise at the start of a project.
You find those out as you get in the weeds and as the ICs dream a 1am about their code and bring that idea in the next day.
ok - "modules that hide design decisions" implies OOP. In thirty years, OOP got applied to build giant systems, some that went too far. There has been backlash against OOP for real reasons, perhaps also ignorant reasons too.
Flowchart coding is straight from "structured programming" an advance from the single line of execution ASM style that sometimes created unintuitive and needlessly-complicated execution flow. IMHO there is nothing wrong with structured programming, or actually OOP when used appropriately.
No; it is the other way around.
OOD/OOP implies information hiding/encapsulation.
https://news.ycombinator.com/item?id=37477446 - Sept 2023 (15 comments)
https://news.ycombinator.com/item?id=30138468 - Jan 2022 (27 comments)
https://news.ycombinator.com/item?id=8849468 - Jan 2015 (5 comments)
https://www.goodreads.com/book/show/39996759-a-philosophy-of...
which has been discussed here previously:
To modern ears, the title of the article seems to falsely promise that it's about system design - criteria for decomposing a system into modules rather than on the benefit of information-hiding modules over collections of functions.