The E. W. Dijkstra Archive is a collection of over 1,000 manuscripts that EWD sent around during his career.
This Stack Overflow question ("explaining software development to management") had a really brilliant comment on one of the answers.
Analogies are always leaky, and you will end up with proposed …more ...
Some assumptions are really hard to identify as "assumptions". Some assumptions are more "wishful thinking" than "assumption".
We process a lot of spreadsheets. As far as I'm concerned, the Spreadsheet User Interface (SUI) is a first-class part of any application. Users understand them, and you don't have to code as …
more ...Check out this list of questions from Stack Overflow: [Django] join.
These are all folks trying to do joins or outer joins even though they have objects fetched through the ORM.
How does this confusion arise? Easy. Folks work with SQL as if the relational world-view is Important and Universal …
more ...I've cataloged a third specific case of fundamental failures to understand polymorphism. The first two I've seen a fair number of times. The third seems to be more rare.
1. "How do I determine which subclass an object has?" The Identification problem.
2. "How do I morph an object to …
more ...This is -- partially -- about the object-relational impedance mismatch.
But it's also about the parallel concepts between objects and relations. We'll use Python as our object model.
First, the obvious.
A SQL table is a list of rows. A row is a dictionary that maps a column name to a column …
more ...In Lenses That Distort Our Software , I noted that the relational model of data can distort our view of the underlying reality that software models. In that posting I was whining about how meaningful structure is sacrificed to force fit information into the rows and columns of the relational world …
more ...In Object Modeling , I repeated a procedure for object identification that comes from the classic Object-Oriented Modeling and Design (Rumbaugh, et. al.)
Objects are characterized by their state change. Therefore, to distinguish among classes of objects, we need to determine if two objects have the same states and state transitions …
more ..."Polymorphism is nice as well, although I can't grok (yet) why this is necessarily not part of non-OO things. I'm not clear that it goes with the strong binding of state and method in a class."
Polymorphism isn't necessarily part of OO. Python actually has polymorphic functions outside of class …
more ...There is a Design Pattern, sometimes called "Don't Talk to Strangers" that embodies the OO design principle of "Responsibility Assignment". This pattern can also be called "The Opacity Principle."
Sometimes I like to describe it as "If you don't control it, it's none of your business what's under the hood …
more ...