amanda@visix.com (Amanda Walker) (04/20/91)
In the interests of contributing some discussion that's actually relevant to this group :), I thought I'd step back and tie together a couple of the things I've been talking about recently. I'd also like to give some additional perspective about my views, in order to spark some discussion, and also just in case anyone has drawn odd conclusions from my recent postings. I think that software is a very young field. For that matter, I think that computers in general are still very young, notwithstanding the megatons of COBOL code out there. As a corollary to this, I also feel that no one knows enough about either software or computers in general to make broad claims about them. Part of the reason I've been arguing with Jim et al. about software engineering, and C, and so on is that I think that any sweeping claim, whether it's "building software is an engineering discipline" or "Ada programmers are better than C programmers", is unreasonable at this point. For example, I object to the idea that building software is *automatically* an engineering discipline; having been an artist and a musician, I find strong analogies to those activities when I'm building software, and I think these aspects are important. On the other hand, I'm certainly not trying to claim that software engineering *shouldn't* exist, just that programming as it is currently practiced isn't it. On of the prime benefits of object oriented design and programming, as I see it, is that it makes programming more like traditional engineering, and thus makes proven engineering techniques applicable to the construction of software. If you have self-contained objects with predictable behavior and interactions with other objects, you can use the same techniques (or analogous ones) as you would with collections of phsyical objects. This is a useful thing: I, for one, do not think that linear 80-column ASCII text is the most natural way to present a piece of software to a human being, much less a computer :), and I think that OO approaches are an important first step away. The fact that there are so many alternative ideas at the moment (Smalltalk, Ada, CLOS, C++, Eiffel, Self, etc.) is not a bug, it's a feature. We don't know how to build these things yet, so we're trying out different ideas to see which ones work best. You need empirical data before you start building the science upon which engineering is founded... -- Amanda Walker amanda@visix.com Visix Software Inc. ...!uunet!visix!amanda -- We find ourselves confronted by insurmountable opportunities.