Data, context and interaction: Difference between revisions

Content deleted Content added
Line 79:
DCI arose largely as an outgrowth of Trygve Reenskaug's work on role-based modeling.<ref>Trygve Reenskaug. Working with Objects: The OOram Software Engineering Method. Prentice-Hall, 1995.</ref> Trygve had long recognized that Roles played a central part in the way programmers think about objects, and that the class-based progression of programming language technology took away much of the motivation to think about the objects in a program. That in turn made it difficult to reason about the program at run time. Further, the fact that object-oriented programming languages offered only classes to express program logic left the programmer at the mercy of the structural layout of the data to delineate behavior, which is unnatural compared with a delineating behavior on Role boundaries. This in turn made program behavior more difficult to reason about than in, say, a procedural program in [[Fortran]].{{citation needed|date=February 2016}}
 
Trygve felt it was important to create program structures about which one can reason, and started socializing these ideas as early as 2000. By 2006 he had a working design model, and his discovery in 2008 of Schärli's work on [[Traits (computer science)|Traits]] provided the keystone that would provide natural programming language expression of these ideas. He prototyped the ideas in the Baby programming environment, written in Squeak. Jim Coplien joined Trygve on this effort in about 2007 and by mid-2008 had a prototype running in [[C++]]. Steen Lehmann, Rickard Öberg and Niclas Hedhman accelerated adaptating these ideas to [[Ruby (programming language)|Ruby]] and [[Java (programming language)|Java]] over the next year or so with the Qi4j framework.<ref name="Qi4j" /> Many additional language adaptations followed a session at the JaOO conference in Denmark in September 2008. In 2010 the language Marvin was created by Rune Lund-Søltoft. It was the first language build with native support for DCI. Marvin was mainly meant as a proof of concept to show the case the idea of "injection less DCI". Most of the previous implementations altered the role player objects in a way that would be visible outside of the context. James Coplien created the trygve, the first language build from the ground up to support DCI..
 
Many key advances in the past twenty years of object-orientation exhibit components of DCI. While no one of them fully provides the DCI computational model, the overlap suggests{{according to whom|date=February 2016}} that the problems addressed by DCI are longstanding and fundamental.