Redtexture

Mark R.D. Jones

Jim Coplien on conceptions in Object Oriented Programming: DCI, MVC

Links to several presentations that can serve as an introduction to Data, Context and Interaction (DCI) architecture .

The presentations are either by or interviews of James Coplien, along with links to works mentioned. I extracted a set of selected quotations from one interview. Jim Coplien is the co-creator of Data, Context and Interaction architecture in collaboration with Trygve Reenskaug. Trygve Reenskaug is the creator of Model View Controller (MVC) architecture.

In the (below linked) 2010 London QCon interview, Coplien discusses conceptions and misconceptions in current object-oriented programming culture and how technique and methodology fail to substitute for the thinking actually required to accomplish a project. He also describes how languages can affect conceptualization, and argues that some popular languages focus excessively on classes instead of working objects. He briefly discusses DCI, and the state of Agile development.

It is interesting that JavaScript, with a prototypeinheritance model, satisfies Coplien’s desire for a non-class-based object-oriented programming language. JavaScript inherited its prototypal design from the Self language; Self can be characterized as a prototypal dialect of Smalltalk. There is also a Smalltalk project called Protalk, which is a prototypal extension of class-based Smalltalk.

In a prototypal language, taxonomy and classification of a classes is not necessary; in creating a new object, one merely constructs the object with the desired properties. One can create new instances that inherit the properties from an original model object; and one can differentially inherit or modify a new object’s properties as desired, at the time of creation.

Jim Coplien: Why DCI is the Right Architecture for Right Now
Interview with James O. Coplien by Sadek Drobi
at QCon 2010 London (May 29, 2010)
• Video (52 minutes) and transcript: http://www.infoq.com/interviews/coplien-dci-architecture

Handling architecture in the agile world
Jim Coplien at JAOO 2008, Aarhus Denmark.
• Video presentation: Not your Grandfather’s Architecture: Taking Architecture into the Agile World (47 minutes)
• Slides: Not your Grandfather’s Architecture: Taking Architecture into the Agile World

Doing OO the right way – Interview with James O. Coplien
Interview by Kresten Krab Thorup of Trifork, at JAOO 2008, Aarhus Denmark.
• Video (14 minutes): http://jaoo.blip.tv/file/1598213/

The DCI Architecture: Supporting the Agile Agenda – by James Coplien
Presentation geven at Øredev 2009 Developer Conference – oredev.org
• Video (52 minutes): The DCI Architecture: Supporting the Agile Agenda (November 6, 2009)

A few excerpts from the QConLondon interview:

The Smalltalk people, when they put together Smalltalk originally the computational model was exactly right, in terms of thinking in terms of objects. And then they screwed it up with the language. The language is so class focused! Most languages that we’re saddled with today had made this error.

I really don’t think that language constrains or shapes that much about what a great designer can express or does express. I think language is greatly overrated and we need to look beyond language for the solution. Language can help. Good languages can entice people and excite people and open minds, but it’s not enough. It really comes to changing world views.

Professionalism to me is that on a much higher level of how I am going to be responsible or answerable to society for the code I built. That has to do with a lot of thinking and a lot more than just technique can give me. This gets into morality. This gets into value systems. This gets into the systems thinking and for systems thinking you need to get beyond where we are with programming languages today. This is one of the reasons I’m excited about architecture these days. That starts to get us beyond the programming language limitations and into more systems thinking.

Procedural programming still has its place for some definition of procedural programming. If it quacks like an algorithm and flies like an algorithm, and it walks like an algorithm, I should be able to deal with it as a programmer, like an algorithm. That’s what DCI is about. It is restoring the identity of that algorithm while still honoring all of the principles of coupling and cohesion of the object paradigm.

So I’m trying to say “Let’s think in terms of architecture. Let’s think in terms of domain knowledge. Let’s think in terms of the mental models of the users of the system and the domain experts and do this at a level of systems thinking.” That perfectly complements the things that Bob [Martin] talks about most of the time.

Good interface design is really hard and there are very precious few people who are skilled in that in today’s world and we need more of these people.
Are you suggesting that usability starts from code that a programmer writes?
I don’t know if it starts at code but it stops at code. It involves code. Kent Beck used to say “You cannot hide bad code behind a good interface” and I totally agree with him.

Cited articles, people and topics mentioned in the presentations
• The DCI Architecture: After 30 years of Model-View-Controller, the other shoe drops. Gertrud & Cope (2011)
• The DCI Architecture: A New Vision of Object-Oriented Programming
Trygve Reenskaug and James O. Coplien. Artima.com (March 20, 2009)
• Data Context and Interaction (Wikipedia)

Trygve Reenskaug Department of Informatics, University of Oslo
• Trygve Reenskaug is the inventor of the Model-View-Controller (MVC) architecture, which separates data and its processing from presentation, and Object Oriented Role Analysis and Modelling OOram
• Trygve Reenskaug http://folk.uio.no/trygver/2009/commonsense.pdf
The second release of the DCI paradigm and BabyIDE. This report includes Squeak/Smalltalk example code with comments. (74 pp.)
A DCI Execution Model Trygve Reenskaug (PDF)
DCI – A new Role Based Paradigm for specifying collaborating objects Trygve Reenskaug.
• Video presentation (1 hour, 45 minutes) DCI: Re-thinking the foundations of object orientation and of programming Trygve Reenskaug. (November 6, 2009)

Gerald M. Weinberg – Books, Articles, Interviews on Quality
Diana Larsen, on the importance of co-located team members (Partnership & Possibilities blog)
The New New Product Development Game Hirotaka Takeuchi and Ikujiro Nonaka. Harvard Business Review (January–February 1986) (Complete copies of this article can be found on a number of university web sites.)

• James Coplein computer science publications, a bibliography.
   http://www.informatik.uni-trier.de/~ley/db/indices/a-tree/c/Coplien:James.html
   DBLP Computer Science Bibliography, a project of Trier University and Schloss Dagstuhl – Leibniz Center for Informatics.
• Jim Coplien work has included software architecture, design, and implementation in the Electronic Design Automation (EDA) industry as well as at Bell Labs Research; he is presently associated with Gertrud & Cope.
• Pattern Foundations – James O. Coplien
Video: Pattern Foundations (52 minutes)
Presented November 12, 2010 at Øredev 2010 Conference

• “The tools and materials metaphor”

Comments are closed.