johnson@p.cs.uiuc.edu (11/26/89)
Stephen Bellatoni says >For, the only reasons to have the source are (1) to look at >it and (2) to change it. >In case (2) you are not re-using code, you are modifying it. If this is >neccessary for making the best use of object oriented code, then OO has >failed in its goal of making code re-usable: it merely makes it easier >to re-use by encouraging a more structured (i.e. easier to modify) style. I've heard this argument from a whole bunch of people this year, some of them quite famous. Frankly, I'm getting sick of it. It is totally bogus. There is nothing magical that separates the case where you have to change 10 lines out of a million from the case where you don't have to change any. Reuse is not black and white, and as long as a system lets us save time and effort and increase quality, we are winners. Reuse is not an end in itself, but a means to better productivity and higher quality. It's not the number of lines you write that counts, but the quality and cost of the end product. I am perfectly happy designing reusable softare that requires a little rewriting most of the time. Naturally, I prefer to design systems that don't require any rewriting at all, but reusable software is very hard to write and usually is the result of a long period of evolution. As your software gets more an more mature, you will need to rewrite less and less of it to reuse it. Whether the amount you need to rewrite ever reaches zero is not really that important. Ralph Johnson -- University of Illinois at Urbana-Champaign