Publication | Closed Access
Software tools
271
Citations
0
References
1976
Year
Software MaintenanceEngineeringSoftware EngineeringSoftware AnalysisEnd-user DevelopmentTool BuildingAutomatic ProgrammingCottage IndustryDesignComputer ScienceSoftware VisualizationSoftware DesignProgram AnalysisSoftware TestingProgram ComprehensionProgramming MethodologyTechnologyPackaging ProgramsSystem Software
Progress in any field depends on building on others’ work, yet programming remains a cottage industry because developers often reinvent programs instead of reusing existing ones. This paper argues that packaging programs as standard tools, each performing a specialized task well and interfacing conveniently, can shift programmers’ focus from building new code to tool building and usage, and it discusses the programming environments that best support this shift. The authors illustrate this by studying specific examples of general‑purpose tools, showing how they can be packaged to become preferred over custom‑built solutions, and by outlining the characteristics of environments that foster tool development and use. The case studies demonstrate that when programs are packaged as tools, other programmers are more likely to adopt them rather than create their own versions.
Building on the work of others is the only way to make substantial progress in any field. Yet computer programming continues as a cottage industry because programmers insist on reinventing programs for each new application, instead of using what already exists. We must encourage a way of packaging programs so that they can be perceived as standard tools, each performing its specialized task sufficiently well and interfacing to other tools so conveniently that programmers seldom feel any need to make their own version from scratch.In this paper we show how programmers can view substantial parts of what they do as tool building and tool using. By studying some specific examples of general purpose tools, we show how programs can be packaged as tools, so other programmers will use them in preference to building their own. We also comment on the sort of programming environment which seems most hospitable to the development and use of tools.