Regarding Algorithms:
Platonic Programming:
Algorithm and Language:
Algorithms seem to be "outside" language
(the platonic ideal)
-However, Algorithms must surely themselves be an expression of some language
-This seems similar to the idea that "
information" is "
objective"
and therefore somehow able to have a meaningful existence outside its own
defining context......
The idea that all "programs" are simply either implementations of, or interfaces
to, algorithms may be very dangerous..... (and perhaps lies at the heart
of the
problem of postmodern computer art)...... Such ideas ignore, or even deny,
the role language has in expressing its own internal ontological
epistemology. No language is neutral: All languages are (meta-) models
of (or within) some real or imaginary system -even when this language is itself used to
construct other models.
Infinite recursions can be problematic if one expects termination -but
they might also have unexplored creative potentials. Surely, any system
must be either incompletely defined -or tautologically self-defining.
----------------------------------------------------------------------
An Alternative Approach?
Karl M. Fant seems to bring "Computer Science" very close to a general theory of "expression"
-which might possibly bring both computation and mathematics back into
conceptual areas that have traditionally been of interest to the artist.
The common problem seems to center around models building on various
levels. In this context, it would seem that the most basic steps have
not really been taken: How for example, does Mathematics relate to
Logic and how does Logic relate to Philosophy and Language? Is one a
subset of the other -and if so, then which one is the subset?
These may seem to abstruse and silly abstract problems, far removed
from reality -but, in practice, questions of epistemology and taxonomy
probably do affect the way various practical subjects are taught, and
this in turn presumably affects the ability of professional practitioners
to solve contemporary problems.
Postmodern cultural theory preaches a lack of distinction between the
simulacrum and that which they simulate -but unfortunately seems to have
little practical understanding of the way conceptual models actually
work in practice.
A Critical Review of the Notion of the Algorithm in Computer Science
In his conclusion to the above titled
article, Karl M. Fant states:
What is essentially a discipline of
pure mathematics has come to be called "the theory of computer science"
and the notion of the algorithm has been decreed to be a fundamental
paradigm of computer science. The mathematical perspective, however, is
the wrong point of view. It is asking the wrong questions.
Mathematicians and computer scientists are pursuing fundamentally
different aims and the mathematicians tools are not as appropriate as
once supposed to the questions of the computer scientist.The primary
questions of computer science are not of computational possibilities
but of expressional possibilities. Computer science does not need a
theory of computation it needs a comprehensive theory of process
expression.
The Chicken and the Egg:
In relation to creative cognition and the role of language, one might therefore ask:
If an algorithm is the main basis for the computational process -then
via what (non-computational?) process does one creatively "compute" the original algorithm?
Intuitive Programming -A Socratic Dialogue?
How important are algorithms when using an interpreter such as LISP
or BASIC -is the language then more "intuitive"? Could "intuitive
programming" be a useful (methodological) concept? My own approach to
programming could perhaps be termed "intuitive programming" and is
perhaps somewhat similar to the way some artists develop a painting (or
a piece of creative writing): Using a incremental developmental
system based on
"prototyping" -where a rough concept is initiated and then becomes
gradually
developed and refined within a process of creative "dialogue" which
operates between the various
aspects of the programme. This process implies that modifications are
sometimes driven by syntactic or epistemological improvements to the
programme and sometimes by more semantic and ontological
improvements to the way the programme functions -or the (visual) output
it produces. Presumably, within this methodological approach, the
(hypothetical) "Algorithm" could be (re)constructed by
"abstraction" (removing the meat to
find the bones underneath) after completion. However, the actual
creation of this (pseudo-) "Algorithm" was
an integral part of the "programming" process and did not exist in any
"Platonic"
sense until after the (initial) creative process had finished.
The Philosophy of methodology:
Perhaps the above mentioned differences in methodological approach explain why I consider "programming" to be a
philosophical process involving both epistemology and ontology -while
most programmers see the process as a simple technical "coding" of an a
priori algorithm.
Top-Down or Bottom Up?
The concept of the algorithm (loosely or tightly defined) works well in
"top-down" systems -where an imperative set of instructions form the
main organizational principle. However, in less predictable "bottom-up"
systems a more declarative system that describes and defines the
components and their mutual relationships might be more useful.
Pragmatism, Models and Algorithms:
Much of the resulting argument regarding Fant <
Forget Maths -Replies>
seemed
to revolve around the differences between the "pragmatics" (who appear
to deny the value of any theoretical framework in their practice) and
the "theorists" (who found the mathematical theory extremely valuable).
Very few <
Fant -Selected Reactions> seem prepared to confront the real issue of
expression and representation in Mathematics and Computer Science.
However, some are also seem to be aware of a dumbing down resulting
from a disregard of theory when pragmatism is so profitable. One writer,
Quinn, even remarks: This article sounds like it was written by the British Ministry of
Education: having successfully destroyed academic physics, they're now
looking to do the same with computer science.
Y.C. Tay from the Department of Mathematics and Department of Computer
Science National University of Singapore in a paper entitled "
What should Computer Science students learn from Mathematics?"
states: Among all that a computer science student learns from
mathematics, I believe the training that is of particular importance to
the researcher is the ability to craft an appropriate model. Consider:
The relational model for data is the basis for a billion-dollar
industry, the model of time lies at the heart of the impossibility
proof for fault-tolerant distributed consensus, and the Turing model
has the robustness enshrined in the Church-Turing Law that gives us
confidence in plotting the limits of computability.
So what is a Model and is it truly synonymous with Algorithm?
Back to Language:
-Can one write or say something in (for example) French or German that one cannot say in English?
-Is there a difference between oral and written language?
-What is actually "expressed" by "language"?
-In what language does the original
"thought" exist?
-In which medium does "thought" live, if it is "outside"
language?
- Imperative (Procedural) languages and Declarative (Descriptive) languages
- Descriptive Epistemologies and Phenomological Ontologies
- Imperative Epistemologies?
- Declarative Epistemologies?
- Imperative Ontologies?
- Declarative Ontologies?
- Context Free and Context Bound
----------------------------------------------------------------------
Regarding Computability:
The End of Halting?
The halting problem now seems
irrelevant -perhaps it is. Many processes, including the operation of
power stations -and even my own <
Visual Works> are intended to be continuous.
However, the problem of computability (
defining, mapping and testing the connectivity of all possible states within a given system) remains of vital importance: Can, for example, a
Microsoft system really do everything its operator might wish? The advertising industry would like us
to believe that everything is possible at all times -but Goedel tells us that no
(complex) system can be complete and consistent. So who is
right?
-Does the way the system is defined and built affect its performance?
-How does one define that which is outside the system,
in
order to know if the system can "incorporate" it?
Computability and Geometry:
The story of Non-Euclidean geometry is probably a parable of
computability: How could a (real or imaginary) geometry ever exist if was "outside"
Euclid"?
Logic and Computability:
How does one "compute" or "decide" if something is "true" -or not (how does one define truth)?
Is "truth" an inherent part of the universe -or simply an invention of our minds?
Dehumanizing Computer Science (and Art)?
In his paper <
Dehumanizing Computer Science> Karl Fant concludes:
While humans can still muck around in the works as they please, they are no longer conceptually integral to the works. Transcending its mathematical heritage without abandoning it, dehumanized computer science is essential to understanding the nature of symbolic expression and to encompassing the natural phenomena of symbolic computation as well as the expressions of human computation in the same way that the science of aeronautics encompassing the airplane's wing and the bird's wing.The science of symbolic computation is not as artifactual as supposed
This sounds contradictory to my belief (stated in
<
Revolutionary to Reactionary>) that Automation Kills
Programming. However, I believe that if I understand Fant correctly,
the removal of the human being is not intended to alienate us from automated
processes -but indeed, to use the lack of human intervention as a way
of exploring and testing our (fundamental) assumptions.
This was also the reason that I added the "
Manifesto" from
angry revolution plotting computers to my artist's statement "
On
the Stairs: Between Old and New Media" for the Stuttgarter FilmWinter.
Trevor Batten,
<trevor at tebatt.net>
Manila August 2007