Programmieren vor dem Hintergrund von Kontingenz und Kommunikation

Dies sind einige Überlegungen zu Rolf Todescos letztem Blogpost “Programmieren und Theorie”. Insofern mein Kommentar dazu etwas zu lange geraten ist, habe ich mich entschlossen, diesen als eigenen Post zu publizieren. Ich hoffe, das kommt der besseren Lesbarkeit zugute.

1) These 1: “Programmieren als soziale Aktivität / Kommunikation”:
Unabhängig davon, wie die “soziale” Dimension nun konzeptualisiert wird (akteursbasiert, als soziale Emergenz, etc.), würde ich “Programmieren” stets auch als “soziale Aktivität”, und das heißt insbesondere als “Kommunikation”, auffassen. Denn die Codeproduktion (sei es als Umarbeitung von Altcode = Legacy Code, sei es als Neuproduktion, bei der idR mit Kunden ausgearbeitete Anforderungen = Requirements realisiert werden), erfolgt m.E. vollständig unter kommunikativen Vorzeichen: Anforderungsinterviews, Pair Programming und sonstige Entwicklerdiskussionen während des Designens, Codierens, Testens, etc., Reviews / Walk Throughs, usw.

Die Sicht “Programmierer und Computer” sollte daher nicht vom Sozialen völlig abstrahieren, weil der ganze Entwicklungsprozeß von der Anforderungserfassung bis zur Programmabgabe / -wartung durch und durch von sozialen Prozessen bestimmt wird.

Die Programm-“Lesbarkeit” ist dabei nicht nur für den einzelnen Programmierer selbst wichtig, sondern auch v.a. für diejenigen, die weiterhin mit der Codebasis arbeiten müssen (Tester, Legacy Code-Programmierer, usf). Und das bedeutet wiederum, es geht hierbei auch um “kommunikative” (= codebasierte und andere medial vermittelte) Anschlußmöglichkeiten!

2) “[…] bei dem die Programmierer im Laufe der Systementwicklung eine Theorie darüber entwickeln, wie die vorhandenen Probleme durch die Progammausführung gelöst werden können.” (Peter Naur)
* Hier wäre zu klären, was der Begriff “Theorie” bedeuten soll.
* Unabhängig von der Interpretation von “Theorie” werden bereits “vor” dem eigentlichen Programmieren eine Unzahl von idR sozial kalkulierten (!) Entscheidungen getroffen:
– Wie wird welches Software-Projekt angenommen (wer, wo, wann, mit welchem Budget, welchen Zeitvorgaben, welcher Qualität, usw.) oder verworfen?
– Neuprogrammierung oder Redeskription von Altcode?
– Welche Anforderungen sollen mit welcher Prioritität wie realisiert werden?
– Technische Vorgaben:
Zielplattform als Hard- und Softwre (Betriebssystem, etc.),
welche Tools (Programmier- und Designnotationen, Frameworks, IDEs, Test- und Debuggingwerkzeuge, usw.).
etc.
– Welche Software-Projektmanagement-Modelle werden gewählt (non-agil / agil oder irgendwie hybrid)? Das hat wiederum Auswirkungen z.B. auf die Vertragsgestaltung und Dokumentationsweise.
– Welche Designleitentscheidungen werden getroffen? Stichworte: Das zentrale Architekturdesign (Schichtenarchitektur, etc.) mit welchen Architekturdesignpatterns?
– Orientierung an welchen Programmierparadigmen mit welchen (Design- und Implementierungspatterns, Refaktorisierungs-, Test- und Debugging-Möglichkeiten, etc.)?
usf.

All das erfolgt bereits “vor” (!) dem Schreiben der ersten Programmzeile – unter der Voraussetzung, daß man nicht, ohne viel nachzudenken, sogleich wild und wirr zu codieren beginnt, was man idR höchstens im Hobbybereich tut.

Daher meine These 2:
Programmierer(innen) denken und kommunizieren (!) entlang bestimmter Design- und Programmierparadigmen, die insbesondere das “Problemlösungsverhalten” orientieren
. So macht es bspw. einen erheblichen Unterschied, ob man ein Problem prozedural, objektorientiert (OO) oder funktional bearbeitet.
Von Vorteil ist es hierbei, ein Problem auf “kontingente” Weise bearbeiten zu können. Man sucht dann durch eine Art “Paradigma-Switching”, die ungeeigneten / uneleganten Problemlösungsweisen zu vermeiden.
Wenn man nun Paradigmen mit Theorien gleichzusetzen gewillt ist, dann orientieren “multiple Theorien” das Problemlösungsverhalten.

* Wenn man sich im Rahmen eines (dominanten) Programmierparadigmas bewegt, dann stellen sich ganz “konkrete” Probleme, die zuerst allgemein “formuliert” werden:
– Wie baue ich eine Verbindung zum Server auf?
– Wie baue ich eine GUI entsprechend den Anforderungen?
– Wie speichere ich etwas in welcher Art von Datenbank?
M.E. handelt es sich hier um Problem-Problemlösungsrelationen, die als einzelne Aufgabenstellungen entsprechend des divide-et-impera-Prinzips (komplizierte Aufgabestellungen werden in einzelne, gut zu bewältigende Aufgabenpakete heruntergebrochen) bearbeitet werden. Beim Prozeß des “stepwise refinement” würde dann programmiersprachenunabhängiger Pseudocode solange reformuliert, bis geeignete Codezeilen entstehen. Der Pseudocode kann dann für Dokumentationszwecke im Programm stehen bleiben.
In einfachen Fällen (wie Datei xy öffnen, einlesen, etc.) kopiert man auch einfach direkt “code snippets”, ohne sich großartig mit stepwise refinement herumzuplagen.
– Eine weitere Frage wäre freilich: “Code first, test later” oder “test first”? Schon das sind zwei prinzipiell unterschiedliche Herangehensweisen ans Codieren.
– Eine andere Frage betrifft die Wahl und Implementierung welcher Algorithmen, was sich für die Programmexekution als zentral (gerade mit Blick auf die Geschwindigkeit der Programmausführung) erweisen kann.
etc.

