comp.lang.ada
 help / color / mirror / Atom feed
From: "Marc A. Criley" <mcNOSPAM@mckae.com>
Subject: Artistically creative expression has no role in software design
Date: Mon, 19 Jul 2004 13:46:58 -0500
Date: 2004-07-19T13:46:58-05:00	[thread overview]
Message-ID: <2m2j9gFhf4cpU1@uni-berlin.de> (raw)

(Okay, now that I have your attention... :-)

In spectating the "SCO vs Linux" lawsuit (www.groklaw.net), a lot of
documents of various types get posted. One of the recent references was a
paper titled, "The case against Copyright Protection of Non-literal Elements
of Computer Software" http://tinyurl.com/3tjqj, by Christopher Heer of the
University of Toronto.

The paper analyzes something called the "Abstration-Filtration-Comparison
test (AFC test), which is a court created means for attempting to determine
copyright infringement of software where no _literal_ copying was involved,
or perhaps was obscured.

One of the interesting conclusions of this paper is this:

"Since the design of computer software is forever driven by its intended
functionality and efficiency concerns, the room for artistically creative
expression never arises. [...] It is more appropriate to consider the
software objects of a computer program as analogous to the gears, pulleys,
and levers of a mechanical invention, as by its very nature, the design of
computer software is intended to optimize functionality by making a program
run faster, use less memory, or be easier for the programmer to modify."

Since programming in Ada has been sneered at as requiring that a programmer
"lose their programming freedom" and likened to "programming in a
straitjacket", this article argues that those are in fact proper
characteristics in the development of correctly functioning, optimized
software!

Software is pure function, there are inputs (data and time),
transformations, and then outputs; although the software's design and
implementation may be formulated in a specific way that promotes one or more
of Heer's three functionality optimization axes . Arguably then, for the
first two axes, more speed and less memory, there should be an optimal
design and an optimal implementation.

Add in the overriding requirement that the software must be _correct_, and
Ada shines--its definition supports establishing and verifying programming
correctness--and subsets with supporting tools like SPARK (www.sparkada.com)
even take that a serious step further.

Ada's case for the third axis of optimization, "easier for the programmer to
modify" (which is subjective), can be strongly made as well. With its design
goal of readability, fully object-oriented capabilities, and the strong
typing that makes it easier to modify software _correctly_, again Ada
shines.

After you get past the knee-jerk reaction to Heer's conclusion (which I'll
admit to), sit back and really think about software, its function, and how
to achieve _correctness_ and _efficiency_ in design and programming.
Software development starts to become less about creative expression, and
more like a quest, trying to find the elegant implementation of
functionality. Refactoring, anyone?

Marc A. Criley
McKae Technologies
www.mckae.com
"The Efficient Production of High Quality Software"





             reply	other threads:[~2004-07-19 18:46 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-07-19 18:46 Marc A. Criley [this message]
2004-07-19 18:56 ` Artistically creative expression has no role in software design Ed Falis
2004-07-19 19:03 ` Hyman Rosen
2004-07-19 23:24   ` Marc A. Criley
2004-07-20  0:27   ` Nick Roberts
2004-07-20  7:40     ` Hyman Rosen
2004-07-20 15:24       ` Nick Roberts
2004-07-20 16:00       ` Marc A. Criley
2004-07-20 18:46         ` Jeffrey Carter
2004-07-20 22:41           ` Randy Brukardt
2004-08-09 16:14       ` Richard  Riehle
2004-07-19 20:49 ` Georg Bauhaus
2004-07-19 23:27   ` Marc A. Criley
2004-07-20  9:05     ` Georg Bauhaus
2004-07-20  0:31 ` Nick Roberts
2004-07-20  1:45 ` Alexander E. Kopilovich
2004-07-20  8:20 ` Dmitry A. Kazakov
2004-07-20 14:28   ` Martin Krischik
2004-07-20 15:02     ` Dmitry A. Kazakov
2004-07-20 18:02       ` Wes Groleau
2004-07-21  9:30       ` Martin Krischik
2004-07-21 20:22     ` Simon Wright
2004-07-23  8:00     ` Rolf Ebert
2004-07-23 21:04       ` Simon Wright
2004-07-21 20:17   ` Simon Wright
2004-07-21 22:15     ` Georg Bauhaus
2004-07-23 20:59       ` Simon Wright
2004-07-21  1:05 ` Robert I. Eachus
2004-07-21  1:17   ` Ed Falis
2004-07-21  3:44     ` tmoran
2004-07-21  4:09     ` tmoran
2004-07-21  9:38   ` Ludovic Brenta
2004-07-22 14:11   ` Marc A. Criley
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox