4 ms·
That line stood out to me too, since relational theory has been such a success. I was surprised that [12] is just Codd's paper "Relational Completeness of Data
by pjungwir 8y ago
That line stood out to me too, since relational theory has been such a success. I was surprised that [12] is just Codd's paper "Relational Completeness of Data Base Sublanguages," where he introduces first relational algebra and then relational calculus. I read that paper just last year, and it didn't seem like a mess to me. Perhaps he was thinking of three-valued logic (i.e. NULLs), which came later? I'd like to learn more about how the relational calculus is an obvious mess.
- AnimalMuppet 8y agoEWD has his own idea of the "right" ways to program, think, and do math. If your ideas don't fit in with his approach, then your ideas are obviously garbage (to EWD, and he will not be shy about making his view known), no matter how formally correct or useful they are.
- pjungwir 8y agoOkay, but this is the author's opinion here, not EWD's. It was quite a glib dismissal, and footnoting it seems a bit disingenuous even, hinting to casual readers that there is some substance to his "obvious mess", when really the footnote is just to Codd's own paper. (You find these cunning footnotes everywhere btw.) Did EWD feel the same way about the relational calculus? What are the criticisms? I know plenty of ways SQL doesn't live up to relational theory, but this is about relational theory itself: the paper suggests that there is something unsound about it, and that Codd could have invented something better if he had gotten help from a professional logician.
- AnimalMuppet 8y agoI find it hard to believe that the author is citing their own opinion here; I assumed the opinion to be Dijkstra's, for two reasons. First, to my mind it sounds like Dijkstra. Second, I would expect the author of such an article to be mostly presenting Dijkstra's ideas rather than their own.
- pjungwir 8y agoReally? He is saying that Dijkstra's own book Predicate Calculus and Program Semantics ("D&S") suffered because "in general computer people seem to have a penchant for whipping up homebrew logics," and Codd is another example. Anyway if he were giving Dijkstra's opinion that makes the lack of citation even more egregious. But anyway the "who" is boring. I'm more interested to know what makes relational calculus an "obvious mess"?
- AnimalMuppet 8y agoAh, you are correct, and my (GP) post deserves more downvotes than it got. As to your question: I don't know. I don't really understand the formal definition of all the terms in play. But it sounds like maybe he wants relational calculus to be just a formal logic, whereas it might be something more (an algebra, or even a "calculus", though I don't really understand what makes something a calculus in these areas).
- pjungwir 8y agoNone of the downvotes were mine btw. :-) He praises Prolog because it was influenced by a logician, so I'm curious what he thinks of Datalog. That is something on my radar to read about, but so far I know nothing about it. But I believe it is something like "Prolog for databases." I know Datomic uses it, but it has a long history. Personally I think relational theory is one of the greatest success stories in all Computer Science, but that doesn't mean it is problem-free. I'd be happy to hear more about its shortcomings, especially as a formal logic. Anyway, thanks for the conversation! :-)
- AnimalMuppet 8y agoRelational could be non-problem-free from a formal logic perspective and still be perfectly fine for programming. I think that the article was written, if not from EWD's viewpoint, at least with some of his perspective, that programming should be a formal (and formally verified) process, and any deviation from that is rebuked in scathing terms, no matter how pragmatically useful it is. I think that viewpoint is quite short-sighted. Things can be formally flawed (by some standard), and still be perfectly pragmatically useful in a wide variety of situations.