Kommt bei diesen konkreten Problemlösungsprozessen (innerhalb einer Programmiersprachen, die sich an einem oder mehreren Programmierparadigmen orientieren kann. Bspl: “Scala” entspricht einer hybriden Sprache, die je nach Aufgabenstellung einen prozeduralen, objektorientierten oder funktionalen Programmierstil erlaubt – und das u.U. mit Blick auf ein und denselben Codeblock) “eine” Theorie zum Einsatz?
Ich würde sagen “Nein”, wenn man unter Theorie einen konsistenten Aussagenzusammenhang versteht, der dann praktisch realisiert werden soll.
So funktioniert das konkrete Problemlösungsverhalten nicht. Das heißt auch: Das upfront-Design, bei dem antizipativ und theoretisch alle relevanten Probleme gelöst und dann umgesetzt werden, ist hier idR irreführend. Man muß eher mit ständigen Re-Deskriptionsprozessen rechnen, bei denen zwischen Mini-Design, Testen/ Debuggen, Codieren und Refaktorisieren geswitcht wird. Der Prozeß ist daher eher etwas “sprunghaft” – analog zum Schreiben komplizierterer Texte!

Bei den obigen Aussagen zur “Rekonstruierbarkeit von Theorien” ist daher zu hinterfragen, ob hier nicht ganz klassisch (sensu “alteuropäisch” wg. der Orientierung an altgriechischen Leitentscheidungen!) die praktische Realisierung (up front und antizipativ) eines theoretischen Rahmens zugrunde gelegt wird.
Das wird dem Komplexitätsmanagement in Software-orientierten Design- und Programmierprozessen aber in keinster Weise gerecht – zumal hier auch nicht “eine” Theorie zugrunde gelegt werden könnte, sondern ein ebenfalls komplexer und kreativer, vorab nicht prognostizierbarer “Problemlösungsprozeß” abläuft, der nicht nur rein mental, sondern auch sozial (recherchieren, diskutieren, usf.) zu konzipieren ist (These 3).

3) “Der Programmierer verwendet keine Theorie, sondern eine Programmiersprache. ” (Rolf Todesco)
Das würde ich als eine sehr simplizistische “Verkürzung” auffassen. Man verwendet eine Vielzahl von Problemlösungsweisen (visuell, oral, textuell, Prototypen, Designnotationen, u.U. sogar diverse Programmiersprachen und Programmierstile /-Paradigmen) in einem komplexen, immer auch sozial vermittelten Problemlösungsprozeß (s.o. These 3),  und das oft schon “vor” dem Schreiben der ersten Codezeile.
Zudem gibt es seit einiger Zeit den Approach des “visuellen Programmierens”, bei dem “Modelle” durch entsprechende Engines in exekutierbaren Code transformiert werden sollen (Stichworte: Automatisierung von Geschäftsprozessen durch entsprechende Business Process Engines).
Ziel: Das Programmieren (und damit die teuren Programmierer / -innen!) überflüssig machen, was m.E. aber letztlich nicht gelingen wird, so daß es eher um eine “Minimierung” des Codierungsaufwands geht.

4) “Er weiss dabei, was er sagen kann, aber nicht, was er sagen könnte. Er trifft eine Wahl aus dem Kontingent” (Rolf Todesco)
Bei dem obigen, relativ oberflächlich skizzierten Problemlösungsprozeß ist das “Kontingenzbewußtsein”, also: das Bewußtsein um alternative Problemlösungsweisen, recht geschärft. Und das heißt auch, es läßt sich, insbesondere bei zentralen Modellierungs-, Design- und Programmier-Entscheidungen, auch “explizieren”, z.B. in der programminternen bzw. -externen Dokumentation. Also:
* Warum wurde dieses Design (Pattern) – und zwar schon auf der Ebene der Leitunterscheidungen, z.B. der Architektur – und nicht ein anderes zugrunde gelegt? Was sind die Vor- und Nachteile?
* Warum dieser Algorithmus und nicht ein anderer? (Vor- und Nachteile?)
* Warum diese Datenstruktur und nicht eine andere? (Vor- und Nachteile?)
* Warum dieser Programmierstil für diese Aufgabe (z.B. OO und nicht funktional) und nicht ein anderer? (Vor- und Nachteile?)
* Warum diese Codeimplementierungen (und nicht eine refaktorisierte, andere Lösung), z.B. eine polymorphe Methodenlösung anstelle einer Fallunterscheidung mit switch, u.ä.? (Vor- und Nachteile?)
etc.

Da man hierbei von komplexen (nicht antizipativen) Re-Deskriptionsprozessen ausgehen muß, ist das Durchspielen von Alternativen 1A. Bref: Es wird durchgespielt, was man codieren “könnte”. Dann probiert man dies und jenes aus, sieht, daß es nichts ist, verwirft es, recherchiert neu, probiert wieder dies und jenes aus, usf. – um am Ende, hoffentlich, etwas vor sich zu haben, das funktioniert.
Das führt zu meiner These 4: Das Kontingenz- und Komplexitätsmanagement ist dem Software-Entwicklungsprozeß i.a. und dem Programmierprozeß i.b. “immanent”. 

5) “Sie ist kritisierbar – also vergleichbar – durch ein anderes Programm, also durch eine andere Wahl.” (Rolf Todesco)
Das Suchen nach Alternativen erfolgt  design-, modell- bzw. programm”intern” (!)  immer schon während” des Designens, Modellierens und Programmierens Es werden hierbei eine Vielzahl von Möglichkeiten durchgespielt und permanenten Redeskriptionprozessen unterworfen (und das sogar ganz explizit: als “Refaktorisieren” von Programmteilen).
Die “Explizierung” wichtiger Entscheidungen erfolgt mitunter sogar “im” Code selbst. Und in Code Reviews / Walkthroughs wird das ggf. nochmals durchgekaut.

Ergo, meine These 5:
In allem, was man bei der Softwareproduktion tut (und das geht über das eigentliche “Programmieren” im strikten Sinne von “Codieren / Implementieren” hinaus!), ist ein geschärftes Kontingenzempfinden notwendig – und das betrifft die Ebene des individuellen Bewußtseins wie der sozialen Kommunikation (Beispiele: Diskussionen mit Projekt-Stakeholders, Pair Programmierung bzw. sonstigen Diskussionen unter Entwicklern bzw. nachträgliche Reviews / Walk Throughs, etc.).

