[rohrpost] Reminder: 1st Bachelors? Prize for Net-Literature // deadline 30. September 05

Florian Cramer cantsin at zedat.fu-berlin.de
Mon Aug 29 16:35:47 CEST 2005


Am Montag, 29. August 2005 um 10:57:47 Uhr (+0200) schrieb Johannes Auer:
> www.code-interface-concept.de
> www.literatur-und-strom.de

Da heißt es:

   Code und Interface verhalten sich in der Praxis der Netzkunst und
   Netzliteratur oft antagonistisch. Glaubt die eine Seite, die Hacker
   seien die eigentlichen Künstler und das Bildschirmereignis sei nur
   sekundär, betrachtet die andere den Code als bloßes Mittel zum Zweck
   und die Programmierer als die Handwerker der digitalen Welt. Dabei
   sind Code und Interface doch zwei Seiten einer Medaille. Auch
   verbindet beide Lager die Entmaterialisierung des künstlerischen
   Produkts und damit unweigerlich die Tendenz zum Konzept.

Muß man nicht noch weitergehen, Johannes? Code und (Nutzer-)Interface
sind nicht nur zwei Seiten einer Medaille, sondern sie sind das gleiche,
Punkt. Der Befehlssatz einer CPU ist ein Nutzungsinterface. Wenn
er mir besser gefällt als das GUI oder die Kommandozeile meines
Betriebssystems, nutze ich meinen Rechner eben per Assembler. Auch jede
andere Programmiersprache ist ein Nutzerinterface, das symbolische
"handles" und Abstraktionen für die Bedienung der Maschine zur Verfügung
stellt. Der Grund, weshalb es soviele Programmiersprachen gibt, ist,
daß jede versucht, ein besseres oder für einen bestimmten Zweck
maßgeschneidertes Interface zu sein. Wie man Programmiersprachen zu
Betriebssystem-Nutzerinterfaces ausbaut, zeigen z.B. BASIC-Homecomputer
[Apple II, C64, ZX81 und Konsorten], die Unix-Shell, LISP-Maschinen und
GNU Emacs.

Auch umgekehrt wird ein Schuh draus: Jedes "Nutzerinterface" ist ein
Code. Ein GUI oder ein Web-Interface ist ebenso eine symbolische Sprache
zur Interaktion mit dem Computer wie x86-Assembler, C++, Perl oder eine
Unix-Shell.

Der Unterschied liegt nicht zwischen "Code" und "Interface", sondern
darin, wieviel Kontrolle diese Codes/Interfaces den Nutzern einräumen.
Linguistisch könnte man es auch so ausdrücken: der Unterschied liegt
darin, wie "elaboriert" oder "restringriert" der Code ist. Dafür gibt
es ein einfaches Kriterium, nämlich das der Turing-Vollständigkeit. Die
Feststellung, daß ein Code elaboriert oder restringiert sei, ist
dabei grundsätzlich wertungsfrei. Microsofts ActiveX-Schnittstelle
in Verbindung mit dem Internet Explorer ist ein prominentes Beispiel
einer elaborierten Programmierbarkeit, die sich als Viren- und
Spyware-Schleusentor gegen die Nutzer des System richtet.

Als Konvention hat es sich eingebürgert, restringierte Codes
"Interfaces" zu nennen und elaborierte Codes "Code" bzw.
Programmiersprachen, doch führt das konzeptuell in die Irre. Diese
Scheinopposition verdankt sich einem Problem von graphischen
Nutzeroberflächen, das auch ihr Erfinder Alan Kay als ungelöst
bezeichnet - nämlich daß sie nur einen restringierten Code/ein
restringiertes Interface zur Verfügung stellen können und elaborierte
Steuerungen in einer separaten Ebene alphanumerisch codiert werden
müssen. Selbst in avancierten graphischen Programmierumgebungen wie
z.B. Max und PD ist das weiterhin der Fall.

Was wiederum nicht heißt, daß nur graphische Elemente restringierte
Codes seien. HTML als eine Turing-unvollständige Sprache ist ein gutes
Gegenbeispiel.

-F

-- 
http://cramer.netzliteratur.net