5 ms·
Hmmm... "The language, CLU (short for “cluster”), relied on an approach she invented — data abstraction — that organized code into modules." Let's ignore how
by proc0 7y ago
Hmmm...
"The language, CLU (short for “cluster”), relied on an approach she invented — data abstraction — that organized code into modules."
Let's ignore how preposterous it is to claim you invented data abstraction and move to the module claim... that a simple search for "who discovered programming modules" shows:
"The Modula programming language ... by Niklaus Wirth, the same person who designed Pascal. The main innovation of Modula over Pascal is a module system, "
And it seems others were thinking the same way:
'After you won the Turing Award, a comment appeared online saying, “Why did she get this award? She didn’t do anything that we didn’t already know.”'
Not sure what to think here but I never heard CLU was the first to add modules. I'll just leave it at that.
- pulisse 7y ago> Let's ignore how preposterous it is to claim you invented data abstraction It's not exactly fair to blame a researcher for the overhyped claims made on their behalf by a popular science writer.
- zozbot234 7y agoTo be fair, the first version of Modula was released around the same time as CLU, and the latter additionally includes a number of modularity-enhancing features which were quite influential on later programming languages. So I'm inclined to endorse the claim made in the article.
- _pius 7y agoAnd it seems others were thinking the same way: 'After you won the Turing Award, a comment appeared online saying, “Why did she get this award? She didn’t do anything that we didn’t already know.”' This is not only distasteful but false. First, modules in Modula were primarily about scope not abstraction. Liskov pioneered a core aspect of abstraction which, among other things, allows modules to rely on abstract interfaces rather than their implementations (or a type or class rather than its subtypes or subclasses). Abstraction only works reliably if any provably true property of a type is also provably true about its subtype. Want to learn more? You’ll find it referenced in the literature as the Liskov Substitution Principle. https://dl.acm.org/citation.cfm?doid=197320.197383 https://dl.acm.org/citation.cfm?doid=197320.197383
- zozbot234 7y agoWhen did ML gain its module feature (which does enable the equivalent to data abstraction)? From a very casual search, the earliest references I can find to it are from the early 1980s, so well after CLU - but the very first versions of ML itself were being worked on around the same time.
- _pius 7y agoThat’s a good question, I don’t know the history well enough to comment on that. Much more important than CLU itself — groundbreaking as it was — was Liskov’s formalization of substitutability as a rigorous principle one can use to reason about the quality or correctness of an arbitrary abstraction (or model thereof).
- kachnuv_ocasek 7y agoIf I recall correctly, ML first appeared as part of the Edinburgh LCF theorem prover in 1979 and it did not have modules at that time.
- ratmice 7y agoI'm pretty sure this was around 1983/1984 See the papers "Modules for standard ML" 84, by Dave Macqueen, MacQueen had previously written a paper Modules for Hope (81) which likely influenced it. Unfortunately the SML-Family doesn't have links to these in it's history section afaict. But ML languages didn't get modules until the standardization effort that produced standard ML.
- dang 7y agoTo echo what pulisse said: Please let's be careful to distinguish anything Liskov claims about her own work from claims made on her behalf by a non-specialist author. Most times the latter happens, the actual subject ends up wincing over the inaccuracy. To get that wrong as a reader is to repeat the error.
- hermanhermitage 7y agoI'm not sure its preposterous. Based on what I've read she and her team focussed on teasing out abstraction and modularity features in CLU based on experience building previous large/medium scale software systems. It doesn't preclude others inventing before, after or at the same time. Nor the same ideas being explored in other fields earlier with other terminology or focus. I'm sure there is some field of human endeavour that has explored and documented the same ideas in a different context much earlier.
- pjmlp 7y agoModula took its module system from Mesa, after Niklaus Wirth spent its first sabbatical year at Xerox PARC, he did not invent modules. And as others have already point out, the word "modules" is the same, but not the semantics.
- microtherion 7y agoThe "simple search" would be wrong. Wirth says [https://inf.ethz.ch/personal/wirth/Articles/Modula-Oberon-June.pdf https://inf.ethz.ch/personal/wirth/Articles/Modula-Oberon-Ju...]: > I encountered the language Mesa [… which] allowed to develop parts of a system – called modules – independently Mesa was first released to the public in 1976, so CLU might have been slightly earlier. Modules as a concept predate both Mesa and CLU. David L Parnas was one of the popularizers of the concept, and in one of his early papers on the subject [https://www.win.tue.nl/~wstomv/edu/2ip30/references/criteria_for_modularization.pdf https://www.win.tue.nl/~wstomv/edu/2ip30/references/criteria...] his quotes show that the term was well established by 1970. But CLU was one of the first programming language to feature abstract data types, iterators, classes, and templates. Even in the mid-80s, when I first heard about it, it seemed shockingly modern.