Just as we shouldn’t impose hierarchy where it doesn’t belong, we shouldn’t impose regularity where it doesn’t exist.
Ted Nelson on Zigzag data structures
“I hope that in our archives and historical filings of the future, we do not allow the techie traditions, of hierarchy and false regularity, to be superimposed, on the teaming, fantastic disorderliness, of human life.”
-Ted Nelson (colcluding reamrks of this video)
Although inheritance gets a lot of emphasis while learning OOP, it doesn’t mean that you should use it everywhere you possibly can. On the contrary, you should use it sparingly, only when it’s clear that inheritance is useful. One of the clearest ways to determine whether you should use composition or inheritance is to ask whether you’ll ever need to upcast from your new class to the base class. If you must upcast, then inheritance is necessary, but if you don’t need to upcast, then you should look closely at whether you need inheritance.
There are two ways of constructing a software design:
- One way is to make it so simple that there are obviously no deficiencies
- And the other way is to make it so complicated that there are no obvious deficiencies.
… If you’re gonna get reuse, you don’t do it by building something reusable and then expecting people to go ahead and use it. Much more effective way, is to build something usable and then harvest reusable things from that.
Aggregation in OOD
If the composition happens dynamically, it’s usually called aggregation.
-Bruce Eckel
Think of it as a modeling placebo.
-James Rumbaugh
Aggregation is strictly meaningless; as a result, I recommend that you ignore it in your own diagrams.
-Martin Fowler
When a model relies on particulars of the context of its reader for interpretation of its meaning, as is the case in legislation, we say that a model is informal. That is, the model lacks a formalism whereby the meaning of terms in the model can be uniquely defined.
…a lot of accidental complexity that was caused by low-level programming languages has disappeared, but unfortunately the industry overshot the target and now accidental complexity is caused by ever more elaborate frameworks and products that over-abstract problems, causing development teams again to wrangle with complexity that has nothing to do with the actual business problem.
Searching for meaning - from David Coxton's IT blog
If the internet were a giant book, containing all of human knowledge, it would surely have a search engine as it’s index. And what an index that would be! With the seemingly infinite variety of data and the breadth and the depth of information on the internet, an index this big would probably fill the largest of libraries, on its own…..
Berners-Lee: We no longer fully understand the web
Tim Berners-Lee, inventor of the World Wide Web, says its size and power over society have become so great that we no longer fully comprehend how it works
(opinion - New Scientist - 05 Jun 2009)
The “open-world assumption” means that modeling domains for the Semantic Web may require a shift in mindset for developers who are used to the closed, finite domains of “classical” object-oriented systems or “traditional” relational databases.
To a large extent, we behave the way we see people behaving around us, so a functioning programming group will tend to socialize new members to its philosophy of programming.
You cant make a baby in one month by putting nine women to work on the job…
I was especially looking forward to the second one, as that perspective is not only easier to understand for people from a software engineering context, but also because it is still a much neglected marketing “back-door”: If RDF simplifies working with data in general (and it does), then we should not limit its use to semantic web apps. Broader data distribution and integration may naturally follow in a second or third step once people use the technology