skip to main content
10.1145/1167473.1167510acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

Conscientious software

Published:16 October 2006Publication History

ABSTRACT

Software needs to grow up and become responsible for itself and its own future by participating in its own installation and customization, maintaining its own health, and adapting itself to new circumstances, new users, and new uses. To create such software will require us to change some of our underlying assumptions about how we write programs. A promising approach seems to be to separate software that does the work (allopoietic)from software that keeps the system alive (autopoietic).

References

  1. Alon, U., Surette, M. G., Barkai, N., Leibler, S., "Robustness in Bacterial Chemotaxis," Nature, Vol. 397, pp. 168--171, January 14, 1999.Google ScholarGoogle ScholarCross RefCross Ref
  2. Babbage, C., "On the Mathematical Powers of the Calculating Engine," in The Origins of Digital Computers: Selected Papers (3rd ed.), Brian Randell (Ed.), Heidelberg, Springer-Verlag, 1982.Google ScholarGoogle Scholar
  3. Brand, S., How Buildings Learn: What Happens After They're Built, Penguin, 1994.Google ScholarGoogle Scholar
  4. Camazine, S., Deneubourg, J., Franks, N., Sneyd, J., Theraula, G., Bonabeau, E., Self-Organization in Biological Systems (Princeton Studies in Complexity), Princeton University Press, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Candea, G., Brown, A., Fox, A., Patterson, D., "Recovery Oriented Computing: Building Multi-Tier Dependability," IEEE Computer, Vol. 37, No. 11, November 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Candea, G., Fox, A., "Recursive Restartability: Turning the Reboot Sledgehammer into a Scalpel," Proceedings of the 8th Workshop on Hot Topics in Operating Systems (HotOSVIII), Schloss Elmau, Germany, May 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Dvorak, D., "Challenging Encapsulation in the Design of High-Risk Control Systems," Proceedings of Onward! at OOPSLA 2002, November 2002.Google ScholarGoogle Scholar
  8. Elton, C., "The Remains of Hesiod translated from the Greek into English Verse," in The Works of Hesiod, Callimachus, and Theognis, London, G. Bell, 1879.Google ScholarGoogle Scholar
  9. Gardner, M., "The Fantastic Combinations of John Conway's New Solitaire Game 'Life'," Mathematical Games, Scientific American, 223, pp. 120--123, October 1970, http://ddi.cs.uni-potsdam.de/HyFISCH/Produzieren/lis_projekt/proj_gamelife/ConwayScientificAmerican.htm.Google ScholarGoogle ScholarCross RefCross Ref
  10. George, S., Evans, D., Marchette, S., "A Biological Programming Model for Self-Healing," First ACM Workshop on Survivable and Self-Regenerative Systems, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Glass, R., "Practical Programmer: Sorting Out Software Complexity," Communications of the ACM, Vol. 45, No. 11, pp 19--21, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Goldberg, A., Robson, D., Smalltalk-80: The Language and Its Implementation, Addison-Wesley, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Grassé, P., "La Reconstruction du nid et les Coordinations Inter-Individuelles chez Bellicositermes Natalensis et Cubitermes sp. La theorie de la Stigmergie: Essai d'interpretation du Comportement des Termites Constructeurs," Insectes Sociaux, 6:41--81, 1959.Google ScholarGoogle ScholarCross RefCross Ref
  14. Hovemeyer, D., Pugh, W., "Finding Bugs is Easy," SIGPLAN Notices (Proceedings of Onward! at OOPSLA 2004), December 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Kant, I., The Critique of Judgment, 1790; Prometheus Books, 2000.Google ScholarGoogle Scholar
  16. Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J., Irwin, J., "Aspect-Oriented Programming," 11th European Conference on Object-Oriented Programming, LNCS 1241, pp. 220--242, 1997.Google ScholarGoogle Scholar
  17. Knight, J., Leveson, N., "An Experimental Evaluation of the Assumption of Independence in Multi-Version Programming," IEEE Transactions on Software Engineering, Vol. SE-12, No. 1, pp. 96--109, January 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Knight, T., Sussman, G., "Cellular Gate Technology," Proceedings of UMC98, First International Conference on Unconventional Models of Computation, Auckland, NZ, January 1998.Google ScholarGoogle Scholar
  19. Krakauer, D., "Robustness in Biological Systems: A Provisional Taxonomy," Santa Fe Institute Working Paper #03-02-008, 2003.Google ScholarGoogle Scholar
  20. Lanier, J., "Why Gordian Software has Convinced Me to Believe in the Reality of Cats and Apples," in Edge 128, November 20, 2003, http://www.edge.org/documents/archive/edge128.html.Google ScholarGoogle Scholar
  21. Maturana, H., "Autopoiesis," in Autopoiesis: A Theory of Living Organization, Milan Zeleny (ed.), pp. 21--30, New York, North Holland, 1981.Google ScholarGoogle Scholar
  22. Maturana, H., Varela, F., "Autopoiesis: The Organization of the Living," in Autopoiesis and Cognition: The Realization of the Living, (1980), pp. 59--138, 1973.Google ScholarGoogle Scholar
  23. McCarthy, J., Abrahams, P., Edwards, D., Hart, T., Levin, M., LISP 1.5 Programmer's Manual, MIT Press, Cambridge, Massachusetts, 1962. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. McCarthy, J., "History of Programming Languages," The First ACM SIGPLAN Conference on the History of Programming Languages, pp. 217--223, Los Angeles, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Minsky, M., "Why Programming Is a Good Medium for Expressing Poorly-Understood and Sloppily Formulated Ideas," a slight revision of a chapter in Design and Planning II-Computers in Design and Communication, Martin Krampen and Peter Seitz (Eds.), Visual Committee Books, Hastings House Publishers, New York, 1967, http://rafael_es_son.typepad.com/ metainformaciones/files/minsky_essay_1967.pdf.Google ScholarGoogle Scholar
  26. Nardi, B., A Small Matter of Programming: Perspectives on End User Computing, MIT Press, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Patterson, D., Brown, A., Broadwell, P., Candea, G., Chen, M., Cutler, J., Enriquez, P., Fox, A., Kiciman, E., Merzbacher, M., Oppenheimer, D., Sastry, N., Tetzlaff, W., Traupman, J., Treuhaft, N., "Recovery-Oriented Computing (ROC): Motivation, Definition, Techniques, and Case Studies," UC Berkeley Computer Science Technical Report UCB CSD-02-1175, March 15, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. A good summary of the Pentium math bug by Ivars Peterson can be found at http://www.maa.org/mathland/mathland_5_12.html.Google ScholarGoogle Scholar
  29. Prigogine, I., Stengers, I., Order Out of Chaos: Man's Dialogue with Nature, Bantam Books, New York, 1984.Google ScholarGoogle Scholar
  30. Randell, D., "Facing Up to Faults," Department of Computing Science, University of Newcastle upon Tyne, January 2000.Google ScholarGoogle Scholar
  31. Rinard, M., "Automatic Detection and Repair of Errors in Data Structures," Companion to the 18th Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications, Anaheim, CA, pp. 221--239, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Rinard, M., Cadar, C., Nguyen, H., "Exploring the Acceptability Envelope," Companion to the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, San Diego, California, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. des Riviéres J., Smith, B., "The Implementation of Procedurally Reflective Languages," Proceedings of the ACM Symposium on LISP and Functional Programming, 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Smith, B., On the Origin of Objects, A Bradford Book, The MIT Press, Cambridge, 1996.Google ScholarGoogle Scholar
  35. The Software Engineering Institute (SEI), "The Software Challenge of the Future: Ultra-Large-Scale Systems," June 2006, http://www.sei.cmu.edu/uls/.Google ScholarGoogle Scholar
  36. Steele Jr, G., Gabriel, R., "The Evolution of Lisp," ACM Conference on the History of Programming Languages, II, published in ACM SIGPLAN Notices, Vol. 28, No. 3, March 1993, http://dreamsongs.com/NewFiles/HOPL2-Uncut.pdf. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Ungar, D., Smith, R., "Self: The Power of Simplicity," Proceedings of the ACM Conference on Object-Oriented Programming, Systems, Languages and Applications, Orlando, Florida, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Weiss, R., Knight, T., Sussman, G., "Genetic Process Engineering," in Cellular Computing, Martyn Amos (Ed.), pp. 43--73, Oxford University Press, 2004.Google ScholarGoogle Scholar
  39. Weiss, R., Knight, T., Sussman, G., "Cellular Computation and Communication Using Engineered Genetic Regulatory Networks," in Cellular Computing, Martyn Amos (Ed.), pp. 120--147, Oxford University Press, 2004.Google ScholarGoogle Scholar
  40. Weizenbaum, J., Computer Power and Human Reason: From Judgement to Calculation, W.H. Freeman & Company, 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Conscientious software

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!