Squeak
  links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
DCI - origin
Last updated at 6:37 am UTC on 2 November 2020
http://heim.ifi.uio.no/trygver/2010/DCI-Origin.pdf

"One assumption was that if an object was coded “to do the right thing”, it would behave properly when interacting with other objects. This is OK in simple cases, but it fails for systems where “the value of the system is greater than the sum of its parts”. In such cases, what is “the right thing” depends on the system as a whole, i.e., the context."


"In short: Classes are not independent, and a higher level construct is needed to specify the whole."


"There is a widespread belief that testing was the only way open for debugging OO programs. (Dijkstra: Testing can show the presence of bugs, not their absence.)

I also like to quote the Gang Of Four:
An object-oriented program's runtime structure often bears little resemblance to its code structure. The code structure is frozen at compile-time; it consists of classes in fixed inheritance relationships. The runtime structure consists of rapidly changing networks of communicating objects. ..., it's clear that code won't reveal everything about how a system will work. "


"I took up the challenge when I retired i 1997. My retirement goal was to find a way to make code reveal everything about how a works. This clearly implied making object interaction explicit in the code."


"In the Smalltalk group, we used to say that there were two approaches to object orientation. One was the East Coast approach with C++ and such: “Object orientation is a smart programming artifact where an object is an instance of a class and also a data structure (struct? record?) with built-in methods for operating upon its data”. The other was the West Coast approach: “Object orientation is much more than that. Object orientation is an entirely new paradigm for thinking about systems. An object is an element for building corresponding models in the human head and in the computer. The essence of object orientation is that objects interact to achieve a task.” The main difference between these views is clearly the difference between machine-orientation and people-orientation."

See

Collaboration between objects (DCI)