
While on vacation, browsing the web through a
monofilament
of network connection, I came across the
croquet project. (link via
Glenn Ehrlich)
There is an inspiring Appendix B to the
Croquet User Manual
titled
Is “Software Engineering” an Oxymoron?
written by Alan Kay. Here's the lead in:
Real Software Engineering is
still in the future. There is
nothing in current SE that is
like the construction of the
Empire State building in less
than a year by less than 3000
people: they used powerful
ideas and power tools that we
don’t yet have in software
development. If software does
“engineering” at all, it is too
often at the same level as the
ancient Egyptians before the
invention of the arch (literally
before the making of arches:
architecture), who made large
structures with hundreds of
thousands of slaves toiling for
decades to pile stone upon
stone: they used weak ideas and
weak tools, pretty much like
most software development
today.
The real question is whether there exists a practice in between the two—stronger than just
piling up messes—that can eventually lead us to real modern engineering processes for
software.
One of the ways to characterize the current dilemma is that every project we do, even
those with seemingly similar goals has a much larger learning curve than it should. This
is partly because we don’t yet know what we really need to know about software. But as
Butler Lampson has pointed out, this is also partly because Moore’s Law gives us a
qualitatively different environment with new and larger requirements every few years, so
that projects with similar goals are quite different.
And here's the Lisp reference:
Until real software
engineering is developed,
the next best practice is to
develop with a dynamic
system that has extreme late
binding in all aspects. The
first system to really do this
in an important way was
LISP, and many of its great
ideas were used in the
invention of Squeak’s
ancestor Smalltalk—the
first dynamic completely
object-oriented
development and operating
environment—in the early
70s at Xerox PARC.
Unfortunately the maintainers of
opencroquet.org
removed the download for the pre-release, but promised to issue a more current
0.02 release later this year.