[comp.object] Stepping back a bit

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.