yahoo!
nerds
wired
sci am
news
words
market
private
If
there's hope for humanity it's in software |
Copyright (c) Max K. Goff 1998-2001
all rights reserved
Software Teleology
The Purpose of Code
27 June 2001, 17:50 PDT
"The `noosphere' ... is the territory of ideas, the space of all possible
thoughts. What we see implied in hacker ownership customs is a Lockean theory
of property rights in one subset of the noosphere, the space of all programs.
Hence `homesteading the noosphere' ... is what every founder of a new
open-source project does." - Eric S. Raymond, Homesteading the Noosphere
"... autonomous agents forever push their way into novelty - molecular,
morphological, behavioral, organizational. I will formalize this push into
novelty as the mathematical concept of an 'adjacent possible,' persistently
explored in a universe that can never, in the vastly many lifetimes of the
universe, have made all possible protein sequences even once, bacterial
species even once, or legal systems even once."
- Stuart Kaufman, Investigations
Introduction
With technologies from Sun Microsystems such as SunONE, J2EE, Project Jxta,
and Jini Network Technology all weighing in for the "XML-Smart-Web Services
World Championship Battle,"
all vying for world domination with that denizon of the dark side, .NET,
some confusion may loom for endearing Java devotees so favored with such an
abundance of choice. To assist in the process of determining appropriate
platform and framework for an arbitrary software development project involving
the Internet, this articles introduces the
concept of "Software Teleology" as an approach for analyzing software projects
and the teleological vectors which are an inherent part of software. Examples
of teleological vectors for known software development efforts are also given.
Q: What do end-to-end solutions, platform convergence, peer
to peer networks, application servers and evolution all have in common?
A: "The strange thing about evolution is everyone thinks they understand
it."
At least according to one of the Huxley's, as reported by Stuart Kaufman in his
recent work, Investigations
, which, along with the musing of Eric Raymonds, will serve as both
reference and inspiration.
Perhaps it was Thomas, or Julian, or maybe even Aldus, who may have been
referring to all the other famous Huxley's at the time. But the point made by
that particular Huxley of evolution is equally true of the related topics in
the original question. All the terms seem to be reasonably clear. But as
with "evolution," sometimes terms can be confusing. As such, things that are
quite the opposite in nature sometimes mask attributes using only such
terms...thus leading to the confusion. In the end, self examination is the
only path to true enlightenment when it comes to software teleology.
"Teleology" too is a squishy word. In philosophy it means the recognition
and study of design or purpose in natural phenomena. The implication is
one of ultimate purpose and the notion of a final end -- which, if seen
as an aspect of software design, and if measured and expressed in familiar
business terms, offers opportunities for both understanding and profit.
Software Teleology then is the study of the purpose
that software serves in the larger
milieu. Let us specify then that the discussion of software teleology begins
with the recognition of purpose, and is cognizant of vector and landscape.
Why code? What is the purpose of the code? How can we identify a reasonable
approach to software development for any project without the contextually
grounding expression of software teleology, or ulitmate purpose? As such,
identifying homesteads and highways in the noosphere and their associated
business taxonomy might be useful going forward, if software has a purpose to
serve. But so too does articulation of direction. There are forces at work,
a double helix of scientific-technical cum economic scalars that apply
considerable pressure to "fitness landscape" (from Kaufman), shaping the
very selection criteria the landscape must apply to actors in the space,
both software and software developer.
No theory of final ends is necessary to justify the analysis of "purpose"
in software, Omega Point Theory notwithstanding. The simple economic
assumption of a need for increasing productivity over time provides
ample requirement for a solid anchoring in a landscape of purpose.
By overlaying the forces that define that landscape we can
envision a model that provides insight into direction or purpose
of both software being developed as well as platform or framework
being considered for adoption. Thus, designing and writing
software "on purpose" is something that can be embraced from a
methodological perspective as well as that of a strategic business imperative.
page 2
|