A couple weeks ago I posted this introduction to DCI. I received a lot of feedback. Primarily I was told that I did not explain DCI concisely enough. In addition I received feedback that showed me I completely failed to convey the point of DCI. DCI does not replace OOP, it augments it and makes it easier to maintain.
After reviewing all feedback, and corresponding with many of those who provided it, I have written a new document. This document attempt to use simple language, to put DCI as simply as possible. Unfortunately the logical leap to grasping DCI is at least as large as the logical leap from Imperative to OOP, and cannot be consistently conveyed in a simple paragraph (at least not with my writing skills.)
Here follows the new document. The first 3-4 paragraphs may be enough for most people to grasp DCI. For those who still do not get it, or those that want a concrete coding example, I present complete and tested code comparing an OOP and DCI development project. This example also outlines the DCI.pm API.
I apologize for the horizontal scroll bar. The width of some code samples is large than allowed by this blog format. To view the document without restrictions, and with highlighted code samples please look here