Click This!
Welcome Welcome to the Network Age Sun SETI
  diary
  essays
  links
  radio
  read
  theory
  thespis
  bio
  refs
  email
 
  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
Google
Search WWW Search www.maxgoff.com 
Free Counter
[yahoo!] [slashdot] [wired] [sci am] [words]