Personal programming and the object computer

Software & Systems Modeling - Tập 19 Số 4 - Trang 787-824 - 2020
Trygve Reenskaug1
1Department of Informatics, Universitetet i Oslo, Morgedalsvn. 5, 0378, Oslo, Norway

Tóm tắt

AbstractMy objective is to create an intuitive computer for laypeople who want to go beyond ready-made apps and create programs to control their electronic environment. I submit Loke, a new kind of computer that is a universe of objects and nothing but objects. I call it an object computer. Loke is implemented in Squeak, a variant of Smalltalk, and is an extensible, conceptual model for execution, inspection, and exploration. It was first used to demonstrate how Ellen, a novice, programs a smart alarm clock through a GUI adapted to her competence, needs, and preferences. Informal demonstrations indicated that laypeople immediately grasp the idea of communicating objects that represent real things in their environment. They also wanted to use it for their own purposes. They were creative in identifying personal opportunities for Loke and in sketching out their implementations. Interestingly, expert programmers who attended the demonstration did not see the point of Loke. I have completed the programming of Loke qua conceptual model. The model underpins its potential security and privacy and sustains its object and message models. The Loke qua programming environment is still in its infancy, and its inherent security and privacy properties are still not realized in practice. A future Loke device will be accessible from anywhere and embedded in its own hardware to achieve them. The Loke IDE rests on Data–Context–Interaction (DCI), a new programming paradigm that leads to readable code with a clear architecture. I submit Loke for the pleasure of personal programming.

Từ khóa


Tài liệu tham khảo

Bluemke, I., Stepien, A.: Experiences with DCI Pattern. Springer, Berlin, pp. 87–96 (2015). https://doi.org/10.1007/978-3-319-18473-9_9

Coplien, J.O.: Lean Architecture for Agile Software Development. Wiley, Chisester (2010)

Dahl, O.-J., Nygaard, K.: Simula 67. Common Base Definition. Norwegian Computing Center, Oslo (1967)

Dijkstra, E.: The Humble Programmer (Turing Award Lecture). Communications of the ACM, October, pp. 859–866 (1972)

Dijkstra, E.W.: I: J. Buxton & B. Randell, red. Report on a conference sponsored by the NATO Science Committee, Rome, Italy. Rome, Italy: NATO Science Committee, p. 16 (1969)

Emery, F., Thorsrud, E.: Democracy at Work: The Report of the Norwegian Industrial Democracy Program (International Series on the Quality of Working Life). s.l.:s.n (1976)

Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1994). ISBN 0-201-63361-2

Goldberg, A., Robson, D.: Smalltalk-80, The Language and Its Implementation. Addison-Wesley, Reading (1983). ISBN-13: 978-0201136883; ISBN-10: 0201136880

Hameed, S., Kahn, F.I., Hameed, B.: Understanding security requirements and challenges in internet of things (IoT): a review. J. Comput. Netw. Commun. 2019, 9629381 (2019). https://doi.org/10.1155/2019/9629381

Hoare, C.: The Emperor’s Old Clothes. Communications of the ACM, February, pp. 859–866 (1981)

Kay, A.: A Personal Computer for Children of All Ages. ACM Digital Library, Boston (1972)

Kay, A.: A Personal computer for children of all ages. In: ACM ‘72 Proceedings of the ACM Annual Conference—Volume 1, 1 August, p. Article No 1 (1972)

Kay, A.: The early history of smalltalk. In: ACM SIGPLAN Notices archive, March, pp. 69–95 (1993)

Reenskaug, T.: Administrative control in the shipyard. Tokyo, Japan, ICCAS conferences. Also at http://folk.uio.no/trygver/1973/iccas/1973-08-ICCAS.pdf (1973)

Reenskaug, T.: Prokon/plan—a modelling tool for project planning and control. IFIP Congress, pp. 717–721 (1977)

Reenskaug, T.: Working With Objects: The OORAM Software Engineering Method. Manning, Greenwich (1996)

Reenskaug, T.: Expert’ voice: the BabyUML discipline of programming. Softw. Syst. Model. 5(1), 3–12 (2006)

Reenskaug, T.: Expert Commentary: The Case for Readable Code. I: Computer Software Engineering Research, pp. 3–8. Nova Science Publishers, New York (2007)

Valdecantos, H.A.: An empirical study on code comprehension: DCI Compared to OO. Thesis, Rochester Institute of Technology (2016). https://scholarworks.rit.edu/theses/9245

Wirfs-Brock, R., McKean, A.: Object Design: Roles, Responsibilities, and Collaborations. Addison-Wesley, Boston (2003)