skip to main content
10.1145/3563835.3568733acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article
Open access

Relentless Repairability or Reckless Reuse: Whether or Not to Rebuild a Concern with Your Familiar Tools and Materials

Published: 01 December 2022 Publication History

Abstract

We must retain liveness and exploratory practices within the programming systems that make us feel most productive. However, the temptation to just reuse black boxes through limited interfaces is pervasive. We expect time savings and better performance at the cost of poor repairability. Fortunately, we also know about the benefits of having an open implementation constructed from familiar materials, integrated with familiar tools. Consequently, it is primarily a matter of “just building it” ... again? Piece of cake. What could possibly go wrong?

References

[1]
BJ Allen-Conn and Kimberly Rose. 2003. Powerful Ideas in the Classroom. Viewpoints Research Institute, Inc. isbn:978-0-9743131-0-8
[2]
Kent Beck and Cynthia Andres. 2004. Extreme Programming Explained: Embrace Change (Second Edition). Addison-Wesley. isbn:978-0-321-27865-4
[3]
Grady Booch, Robert A. Maksimchuk, Michael W. Engle, Bobbi J. Young, Jim Conallen, and Kelli A. Houston. 2007. Object-oriented Analysis and Design with Applications (Third Edition). Addison-Wesley. isbn:978-0-201-89551-3
[4]
Reinhard Budde and Heinz Züllighoven. 1992. Software Tools in a Programming Workshop. In Software Development and Reality Construction. Springer, 252–268. isbn:3-642-76819-9 https://doi.org/10.1007/978-3-642-76817-0_20
[5]
William R. Cook. 1992. Interfaces and Specifications for the Smalltalk-80 Collection Classes. In Conference Proceedings on Object-oriented Programming Systems, Languages, and Applications. ACM, 1–15. https://doi.org/10.1145/141936.141938
[6]
Mihaly Csikszentmihalyi. 2008. Flow: The Psychology of Optimal Experience. Harper Perennial Modern Classics. isbn:978-0-06-133920-2
[7]
Richard P. Gabriel. 2012. The Structure of a Programming Language Revolution. In Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software. 195–214. https://doi.org/10.1145/2384592.2384611
[8]
Richard P. Gabriel. 2014. I Throw Itching Powder at Tulips. In Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software. ACM, 301–319. https://doi.org/10.1145/2661136.2661155
[9]
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. 1995. Design Patterns: Abstraction of Reusable Object-oriented Software. Addison-Wesley. isbn:978-0-201-63361-0
[10]
Adele Goldberg and David Robson. 1983. Smalltalk-80: The Language and its Implementation. Addison-Wesley. isbn:978-0-201-11371-6
[11]
Edwin L. Hutchins, James D. Hollan, and Donald A. Norman. 1985. Direct Manipulation Interfaces. Human-Computer Interaction, 1, 4 (1985), 12, 311–338. issn:1532-7051 https://doi.org/10.1207/s15327051hci0104_2
[12]
Takashi Iba and Taichi Isaku. 2016. A Pattern Language for Creating Pattern Languages: 364 Patterns for Pattern Mining, Writing, and Symbolizing. In Proceedings of the 23rd Conference on Pattern Languages of Programs. 1–63. https://doi.org/10.5555/3158161.3158175
[13]
Daniel H. H. Ingalls, Tim Felgentreff, Robert Hirschfeld, Robert Krahn, Jens Lincke, Marko Röder, Antero Taivalsaari, and Tommi Mikkonen. 2016. A World of Active Objects for Work and Play: The First Ten Years of Lively. In Proceedings of the 2016 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software. 238–249. https://doi.org/10.1145/2986012.2986029
[14]
Daniel H. H. Ingalls, Ted Kaehler, John H. Maloney, Scott Wallace, and Alan C. Kay. 1997. Back to the Future: The Story of Squeak, a Practical Smalltalk Written in Itself. In Proceedings of the 12th ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications. ACM, 318–326. https://doi.org/10.1145/263700.263754
[15]
Gregor Kiczales. 1996. Beyond the Black Box: Open Implementation. IEEE software, 13, 1 (1996), 8–11. https://doi.org/10.1109/52.476280
[16]
Shriram Krishnamurthi, Matthias Felleisen, and Daniel P. Friedman. 1998. Synthesizing Object-oriented and Functional Design to Promote Re-use. In European Conference on Object-Oriented Programming. 91–113. https://doi.org/10.1007/BFb0054088
[17]
Jens Lincke, Patrick Rein, Stefan Ramson, Robert Hirschfeld, Marcel Taeumel, and Tim Felgentreff. 2017. Designing a Live Development Experience for Web-Components. In Proceedings of the Programming Experience 2017.2 (PX/17.2) Workshop. ACM, 28–35. https://doi.org/10.1145/3167109
[18]
John H. Maloney. 2002. An Introduction to Morphic: The Squeak User Interface Framework. Prentice Hall, 39–67. isbn:978-0-13-028091-6
[19]
John H. Maloney and Randall B. Smith. 1995. Directness and Liveness in the Morphic User Interface Construction Environment. In Proceedings of the 8th Annual ACM Symposium on User Interface and Software Technology. ACM, 21–28. https://doi.org/10.1145/215585.215636
[20]
Eliot Miranda, Clément Béra, Elisa Gonzalez Boix, and Daniel H. H. Ingalls. 2018. Two Decades of Smalltalk VM Development: Live VM Development Through Simulation Tools. In Proceedings of the 10th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages. ACM, 57–66. https://doi.org/10.1145/3281287.3281295
[21]
Peter Naur. 1985. Programming as Theory Building. Microprocessing and Microprogramming, 15, 5 (1985), 5, 253–261. issn:0165-6074 https://doi.org/10.1016/0165-6074(85)90032-8
[22]
Peter Naur. 1992. Computing: A Human Activity. ACM Press. isbn:978-0-201-58069-3
[23]
Tobias Pape, Tim Felgentreff, Fabio Niephaus, and Robert Hirschfeld. 2019. Let Them Fail: Towards VM Built-in Behavior That Falls Back to the Program. In Proceedings of the Conference Companion of the 3rd International Conference on Art, Science, and Engineering of Programming. ACM, 1–7. https://doi.org/10.1145/3328433.3338056
[24]
Jef Raskin. 2000. The Humane Interface: New Directions for Designing Interactive Systems. Addison-Wesley. isbn:978-0-201-37937-2
[25]
Eric S. Raymond. 2004. The Art of UNIX Programming. Addison-Wesley. isbn:978-0-13-142901-7
[26]
Patrick Rein, Stefan Lehmann, Toni Mattis, and Robert Hirschfeld. 2016. How Live are Live Programming Systems?: Benchmarking the Response Times of Live Programming Environments. In Proceedings of the Programming Experience 2016 (PX/16) Workshop. ACM, 1–8. https://doi.org/10.1145/2984380.2984381
[27]
Patrick Rein, Stefan Ramson, Jens Lincke, Robert Hirschfeld, and Tobias Pape. 2018. Exploratory and Live, Programming and Coding. The Art, Science, and Engineering of Programming, 3, 1 (2018), 1:1–1:33. https://doi.org/10.22152/programming-journal.org/2019/3/1
[28]
Dirk Riehle and Heinz Züllighoven. 1995. A Pattern Language for Tool Construction and Integration based on the Tools and Materials Metaphor. In Pattern Languages of Program Design, James O. Coplien and Douglas Schmidt (Eds.). Addison-Wesley, 9–42. isbn:978-0-201-60734-5
[29]
David W. Sandberg. 1988. Smalltalk and Exploratory Programming. ACM SIGPLAN Notices, 23, 10 (1988), 10, 85–92. issn:1558-1160 https://doi.org/10.1145/51607.51614
[30]
Beau Sheil. 1998. Datamation®: Power Tools for Programmers. Morgan Kaufmann, Inc., 573–580. isbn:978-0-934613-12-5 https://doi.org/10.1016/B978-0-934613-12-5.50048-3
[31]
Randall B. Smith. 1987. Experiences with the Alternate Reality Kit: An Example of the Tension between Literalism and Magic. IEEE Computer Graphics and Applications, 7, 9 (1987), 9, 42–50. issn:0272-1716 https://doi.org/10.1109/MCG.1987.277078
[32]
Sebastian Spaeth, Matthias Stuermer, Stefan Haefliger, and Georg von Krogh. 2007. Sampling in Open Source Software Development: The Case for Using the Debian GNU/Linux Distribution. In 2007 40th Annual Hawaii International Conference on System Sciences (HICSS’07). 166a–166a. https://doi.org/10.1109/HICSS.2007.471
[33]
Marcel Taeumel. 2020. Data-driven Tool Construction in Exploratory Programming Environments. Ph. D. Dissertation. University of Potsdam, Digital Engineering Faculty, Hasso Plattner Institute. https://doi.org/10.25932/publishup-44428
[34]
Marcel Taeumel and Robert Hirschfeld. 2016. Evolving User Interfaces From Within Self-supporting Programming Environments: Exploring the Project Concept of Squeak/Smalltalk to Bootstrap UIs. In Proceedings of the Programming Experience 2016 (PX/16) Workshop. ACM, 43–59. https://doi.org/10.1145/2984380.2984386
[35]
Marcel Taeumel, Jens Lincke, Patrick Rein, and Robert Hirschfeld. 2022. A Pattern Language of an Exploratory Programming Workspace. In Design Thinking Research: Achieving Real Innovation. Springer, 111–145. https://doi.org/10.1007/978-3-031-09297-8_7
[36]
Marcel Taeumel, Patrick Rein, and Robert Hirschfeld. 2021. Toward Patterns of Exploratory Programming Practice. In Design Thinking Research: Translation, Prototyping, and Measurement. Springer, 127–150. https://doi.org/10.1007/978-3-030-76324-4_7
[37]
Steven L. Tanimoto. 2013. A Perspective on the Evolution of Live Programming. In 2013 1st International Workshop on Live Programming (LIVE). IEEE, 31–34. https://doi.org/10.1109/LIVE.2013.6617346
[38]
Jason Trenouth. 1991. A Survey of Exploratory Software Development. Comput. J., 34, 2 (1991), 1, 153–163. issn:1460-2067 https://doi.org/10.1093/comjnl/34.2.153

