Naked Objects
Total Page:16
File Type:pdf, Size:1020Kb
Naked objects A thesis submitted to the University of Dublin, Trinity College for the degree of Doctor of Philosophy Richard Pawson, Department of Computer Science, Trinity College, Dublin June 2004 1 Foreword by Trygve Reenskaug (Author’s note: Prof. Reenskaug was the external examiner for this thesis. One of the pioneers of object-oriented programming, he is best known as the inventor of the Model- View-Controller pattern. After the thesis was accepted, he generously agreed to write a foreword to the electronically-published version.) The world’s shipbuilding industry went through a heavy modernization program through the nineteen fifties and sixties. My colleague Kjell Kveim invented a control unit for the numerical control of machine tools such as flame cutters. The first unit was installed at the Stord shipyard in 1960 and opened the field for integrated computer aided design and manufacturing. The matching design system, Autokon, was first deployed at the Stord Yard in 1963. Autokon was subsequently adopted by most major shipyards around the world and was still in use by the late nineties. The purpose of Autokon was to empower the ship’s designers. It had a central database holding important information about the shape of the hull, the position of frames and decks, and the shapes of the parts. There was a language that permitted the designers to specify parts in shipbuilding terminology. There was a designer programming facility so that they could specify families of similar parts. Autokon was developed in close collaboration between shipbuilders and scientists. We considered ourselves as tool builders; the success criterion was that the tools should be handy, practicable, serviceable and useful. The success and longevity of Autokon was no doubt because it was human-centric, reflecting the nature of shipbuilding and the everyday life of the shipbuilder. In another part of the world, Douglas Engelbart worked for his vision of using computers to augment the human intellect. This quote is from 1962: By "augmenting human intellect" we mean increasing the capability of a man to approach a complex problem situation, to gain comprehension to suit his particular needs, and to derive solutions to problems. Increased capability in this respect is taken to mean a mixture of the following: more-rapid comprehension, better comprehension, the possibility of gaining a useful degree of comprehension in a situation that previously was too complex, speedier solutions, better solutions, and the possibility of finding solutions to problems that before seemed insoluble. (Douglas C. Engelbart: Augmenting Human Intellect: A Conceptual Framework. Stanford Research Institute, Menlo Park, Ca., October 1962) Much later, in the seventies, I worked with a system for the distributed planning and control of shipbuilding operations. The goal was to create a system that could be mastered by the users so that they could tailor it to suit their individual needs without compromising the goals of the enterprise as a whole. The key was that the users’ mental models should correspond to the models built into the computer. One result of this endeavour was the 2 Model-View-Controller architecture that I developed as a visiting scientist at Xerox PARC in 1978/79. Its purpose was to bridge the gap between the user’s mind and the computer- held data. The centre of this solution was the Model that was a representation of the user’s domain information. The View was an editor that enabled the user to inspect and modify this information. The Controller coordinated the capabilities of several Views making it a comprehensive tool that the user applied in the performance of specific tasks. The original MVC was later modified in Smalltalk-80 to become a technical solution that separated input, output and information. The most important participant in the original MVC architecture, the user’s mind, was somehow forgotten. The original version of MVC was never published. In my naïveté, I believed that everybody wanted to empower their users so that MVC was merely an obvious solution to a common problem. I was wrong. There are two traditions in the applications of computers; one is to employ the computer to empower its users, and the other is to apply the computer to control its users. I am sorry to say that the latter seems to be prevalent in mainstream computing today. I have been told that in many implementations of the "well known MVC paradigm", the "C" is implemented as a script controlling the user’s actions. I can only speculate why our industry fails to give users what the clearly need and want. There could be reasons related to organizational culture, or they could be related to certain software business models. A widespread myth is that current software is inherently complex; so complex that ordinary people cannot possibly understand it and that it is only reasonable to expect flaws. Consider a forest with birds singing in the trees and flowers covering its floor. We can easily walk along its paths or you can be adventurous and make your own paths. We can select any aspect of its complex ecosystem and study it for your doctoral thesis. There is unlimited complexity, yet any human can master it to suit his or her purposes. There is no reason why a computer system should be more complex than a forest. I believe that the current complexity is man-made, and that we can resolve it by changing our approach to software development. We merely need to get our priorities right and create the appropriate tools. If we decide to build systems for people, then we will get systems that can be mastered by people. In the quarter century since the inception of MVC, there has been little progress in empowering the users. This is where Pawson’s work comes as a fresh contribution in an otherwise drab market. If the original MVC had been published at the time, Naked Objects would now appear as an important extension and implementation of its ideas. As it is, the original MVC was not published at the time and Richard Pawson’s Naked Objects appear as an important and independent contribution. The Naked Objects method and software give two important contributions to the evolution of information system technology: - The first and foremost is that it augments the human mind in a way that conforms with Douglas Engelbart’s vision of 1962. In the seventies, Alan Kay and his group extended the augment idea with Smalltalk. Smalltalk was (and still is) a personal information environment entirely consisting of objects. The main idea was that the objects should be meaningful to the user and appear concrete by presenting themselves in an appropriate way on a screen or in a loudspeaker so that the user could observe them and manipulate them. Pawson brings this idea a significant step forward. Where 3 Smalltalk focuses on individual objects, Pawson concentrates on the domain model as a structure of interrelated, behaviourally complete objects. User and programmer work together to ensure that the manifest model in the computer faithfully models the user’s mental model of the domain. The first field study was a project with the DSFA. One of the premises was that “The DSFA is committed to moving away from conventional assembly-line approach to claims processing, where each person performs a small step in the process, towards a model where more of its officers can handle a complete claim and appropriately-trained officers might in future handle all benefits for one customer.” Naked Objects strongly support this augmentation goal. - The second important contribution is that Pawson lets the objects present themselves to the user in a standardized way. One advantage is that the user interface software can be generated automatically. Another is that the user gets into direct contact with the model since the objects are shown without being cluttered or camouflaged by fancy graphics. The result is systems that the users can feel at home in and master since they reflect the users’ professional knowledge directly without any unnecessary frills. Neither Pawson nor I believe that the current Naked Objects represent the end of the road. On the contrary, Naked Objects represent a new beginning pointing towards a novel generation of human-centred information systems. Oslo, June 2004 Trygve Reenskaug 4 Acknowledgements The author would like to thank the following for their help in connection with this thesis: The management team at the Department of Social and Family Affairs, for their willingness to be the first organisation to attempt to build a real business system using the naked objects approach, and for providing unlimited access to evaluate the results. The Java Services team at Safeway, again for their willingness to experiment with a new approach, and for providing invaluable feedback that resulted in refinements to the approach Robert Matthews, who as the developer of the Naked Objects framework, provided an opportunity to explore many detailed implications of the naked objects concept using a purpose-designed tool. Dan Haywood for undertaking all the programming associated with the CarServ case study. My thesis supervisor, Vincent Wade, and Simon Dobson for his additional input. My family for their encouragement and support throughout this project. 5 CHAPTER 1 INTRODUCTION................................................................................. 9 1.1 Motivation............................................................................................................... 9 1.2 Objectives.............................................................................................................