~Peter Bormann

Advertisements
Post a comment or leave a trackback: Trackback URL.

Comments

  • kybernetiks  On April 24, 2014 at 6:47 PM

    hmmm … lieber Peter, Du hast es gerne kompliziert und wählst deshalb komplizierte Geschichten. Ich habe es gerne einfach und wähle deshalb einfache Gechichten.
    In meiner Geschichte schreibe ich ein Programm für mich. Ich will damit erreichen, dass MEIN Computerauf bestimmte Eingaben bestimmte Ausgaben zeigt. Ich muss dabei also keine Hardware-Entscheide treffen und nich mit irgendwelchen ausgedachten Kunden oder anderen Programmierer oder Chefs usw reden. Ich kenne die Sprache “Pascal” und habe auf MEINEM Computer einen mir bekannten Compiler und einen Editor. Ich beschreibe genau diese einfache Sache. Ich glaube fast alle Deiner Erwägungen haben nichts damit zu tun.
    Als Theorie bezeichne ich die Kybernetik oder die Systemtheorie, durch die ich meine Beobachtung mache und die sich in meiner Beobachtung durch Reflexion rekonstruieren lässt. Wenn ich programmiere, spielt die Theorie keine für mich erkennbare Rolle, aber wenn ich (wie hier) darüber nachdenke, also beobachte, kommt meine Theorie zum Zug. Hier gerade darin, dass meine Theorie mir erlaubt, das was ich hier beschreibe, als Programmieren zu beobachten, obwohl Du mit Deinen Theorien ganz ndere Beobachtungen machst.
    Durch meine Theorie sehe ich das toolmaking als materielle Formgebung, aber das weisst Du ja schon. Du kannst das durch Deine Theorie einfach nicht sehen, weil sie Dir diese Reduktion, den Computer als elektrisches Gerät zu sehen, nicht möglich macht.

    • Valonqua  On April 26, 2014 at 6:07 PM

      Deine “einfache” Geschichte blendet aber die “soziale” Dimension m.E. “komplett” aus, die freilich in allen nicht exklusiv “privaten” Technik-Projekten wichtig ist (-> Kundenanforderungen, Teamkoordination, Berücksichtigung juristischer und anderer Vorgaben, etc.).
      Und selbst bei “rein privaten” Programmier- und anderen Technik-Projekten (z.B. dem Herumbasteln an Robotern) kommt die soziale Komponente meistens zum Tragen, weil man Handbücher, Tutorials, u.ä. studiert, Code mit anderen austauscht oder von anderen kopiert, Fragen im Internet stellt, usf.
      Deine “private” Programmierperspektive scheint mir daher nur ein “Sonderfall” zu sein (“der Einzelne und die Maschine, die es zu steuern gilt”), der nur begrenzt generalisierbar ist – zumindest wenn es um die Erstellung von Software geht.
      Analogon: Das Schreiben eines rein privaten Tagebuchs, das von niemand anders gelesen wird, als “allgemeines Modell für´s Schreiben” [wobei die soziale Dimension bspw. schon dank der Benutzung einer allgemein geteilten Schrift (und der zugehörigen Konventionen) relevant wird, auch wenn es gar keine kommunikativen Anschlüsse zu den Tagebucheinträgen geben mag].
      Daß bei der Programmierung die “Maschinensteuerung” wichtig bleibt, stelle ich nicht in Abrede. Man kann freilich die Maschinensteuerungssicht und die soziale Sicht (die vielfache mediale Transformationsarbeit beinhaltet, quasi: von den Requirements bis zum fertigen Programm) kurzschließen in einem “dual use”-Ansatz, den wir schon einmal andiskutiert haben. Das ist für mich also kein Widerspruch.

      Ob unsere Theorieansätze dabei letztlich “inkompatibel” sind, lasse ich offen, weil ich eher von einer Kopplung von soziologischer Systemtheorie und Deiner Art von Kybernetik ausgehe. Wie das dann letztlich genau ausschauen kann, on verra.

      .

  • kybernetiks  On April 26, 2014 at 6:36 PM

    hmmm… Du verifizierst, was ich meine. Ich wähle einen Beobachtungsgegenstand aus. Einen ganz einfachen. Und mache dazu meine Beobachtungen explizit. Die kann man teilen oder kritisieren oder …
    unwichtig finden.
    Die Unwichtigkeit kann man verschieden begründen. Deine Begründung ist, dass Du durch Deine Theorie an sozialen Verhältnissen interessiert bist, die in meinem Gegenstand nicht vorhanden sind – das ist genau, was ich auch sagte. In Deiner Theorie kommt mein Gegenstand nicht vor.

    In meiner Theorie ist die Wahl des Gegenstandes nicht vorbestimmt. Ich kann das Programmieren eines Computers beobachten, also isolieren. Dann kann ich schauen, was ich dazu sagen kann.
    Ich meine, im Reduktionismusstreit sei das behandelt worden. Wenn ich physikalische Verhältnisse beschreibe, dann kann ich damit eben keine biologischen Verhältnisse erfassen. Ich erwarte aber von den Biologen, dass sie die physikalischen Verhältnisse nicht verletzen – oder aber zeigen, wo sie falsch sind.

    Zu Deiner sozialen Programmiererwelt mit Kunden usw. habe ich nichts gesagt. Die Frage ist, ob ich innerhalb meines Gegenstandes etwas nicht oder falsch sehe. Ich finde Dein Bild mit dem privaten Tagebuch passt sehr gut. Anhand meines Schreibens in meinem Tagebuch kann ich meine Schreiben sehr genau beobachten. Ich brauche dazu keine AmazonKundschaft. Es geht dann nur ums Schreiben.
    Und natürlich setze ich dabei Schrift und Sprache voraus. Die Frage ist, ob ich diese Vorassetzungen verletze.
    Beim Programmieren verwende ich ja meinen Computer und Pascal, was ich beides nicht selbst gemacht habe. Auch hier ist die Frage, warum ich das ohne Not problematisieren müsste.

    Auf den Punkt gebracht (ich wiederhole mich): Es ist die Wahl des Gegenstandes und was daraus folgt. (Meine Kritik an Luhmann ist im Wesentlichen, dass er reaktionär ist, weil er “Systeme” wie Wissenschaft oder Religion betrachtet, ohne sich der Wahl des Gegenstandes bewusst zu sein).

    • Valonqua  On April 26, 2014 at 7:00 PM

      ” Es ist die Wahl des Gegenstandes und was daraus folgt.”
      Das sehe ich auch sc. Aber sollte man dabei stehen bleiben?
      1) Man sollte m.E. auch diskutieren, was durch diese Wahl “alles ausgeschlossen” wird.
      2) Und dann sollte man diskutieren, ob das, was alles ausgeschlossen wurde, nicht auch dazu führen kann, den Wahlbereich des Gegenstands zu modifzieren bzw. zu erweitern.

      Ein gutes Beispiel dafür ist Deine Auffassung von Programmierung, die m.E. einfach nur einen “sehr privaten” Sonderfall widergibt.
      Schlußfolgerungen wie z.B.:

      “Der Programmierer verwendet keine Theorie, sondern eine Programmiersprache. Er weiss dabei, was er sagen kann, aber nicht, was er sagen könnte. Er trifft eine Wahl aus dem Kontingent. Und diese Wahl ist nicht rekonstruierbar. Sie ist kritisierbar – also vergleichbar – durch ein anderes Programm, also durch eine andere Wahl.”

      sind dann einfach nur auf “den (privaten) Programmierer” – [in diesem Fall: Du – Dein Pascal und Dein Computer :-) ] zu beziehen, aber meiner Ansicht nach kaum zu generalisieren, wenn´s um allgemeinere “Tendenzen / Stile” des Programmierens gehen sollte.

      Es scheint mir jedenfalls eine sehr schlechte Idee zu sein, vom Sozialen bzgl. Technik (aber auch bzgl. Medien) völlig abstrahieren zu wollen, weil dadurch zu vieles “ausgeblendet” wird, das eingeblendet werden sollte (siehe z.B. den kommunikativ-sozialen Hintergrund vieler Programmiertätigkeiten).

  • Valonqua  On April 26, 2014 at 7:07 PM

    Vielleicht könnte man meine Position auch so – prägnant – formulieren:
    * Es scheint mir sinnvoll zu sein, “Technik(entwicklung) mit “technischer Kommunikation” (bzgl. Konstruktion, / Design, Gebrauch, etc.) kurzzuschließen, weil Soziales in jeden Technik-Aspekt hereinspielt – auch wenn z.B. die eigentliche Konstrukion oder die Verwendung von Technischem “nicht als direkter kommunikativer Anschluß” gewertet werden kann.

    So, das wär´s für heute!

    Nice weekend!
    ~Peter

    • kybernetiks  On April 26, 2014 at 8:25 PM

      also auch prägnant: ich meine, dass alles was ich sage, immer und generell der Fall ist, aber dass es nur einen kleinen – reduzierten – Bereich betrifft. Es gibt nichts zur Programmierung zu sagen, was das aushebelt. Man kann ganz viel MEHR sagen, aber nichts, was damit kollidiert.
      Es sei denn, man könnte zeigen, dass man diesen lokalen Bereich ANDERS beschreiben könnte – oder eben zeigen, dass das ganz konkrete Programmieren auf der innersten Ebene – also wenn alle Bezieheungen zu Kunden und Team usw geregelt sind – nicht ganz genau so stattfindet.
      Irgendwann musst Du in Deinen sozialen Beziehungen, wie kompliziert Du sie auch immer machst, an einen ganz konkreten Computer hocken und in einer ganz konkreten Programmiersprache den Bildschirm zu einem ganz bestimmeten Zustand STEUERN – oder nicht?

      hmmm … vielleicht eben nicht, aber dann brauchen wir eine ALTERNATIVE Formulierung dafür, was als letztes oder innerstes passiert beim Programmieren

  • Valonqua  On April 27, 2014 at 11:40 AM

    Es hat fast so den Eindruck, als würden wir den “dual use” (bei der Maschinensteuerung) auseinanderdividieren: ich fokussiere mich gerade auf Sozio-Kommunikatives, Du fokussierst Dich primär auf den “maschinellen Steuerungsaspekt”. Aber die Betonung liegt wirklich auf “dual” – wobei meine (noch nicht komplett entwickelte) Hintergrundthese ist, daß Mediengebrauch immer mit einem “Anweisungscharakter” einhergeht, der dann auch zur “maschinellen Steuerung” führt.

    Allgemeine Überlegungen:
    * In jedem Mediengebrauch läuft eine “Anweisung” mit, durch die etwas als etwas
    (als Realität) konstruiert werden soll (quasi eine “ursprüngliche Injunktivität”, auf die auch z.B. die “Triff eine Unterscheidung” der “Laws of Form” verweist).
    * Man kann diese Injunktivität dann nutzen, um menschliche Verhaltensweisen zu “technologisieren” (tue dies oder jenes, konstruiere / benutze das Tool xy so oder so)
    * Man kann schließlich sogar (programmierbare) Maschinen bauen, die sich entsprechend steuern / regeln lassen.
    * Und der next step wären Maschinen, die sich (vollständig) selbst replizieren / produzieren – ohne irgendwelche menschliche Intervention.

    * Bei jedem Medien- und Technikgebrauch (Konstruktionen inkl.) läuft aber Soziales unweigerlich immer mit [außer vielleicht bei selbst replikativen / sich selbst produzierenden Maschinen – aber: vielleicht bilden die irgendwann eine “artificial social society” :-)]. Das heißt auf die “Programmierung” bezogen: die maschinelle Steuerung geht einher mit einer sozial determinierten und medialen Transformationsarbeit (z.B. von den Requirements zum fertigen Programm, das dann als “Prozeß” von einer programmierbaren Maschine exekutiert wird). All das verweist bei der Softwareentwicklung unvermeidlich auf “dual use”.

    Insofern könnte ich mir vorstellen, daß sich die soziologische Sytemtheorie und Deine Technik-Kybernetik “komplementär” zueinander verhalten. Das besagt: Wenn sich nur auf ein Ansatz beschränkt wird, dann wird auch der “dual use” auseinandergerissen. Worauf es aber bei der Software-Produktion ankommt, ist die Betonung des “Dual”: Sowohl “Soziales / Mediales” (kommunikative Anschlüsse, mediale Transformation von Dokumenten und Medienformen) als auch maschinelle Steuerung.

    Und diese “dual use”-Sicht könnte m.E. “fruchtbar” für die ganze Technik-Entwicklung “generalisiert” werden. Also: kein Entweder-Oder, sondern ein Sowohl-Als Auch.

    Oder nochmals in anderen Worten: Nicht alles ist nur Soziales(-Mediales) bei der Technik, aber das ist auch kein Plädoyer für eine exklusiv technische Technik-Theorie.

    > Irgendwann musst Du in Deinen sozialen Beziehungen, wie kompliziert Du sie
    > auch immer machst, an einen ganz konkreten Computer hocken und in einer
    > ganz konkreten Programmiersprache den Bildschirm zu einem ganz bestimmeten > Zustand STEUERN – oder nicht?
    Volle Zustimmung! Freilich meine ich das im oben skizzierten “dual use” Sinne. Man könnte auch sagen, “spannend” wird es heutzutage (und in der Zukunft einer sog. “Next Society”) in diesem Zusammenhang, weil sich “kommunikative (soziale)” und eine “maschinelle (nicht soziale)” Intelligenz begegnen und wechselseitig irritieren!

  • kybernetiks  On April 27, 2014 at 12:41 PM

    ja, ich sehe Deine Dual-Geschichte. Und wenn ich mich mit einer Seite des Deines Dualen befasse, nämlich mit der Technik in Form von hergestellten Artefakten, wenn ich also MEINEN Computer mittels PASCAL programmiere, dann kann ich Aussagen machen, die eben nicht dual-usig sind.
    Die Frage ist dann, welche dieser Aussage kollidieren mit einer Dualen Sicht – und vor allem: Was passiert bei dieser Kollision?

    WENN ich das Dein Duales auseinandernehme, dann: ..

    Auf der einseitigen Seite der Technik IST ein Computer ein programmierbarer Automat mit der Funktion einen Zustand zu erreichen, den ich als Benutzer symbolisch deuten kann. Er muss beispielsweise unter bestimmten Bedingungen einen Bildschirm-Zustand erreichen, der so aussieht: 2 + 3 = 5.

    Konstruktiv ist einerlei, weshalb ich das so möchte und wer das wie interpretiert. Konstruktiv – und kybernetisch – ist die Frage: Wie funktioniert das? Wie kann ich das machen?

    Und in unserem Kontext stellt sich mir die Frage, wie sprechen wir, wenn wir diese Fragen behandeln? Ich sehe nicht, wie dabei Ausdrücke wie “sozial” oder “Medien” ins Spiel kommen sollten. Diese Wörter spielen ihre Rolle bei ganz anderen Fragen/Gegenständen oder auf der anderen Seite des Dualen.

    WENN ich Dein Duales nicht auseinander nehme, dann finde ich keine brauchbaren Begriffe für die Programmierung eines Computers, WEIL Du dann sofort sagen wirst, der Computer ist KEIN HERGESTELLTES Artefakt aus Material, sondern ein sozial beobachtetes Medium, das in einer Kommunikation zwischen Kunden und Programmierern auftaucht … und über das man nichts sagen kann, was nicht in diesen Kommunikationen vorkommt.

    Also? Es sieht so aus, als ob wir beide “komplementär” dual bleiben, weil Dich die ganz einfachen Maschinen und deren Programmierung nicht so sehr interessieren. Mir ist zunächst gleichgültig, warum jemand will, dass ein Bildschirm einen bestimten Zustand annimmt, ich will wissen, wie das geht. Ersteres mag eine soziologische Frage sein (was ich ein wenig bezweifle), letzteres ist eine kyberentische Frage (wobei ich “systemtheoretisch” jetzt in beiden Fällen aussen vor lasse).

    gerade dazu Morozov’s Vorschlag gelesen:
    1) Keine Diskussionen über die Auswirkungen des Internets und von Social Media mehr führen, weil unklare Fragestellungen damit verbunden werden, auf die kaum hilfreiche Antworten gefunden werden können.
    2) Besser ist es, technikbezogene, enge und empirische Analysen durchzuführen, welche beispielsweise die Funktionsweise spezifischer Algorithmen betreffen.

    • Valonqua  On April 27, 2014 at 3:44 PM

      Es scheint mir, wir haben hier eine “Kontrastierung” vor uns, die ich aus der Linguistik kenne:
      * Phonetik: sie fokussiert sich auf den “Materialitätsaspekt” mündlicher Aussagen.
      * “Phonologie”: sie fokussiert sich auf den Medialitätsaspekt (z.B. Differenzen in einem Sprachsystem).

      Für mich ist freilich nicht das “Herstellen”, das Problem. Natürlich muß Technisches (aber auch Mediales) irgendwie “produziert” werden. Die Frage ist eher für mich: Wie finden wir zu einem “zeitgemäßen Verständnis von Materialität”, das bspw. mit den heutigen Differenzlehren (Dekonstrruktion, Bielefelder Systemtheorie, usf.) kompatibel ist? Zumindest sollte es sich dabei nicht einfach um ein common-sense-Verständnis handeln.

      Deine Vorstellung von “Materialität” (wenn ich mich recht an die vergangenen Diskussionen erinnere) war einfach die Ausformulierung einer “Tautologie”: Materielles = Artefaktisches = (materiell) Hergestelltes, ergo: = Materielles.
      Ich kann darin jedoch weder ein Konzept noch einen Erkenntnisgewinn sehen – einfach nur ein tautologisches Wortspiel.

      Ich glaube auch, daß Dein Hinweis auf die “Maschinensteuerung” beim Programmieren viel zu inhaltsarm bzw. rudimentär ist. Denn über die faktisch beobachtbaren Stile / Arten der Software-Produktion sagt das einfach kaum etwas aus. Das heißt “nicht”, daß man die Maschinensteuerung “nicht diskutieren” sollte. Aber wenn’s um Software-Produktion geht, sollte sich keinesfalls darauf beschränkt werden, weil man ansonsten zu vieles nicht versteht. En bref, eine “maschinelle Robinsonade” ist nicht sinnvoll…

      > “Besser ist es, technikbezogene, enge und empirische Analysen durchzuführen, > welche beispielsweise die Funktionsweise spezifischer Algorithmen betreffen.”
      Das kann man “auch” machen – aber warum sollte man “nur” das (bei einer Technik-Analyse) tun? Medienanalytisches Äquivalent: wir fokussieren uns ausschließlich auf die materielle Seite von Sprache (Wie werden Laute “materiell” produziert? Wie werden Texte mit welchen Schreibmaterialien, etc. angefertigt? usf.), aber “alles andere” (z.B. Phonologie, Semantik, Pragmatik, Sozio- und Dialektforschung, Analyse von Redegattungen und vielfältigen Textgattungen, Mediengenres, etc. etc.) bleibt als “unnützes Geschwafel” außen vor.

      Kann man so sehen – ich sehe es nicht so. Ich “switche” lieber die Paradigmen, Theorie und Wissenschaftsdisziplien. Denn so lange ich nicht gelangweilt bin, ist alles bestens :-)

  • kybernetiks  On April 27, 2014 at 4:28 PM

    also Materialität:
    Ich begreife Material in einer Differenz. Material ist das, was ich BEIM HERSTELLEN forme. Ich habe einen Form-Begriff, der an die Herstellung gebunden ist, also nicht wie bei SpencerBrown und fast allen mir bekannten Logik-Philosophen nihilistisch leer ist, sondern (deshalb historischer Materialismus) an die Tätigkeit des Herstellens gebunden ist.
    Herstellen meint aber auch nicht “irgendwie produziert”, so wie Du irgendwie Gedanken produzierst, sondern herstellen heisst Formgeben und verlangt Material, das dadurch gekennzeichnet ist, dass man es formen kann.

    Das Ganze ist ganz einfach, aber nur, wenn innerhalb einer materialistischen Auffassung: Am Anfang war die Tat.

    Natürlich ist das Herstellen/artefakten eine willkürliche Voraussetzung. Genau die wird aber in der Kybernetik und in bezug auf Technik gemacht. Anstatt wie Luhmann zu sagen ES GIBT SYSTEME, sage ich, dass ich herstelle, und dabei Werkzeuge verwende, die ich herstelle (toolmaking animal).

    WENN ich Computer als hergestellte Gegenstände betrachte, dann kann ich mich fragen, was für einen Zweck sie haben. Wenn ich Computer als kommunikative Ereignis begreife, kann ich diese Frage natürlich nicht stellen.

    Als hergestellte Gegenstände haben Computer ganz genau einen Zweck: Sie müssen einen bedingten Zustand annehmen, den ich symbolisch interpretieren kann.
    Sag mir eine andere Funktion des Computers, der hergestellt wurde.

    WENN der Computer ein kommunikatives Ereignis ist, dann verändert er die Gesellschaft, hilft der Demokratie oder dient der Unterdrückung oder macht Kinder krank pipapo…

    Ich glaube, das ist keine linguistische Frage, sondern eine praktisch weltanschauliche. Und in Deiner DUALEN Konzeption stellt sich die Frage, WELCHE Dualitäten (Differenzen) gewählt werden: Draw a distinction !

    • Valonqua  On May 4, 2014 at 2:17 PM

      1) Ist Dein Verständnis von “Form/Material” nicht einfach eine historisch- materialistisch aufgepeppte Variante einer sehr alten hylemorphischen Philosophie-Tradition [-> Aristoteles, siehe: https://de.wikipedia.org/wiki/Form_(Philosophie)%5D?
      Deine Perspektive scheint mir jedenfalls “sehr” traditionell zu sein.

      Abgesehen davon erinnert Dein Ansatz an eine Orientierung an der Wortgruppe: “etwas herstellen aus etwas”:
      * etwas = (die entstehende) Form
      * herstellen (Tun, Arbeit oder Operation)
      * Materie / Material = aus etwas

      Oder kürzer: Form = Hergestelltes, Material = Herstellbares

      Da z.B. Mediales komplett ausgeklammert werden soll, geht es dann bei der “Form” nur um “physisch Tangibles”. Und das scheint mir doch völlig “klassisch realistisch / materialistisch” zu sein? Oder täusche ich mich?

      Offen gestanden scheint mir das in eine alltagsrealistische Position einzumünden, die m.E. zu einem zeitgemäßen Begriff von “Materie / Materialität” keinen Beitrag zu leisten vermag.

      Das heißt “nicht”, daß die Frage bei medien- und differenzorientierten Ansätzen nicht sinnvoll ist. Nein, das ist sogar eine sehr gute und sinnvolle Frage! Aber die Antwort müßte doch über die philosophische Tradition bzw. ein entsprechendes Alltagsverständnis hinausgehen, um heutzutage noch überzeugen zu können.

      2) Zudem frage ich mich, ob Du nicht einfach wieder beim altbekannten “Idealismus-Materialismus-Kontrast” landest, was dann erklären würde, warum Du gerne Psychisches, Soziales und Mediales einfach als (wohl idealistisches) “Geschwafel” abtust.
      Freilich sollte klar sein, daß z.B. die marxistische Tradition bei den Themen “Kommunikation”, “Wissen”, “Medien und ihre Funktionsweise”, u.ä. oftmals ziemlich versagt hat. Da kam (vielleicht mit Ausnahme eines kulturalistischen Ansatzes wie bei Gramsci) doch wenig raus, was insbesondere dem Primat des Materialistischen / Ökonomischen geschuldet war.

      Gleichwohl müssen Phänomene wie Kommunikation, Denken, Wissen und Medien(gebrauch) auch in materialistisch ansetzenden Approaches als “funktionierend vorausgesetzt” werden – ansonsten könnte man diese Themen noch nicht einmal als “idealistisch” verteufeln :-)

      Dein technisch orientierter Ansatz teilt, imo, haargenau dasselbe Problem.

      3) Mein Gesamteindruck ist, daß Deine Technik-Kybernetik eine Art “materialistische Philosophie” repräsentiert, die sich technischen Funktionsweisen widmet. Das kann man – definitiv! – tun.

      Nur: Sind “Techniker” (Software- und Hardware-Entwickler, Maschinenbauer, etc.) dafür wohl kaum die Zielgruppe, weil Deine Argumentationen bspw. für praktische technische Konstruktionsprozesse zu allgemein gehalten sind.

      Sozial-, Geistes- und Naturwissenschaftler fallen auch raus.

      Wer bleibt dann noch als “Zielgruppe” für Deinen Ansatz übrig? (Technik-)Philosophen?

      Gruß
      Peter

      • kybernetiks  On May 4, 2014 at 4:03 PM

        “Wer bleibt dann noch als “Zielgruppe” für Deinen Ansatz übrig? (Technik-)Philosophen?”

        gute Frage – und ich frage mich, wozu ich ein Zielpublikum brauchen könnte, was würde mir das nützen oder helfen?

        Mich interessiert eine adäquate Beschreibung (ein Verständnis dia logos). Kybernetik gibt mir dazu die Sprache, die ich als solche auch bewusst reflektieren kann. Dabei ist für mich gleichgültig, wer (welches Publikum) dieses Interesse VORAB teilt. Ich gehe viel mehr davon aus, dass diese Betrachtung für die einen alter Schnee ist, die könnens dann weglegen, und für die andern neu, so dass sie noch gar nicht wissen lönnen, ob es sie interessiert.

        Kybernetik ist kein Erfolgsmodell. Ich bedaure, dass sich niemand für Kybernetik interessiert, aber das kann ich nicht ändern. Natürlich könnte ich sie auch weglegen, aber dann würde ich mich weglegen. Mir gefällt Kybernetik, und ich finde sie modern und sinnvoll – ganz unabhängig von Philosophie und anderen wissen schaftlichen Traditionen – nicht ganz zufällig heisst ja dieser Blog “KYBERENTIKS”.

        Mir ist nicht klar, ob Du MEINE Kybernetik kritisierst oder die Kybernetik ingsgesamt, weil ich von einem allfälligen Unterschied bei Dir nichts lesen kann. Bei mir kommt es so an, als ob Du die Kybernetik als Denkweise ziemlich generell verwerfen würdest.

  • Valonqua  On May 4, 2014 at 2:34 PM

    Nachtrag:
    “Anstatt wie Luhmann zu sagen ES GIBT SYSTEME”

    Dieser Unsinn hält sich doch hartnäckig. Dazu nur so viel:

    1) Ausgangspunkt ist: “Operieren” (“operantes sumus”). Und dabei läuft der Unterschied “Operationszusammenhang”, der dann als “System” bezeichnet werden kann, und “Nicht-Operationszusammenhang”, der als “Umwelt” gilt, mit.

    Überlegung: Operationen können “nicht” in der Umwelt anschließen. Denn, erstens, ist unklar, “woran”? Und, zweitens, würde die ganze System-Umwelt-“Differenz” kollabieren. Und was dann?

    D.h. diese sog. Minimalontologisierung Luhmanns ist “kein” Ausgangspunkt im Sinne einer Voraus-Setzung, sondern eine “Schlußfolgerung”, die sich aus dem
    Operieren ergibt.

    2) Die Grundüberlegung ist dabei schon ca. vier Jahrhunderte alt und wird i.a. Descartes attribuiert: Man kann absolut alles anzweifeln, aber z.B. nicht, daß man operiert (zweifelt oder sonst irgendwie denkt, redet, etc.), “während” man gerade operiert (zweifelt oder sonst irgendwie denkt, redet, etc.).

    Ergo: “Ich denke”, also bin ich ein Operationszusammenhang, also ein “System”.

    3) Freilich:
    a) Heutzutage ist das “Ich” wohl nur noch als “Marker” in einem hochdynamischen Ereignsiszusammenhang überzeugend.

    b) Und “bin” kann beim Prozessieren von Unterscheidungen auch nicht auf eine “ontologisch abgesicherte” Existenz verweisen.

    ~Peter

    • kybernetiks  On May 4, 2014 at 4:16 PM

      ähhh … ja, ok. Ich sag nichts mehr über Luhmann.

      Und zur Differenz beziehe ich mich auf mein Verständnis von G. Specer-Brown via D. Baecker. Es geht mir nicht um die Differenz System/umwelt sondern um die Differenz, die ich mit “Material” bezeichne, die Du schon wieder mit Materie in Verbindung bringst, obwohl sie damit nicht im entferntesten etwa zu tun hat.

      Die Unterscheidung bezieht sich auf eine Operation, bei welcher ein geformter Gegenstand entsteht.

      Dabei ist gleichgültig, was es sonst noch gibt auf der Welt und auch wer andere Unterscheidungen macht oder wichtig findet. Draw a distinction! heisst für mich, dass nicht gegeben ist welche Unterscheidung ich machen soll. Ich wähle die Unterscheidung, deren eine Seite ich mit Material markiere, wodurch die nichtmarkierte Seite als Form erscheint.

      Ich kann so über allerlei Gegenstände gut sprechen. Etwa über den Computer, den ich gerade verwende. Er erscheint mir durch diese Unterscheidung als Gegenstand, dessen Funktionsweise ich kybernetisch begreifen kann.

      • Valonqua  On May 5, 2014 at 12:33 PM

        Hallo Rolf,

        jetzt nur schnell (I’m in a hurry):
        “Bei mir kommt es so an, als ob Du die Kybernetik als Denkweise ziemlich generell verwerfen würdest.”
        Nein, ich verwerfe weder die Kybernetik i.a. (dazu kenne ich sie gar nicht gut genug, um mir ein abschließendes Urteil erlauben zu können) noch Deine spezielle technikkybernetische Perspektive i.b. (die ich auch nicht genau genug verstehe).

        Es gibt aber einige Dinge, die mir kognitives Bauchweh bereiten:

        1) Manchmal glaube ich einfach, daß eine Att “idiosynkratischer Gaul” mit Dir durchgeht, z.B. bei Deiner Programmiersicht, sensu: “ich – mein Pascal – mein Computer”. Ich denke einfach, daß man Programmierung weitaus profunder und komplexer konzeptualisieren kann – und das auch tun sollte! Idiosynkrasien dagegen zu “generalisieren” leuchtet mir nicht ein (analoge Beispiele: privates Tagebuchschreiben ohne jegliche soziale Anschlüsse als “allgemeines Modell des Schreibens” oder die Erfindung einer “Privatsprache” als allgemeines Modell des Sprechens – aber: selbst hier spielt in beiden Fällen Soziales rein. Stichworte: Intertextualität, memory function, assoziative Netzwerke, etc. ).

        2) Deine Vermeidung des Sozialen und Medialen ist – aus meiner Sicht – nicht sinnvoll, weil das viel zu vieles ausschließt. Aber vielleicht unterscheiden wir uns hier definitiv: Mich interessiert eine “allgemeine” Technik-Theorie, die sowohl Sozial-Mediales als auch Steuerungstechnisches zu koppeln weiß (in diesem Sinne immer “dual” ansetzt!).
        Warum? Technik-Konstruktion, -Gebrauch und -Evolution lassen sich meiner Ansicht nach ganz ohne jeglichen Rekurs auf “technische” Kommunikation (mit allem, was dazu gehört: Handeln, Verhalten, Wissen, Erwartungsstrukturen, etc.) kaum erfassen – impllizit läuft der Kram einfach “stets” mit und affiziert auch Technisches (so zumindest meine These)!

        Diese Dual-Perspektive liegt Deiner Computer-Sicht zugrunde im Sinne von einer “symbolischen Interpretation” von steuerbaren Zuständen einer Maschine. Auf die “symbolische Interpretierbarkeit” verweist Du sogar selbst, aber Du scheinst keinerlei Konsequenzen daraus zu ziehen.

        3) Du mischst m.E. auch kunterbunt die Perspektiven:
        * radikalkonstruktivistische Beobachtungstheorie
        * a little bit of LoF
        * HistoMat / marxistische Sicht
        * Kybernetik
        und
        wohl auch 0815-Alltagsrealismus / -Materialismus, denn Dein Material-Form-Verständnis braucht das sinnlich Tangible, um dieses Verständnis letztlich zu “konkretisieren”, so zumindest meine Vermutung (in unseren Diskussionen um “Materielles” bediente das dann auch eine Ent-Tautologisierungsfunktion -> Materielles = Artefaktisches = Formbares = Materielles).

        Zu “Form / Material” gäbe es noch einiges zu sagen, z.B. daß diese Unterscheidung “zwei” Unterscheidungen beinhaltet und daß auch manche Bielefelder nicht verstehen, daß bspw. die “Form – Medium”-Unterscheidung gar nicht funktioniert, denn Formen können sich nicht differentiell auf ein Medium beziehen. Das ist quasi ein Kategorienfehler :-)
        Dazu aber mehr die nächsten Tage.

        4) Manchmal bleibt mir auch einiges zu oberflächlich, z.B. Deine Sicht des Internets als “Protokolle”. Das lernt man – en détail (!) – im 1./2.-Semester in Informatik. Und das verweist vielleicht auch auf ein Problem Deiner Technik-Kybernetik. Diese zielt zwar auf die Erklärung einer technischen Funktionsweise ab, aber Deine Erklärungsmechanismen sind mitunter so allgemein gehalten, daß das für jede konkrete Konstruktion untauglich ist. Daher ist das für Techniker auch nicht mehr als allgemeine Technik-Reflexion, vulgo: “Philosophie” – und damit uninteressanter “noise” [notabene: ich sehe das anders, aber ich habe u.a. auch ein Herz für Philosophie :-)].

        5) Was dann “komplett” meinen Horizont übersteigt, ist, wie Du bei Ausklammerung der Sozialdimension -> in toto <-, eine reine auf technische Reflexion abzielende Theorie noch als eine Art "Soziologie" auffassen kannst (siehe z.B. Deinen Wirth-Blogpost).

        Das ist ungefähr so, als wäre ein absoluter Fußballhasser ein begeisterter Fan von Real Madrid (und ich meine die Fußball- und nicht die Basketballabteilung!) :-o

        ~Peter

        • kybernetiks  On May 5, 2014 at 1:18 PM

          ok, Peter, wenn Dir MEIN Computer nicht gefällt, können wir über DEINEN reden, oder über irgendeinen, den ich auf den Tisch stellen kann. Mir scheint, dass Du aber lieber gar nicht über solche Dinger sprichst, sie scheinen Dir ein Greuel zu sein, weil Du sie anfassen kannst.
          Ich lasse gerne Marx und LoF und Kybernetik auch noch weg, möchte mich aber mit Dir darüber unterhalten, wie wir über einen Computer sprechen können, falls wir das können.
          Können wir uns beispielsweise darauf einigen, dass ein bestimmter Computer (zB der, der auf Deinem Tisch steht), eine bestimmte Form hat? rechteckig ist, aus ein paar Materialien, Metallen und Kunststoffen besteht?
          Oder geht das nicht, weil wir dabei irgendwelche soziale Übereinkünfte der Sprachverwendung verwenden, ohne die wir über Computer gar nichts sagen könnten?
          Können wir uns darauf einigen, dass ich meinen Computer programmieren kann und dass ich dabei die Programmiersprache Pascal verwende? Ich verstehe nicht, inwiefern diese Aussage zu Problemen führen könntel, wenn wir irgendein anderes Thema im Bereich der Programmierung besprechen, also wenn wir etwa über ein multinationales Softwarehaus reden.

          Mich interessiert, was Du etwas über die Funktion und die Funktionsweise des anfassbaren Dings auf Deinem Tisch, das ich als Computer bezeichne, sagen kannst.

          Ich kann mir auch vorstellen, dass jemand aufgrund seiner Theorie weiss, dass jedes Gespräch über Geräte zu ganz falschen Vorstellungen führt und deshalb unbedingt vermieden werden muss. Das würde ich als Tabuiesierung bezeichnen. Bei Foucault habe ich gelesen, dass solche Tabuisierungen sehr wichtig sind, weil sie Diskurse freisetzen, die ohne die Tabus kaum zustande kommen würden … sein Beispiel war die Sexualität, über die heute mehr gesprochen wird als über jedes technische Artefakt

Feedback ist erwünscht!

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: