Xref: utzoo comp.object:3031 comp.software-eng:5241 Newsgroups: comp.object,comp.software-eng Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!wuarchive!m.cs.uiuc.edu!cs.uiuc.EDU!johnson From: johnson@cs.uiuc.EDU (Ralph Johnson) Subject: How to pay for reusable software Message-ID: <1991Apr3.231849.13410@m.cs.uiuc.edu> Sender: news@m.cs.uiuc.edu (News Database (admin-Mike Schwager)) Nntp-Posting-Host: m.cs.uiuc.edu Reply-To: johnson@cs.uiuc.EDU (Ralph Johnson) Organization: University of Illinois Date: Wed, 3 Apr 91 23:18:49 GMT Lines: 34 For the last few years I have been learning how to make software reusable. I have followed the object-oriented road using Smalltalk and C++. Software is not naturally reusable, and it is not easy to write reusable software. In fact, I have decided that the biggest problem with software reuse is that reusable software is so hard to make. Lots of people seem to be worried about problems like cataloging software components and how to retrieve a component from a library of million of components. I wish that were the problem! The real problem is that it is so hard to create reusable software. This leads to an interesting problem: how can we afford to pay the costs of developing reusable software? If a company is going to build several of something then it might be cheaper for it to first develop a system for producing systems of that kind. However, it will certainly not save money on the first system built. Some application domains, like graphical user interfaces, are popular enough that a company can build a set of reusable components and sell it and make lots of money. I don't think there are many of these application domains, and in any case most people seem to undervalue software and don't want to pay a fair price for it. Thus, it is only cost-effective to sell software if you can sell a lot of it, which rules out specialized application domains. The problem that I see is that there will be many areas where it would be valuable for us to develop standard libraries of software components, but there will be no economic incentives to do so. Does anybody have any ideas on how to solve this problem, whether it is a problem, or (better yet) references to papers that discuss it? Ralph Johnson -- University of Illinois at Urbana-Champaign johnson@cs.uiuc.edu