Cited By

View all
  • (2024)Redressing the Balance: A Yin-Yang Perspective on Information TechnologyProceedings of the 2024 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3689492.3689808(194-204)Online publication date: 17-Oct-2024
  • (2024)Multi-threaded OpenSmalltalk VM: Choosing a Strategy for ParallelizationCompanion Proceedings of the 8th International Conference on the Art, Science, and Engineering of Programming10.1145/3660829.3660846(87-93)Online publication date: 11-Mar-2024
  • (2024)Unanticipated Progress Indication: Continuous Responsiveness for Courageous ExplorationCompanion Proceedings of the 8th International Conference on the Art, Science, and Engineering of Programming10.1145/3660829.3660843(80-86)Online publication date: 11-Mar-2024

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
Onward! 2022: Proceedings of the 2022 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software
November 2022
269 pages
ISBN:9781450399098
DOI:10.1145/3563835
This work is licensed under a Creative Commons Attribution 4.0 International License.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 December 2022

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Smalltalk
  2. Squeak
  3. code simulation
  4. direct manipulation
  5. exploratory programming
  6. flow
  7. liveness
  8. open source
  9. reuse
  10. self-sustaining systems
  11. symbolic debugging

Qualifiers

  • Research-article

Conference

Onward! '22
Sponsor:

Acceptance Rates

Overall Acceptance Rate 40 of 105 submissions, 38%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)105
  • Downloads (Last 6 weeks)18
Reflects downloads up to 25 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Redressing the Balance: A Yin-Yang Perspective on Information TechnologyProceedings of the 2024 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3689492.3689808(194-204)Online publication date: 17-Oct-2024
  • (2024)Multi-threaded OpenSmalltalk VM: Choosing a Strategy for ParallelizationCompanion Proceedings of the 8th International Conference on the Art, Science, and Engineering of Programming10.1145/3660829.3660846(87-93)Online publication date: 11-Mar-2024
  • (2024)Unanticipated Progress Indication: Continuous Responsiveness for Courageous ExplorationCompanion Proceedings of the 8th International Conference on the Art, Science, and Engineering of Programming10.1145/3660829.3660843(80-86)Online publication date: 11-Mar-2024

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media