xtbjh@levels.sait.edu.au (behoffski) (05/22/91)
My favourite quote, oft repeated, is: No work of art is ever finished: it is merely abandoned. Most of my friends (especially the non-technical ones) think that I'm crazy when I call programs (not just mine, anybody's) works of art. I think that separating "art" and "work" is an incorrect distinction to make -- they are facets of the same thing. I believe that engineering is mostly about reuse: being able to measure existing works and apply all or part of the existing effort to new works. This in turn leads to a need for tools to decompose works into valuable pieces, and for tools to recombine those pieces in new works. In software, the reusability of a software component is based entirely on two critical criteria: * how flexible, and suitable, the component's interfaces are, and * how effective is the underlying implementation. A language like C is popular because it provides many tools for implementing algorithms; only recently have the object-oriented languages pointed out that the interface for those algorithms is insufficient. I don't agree that continuing to bolt constructs on top of existing languages (as C++ does) is the correct approach. This is why I'm pushing for the addition of adjectives and adverbs to the interface primitives: these allow enormously greater scope for clear, concise and natural interfaces, yet allow much freedom in the choice of implementation. -- Brenton Hoff (behoffski) | Senior Software Engineer | My opinions are mine xtbjh@Levels.UniSA.edu.au | AWA Transponder | (and they're weird).