Diskussion:Objekt und Klasse, Gegenstand und Begriff (CP)

Aus Philo Wiki
Version vom 19. Januar 2011, 10:30 Uhr von Anna (Diskussion | Beiträge) (Katzen und Autos: division)
Wechseln zu:Navigation, Suche

Nützliche Fiktion in der Softwareentwicklung

"Ein Gegenstand, der einem Urteil unterzogen wird, ist nicht einfach die Realisierung eines Typs. Für die objekt-orientierte Analyse kann das besagte Fahrzeug als modelliertes Objekt einzig und allein der angegebenen Klasse angehören. Alle relevanten Charakteristika liegen auf ihrer Seite. Urteile finden hier keinen Anhaltspunkt. In ihnen geht es um die Abschätzung, inwieweit sich bestimmte Charakteristika von Gegenständen behaupten lassen. Dazu muß es experimentelle Handlungsfreiheit geben, ein Ausprobieren von Beschreibungen und Rückkoppelungen zwischen Subjekt und Prädikat. Die Ausprägung eines Attributes im Objekt kann hingegen keine Rückwirkung auf die Definition der Klasse haben." (H.H.)

Anbei der Versuch einer Reformulierung mehr unter der Perspektive der Softwareentwicklung und am Ende vielleicht einer Zusatzüberlegung: Die objekt-orientierte Analyse ist eine menschliche Praxis. Dagegen stehen die automatisierten Abläufe im Computer. Im ersten Fall sind Urteile unabdingbar, denn man muss rausfinden, was als Objekt welchen Typs modelliert wird. Der Designprozess erfordert und läuft parallel mit dem Erkenntnisprozess. Da sind wir auf der heuristischen Ebene. Verschiedene "Rahmungen" werden ausprobiert für ein "schönes Design". Darüber hat man auch in der Informatik geschrieben unter der Überschrift "Design Is a Sloppy Process (Even If it Produces a Tidy Result)":

"The finished software design should look well organized and clean, but the process used to develop the design isn't nearly as tidy as the end result.
Design is sloppy because you take many false steps and go down many blind alleys- you make a lot of mistakes. Indeed, making mistakes is the point of design-it's cheaper to make mistakes and correct designs than it would be to make the same mistakes, recognize them after coding, and have to correct full-blown code. Design is sloppy because a good solution is often only subtly different from a poor one."

Aber wir können die Dinge glätten: "We will never find a process that allows us to design software in a perfectly rational way. The good news is that we can fake it. We can present our system to others as if we had been rational designers and it pays to pretend do so during development and maintenance." Warum man das tun soll, wurde auch argumentiert.

Dies (die Glättung am Ende) ist ein Grund, warum man leicht Designprozess und Resultat verwechseln und fälschlicherweise annehmen kann, Softwareentwicklerinnen handelten bei der objektorientierten Analyse (wohlgemerkt: ein Prozess in der Gesellschaft) wie rationale Agenten:

"In Grundsatzdiskussionen werden Typen und Begriffe, Extensionen und Intensionen, Mechanik und Überlegung, gerne gegeneinander ausgespielt. Das Bild, das sich aus der gegenwärtigen Diskussion ergibt, ist differenzierter. Objekte und Gegenstände, bzw. Klassen und Begriffe, stammen aus unterschiedlichen Problembereichen. Eine Abstraktionsstufe höher ist die Differenz auflösbar. Die meisten gesellschaftlichen Prozesse enthalten jedoch eine Mischung aus Steuerung und Argumentation." (H.H.)

Ordnung im Code?

"Ironischerweise bedient sich die objektorientierte Analyse also eines antiken Schemas, dessen Plausibilität zur Modellierung des Erkenntnisvorgangs vielfach angezweifelt worden ist. Aktuelle Konzeptionen vertreten die Auffassung, daß sich die Orientierung in der Welt, genau gesagt die uns zugängliche Welt selber, zusammen mit dem Begriffsgebrauch entwickelt. Das heißt: in der sprachlich vermittelten Strukturierung der Umwelt an Hand von Aussagesätzen. Die Prioritäten Platons werden dabei umgedreht: am Anfang steht kein überzeitlicher Typus, sondern der im diskursiven Prozeß verankerte Entwurf von Ordnungsstrukturen." (H.H.)

Im Prozess der objekt-orientierten Analyse bedient man sich dem antiken Schema. Was interessant ist: Dieses Schema tritt nicht auf mit dem Anspruch, eine adäquate Beschreibung der Funktionsweise unseres Erkenntnisprozesses zu sein, sondern stützt sich auf die Einfachheit ihrer Resultate. So strukturierter Programmcode und Dokumentationsmaterial hat eine höhere Chance, verwaltbar und - was hätte Platon dazu gesagt? - veränderbar zu bleiben. Er ist überblickbar (hier sind wir wieder beim Sehen), funktioniert nach wohldefinierten Hierarchien und birgt keine Überraschungen - der Idee nach. Die Praxis im Umgang mit den Gegenständen der Welt sieht anders aus, das bleibt keiner Programmiererin erspart und man hat sich mit iterativen Methoden mittlerweile daran gewöhnt. Man erstellt Proto-Typen.

Unser Code-Beispiel vom Buch in Inform7 ist ein typisches Schulbeispiel: Es zeigt nur das Resultat und stellt den heuristischen (und diskursiven) Prozess, in dem das Verhalten und die Charakteristika des Gegenstandes in steuerbare Objekte nachgehamt werden, in den Schatten - da hilft auch der Prosa-Stil der Programmiersprache nicht. Doch das ist eine Pointe des Programmierens: Das Matching von Prozessen und Gegenständen aus unserer Lebenswelt in Abläufe aus der Objektwelt, die dann in unsere Lebenswelt rückwirken und bestimmten Zwecken dienen.

Es gibt also mindestens zweierlei Nachahmungen in objekt-orientierter Softwareentwicklung: Die Nachahmung der Charakteristika des Gegenstandes (von unserer Lebenswelt in die Welt der Objekte) und die Nachahmung des antiken Schemas einer rationalen und systematischen Top-Down-Methode für Dokumentations- und Demonstrationszwecke obwohl man weiß dass man damit keinen Tag durchkommen wird. Durch letztere Nachahmung wird ein Haufen von Symbolketten leichter versteh- und diskutierbar. Die Idee ist sozuagen Nützliche Fiktion. --Andyk 00:43, 6. Jan. 2011 (UTC)

Es sind eigentlich drei Betrachtungsweisen im Spiel:
  • Erkenntnisprozesse
  • platonische Voraussetzungen für Erkenntnisprozesse
  • die nützliche Praxis, das Ergebnis komplizierter Erkenntnisprozesse geordnet darstellen zu können
Am Beispiel der Pferde Badious gehe ich ein wenig näher darauf ein. Er bedient sich aller drei Motive. Wir brauchen (in diesem Fall) Zeichnungen, um den Unterschied zwischen der Idee und der Instanz zu etablieren -- und wir brauchen die Idee, damit sie sich zeichnen läßt. --anna 08:41, 14. Jan. 2011 (UTC)

Katzen und Autos

Wir hatten während der Vorlesungseinheit das Beispiel des Kindes, das darauf trainiert wird, nicht nur zu Katzen, sondern auch zu Autos und zum Donner "Katze" zu sagen. Dieses Training ließe sich auf verschiedenen "Intensitätsstufen" durchführen.

  • Man könnte einfach immer, wenn man auf eine Katze, ein Auto oder ein Donnergeräusch referieren will, "Katze" sagen. Das Resultat wäre aber nicht wesentlich anders als unsere homonyme Verwendung des Wortes "Bank".
  • oder man versucht, Ähnlichkeiten zwischen Katzen, Autos und Donner hervorzuheben und zu verweben und Unterschiede zwischen diesen Dingen zu marginalisieren, damit das Kind diese Dinge für möglichst ähnlich hält.

Ich glaube aber, dass das Kind in beiden Fällen dieser "begrifflichen Trumanshow" weder einen besonderen Schaden davontragen würde, noch besondere Orientierungsschwierigkeiten haben würde, solange die Umgebung die Show in einer 'konstanten' Intensität aufrechthält. Das Kind wird aber möglicherweise fragen, welche Unterschiede es zwischen den Dingen gibt, die wir Katze, Auto und Donner nennen und wenn es das tut, dann wird es auch Methoden finden, diese drei Phänomene zu unterscheiden. (Dieses Nachfragen muss aber nicht geschehen: nicht jedes Kind (in unserer Begriffswelt) lernt alle Katzenrassen zu unterscheiden.) Verstörend wird diese Show nur dann, wenn die Umwelt alle möglichen Unterscheidungsmerkmale, die das Kind findet, zurückweist. Das stellt aber auch eine Erhöhung der Intensität der Täuschung dar.

Ich möchte auch noch ein Beispiel dafür bringen, dass Kinder solche ungewöhnlichen Begriffsschemata nicht nur theoretisch auf konsistente Weise anwenden können: Die Eltern eines Freundes haben mir berichtet, dass dieser als Kleinkind, das gerade angefangen hatte zu sprechen, auf einmal nicht nur ihre Hauskatze, sondern auch Autos als "Katzi" bezeichnet hat. Erst später ist den Eltern klargeworden, dass das Kind ausschließlich Jaguar-Modelle so bezeichnet. Das Kind hat dabei auf natürliche Art und Weise, das weiche Haustier und das tonnenschwere Metalltrum draußen auf der Straße gleich benannt und konnte auch verschiedene Arten von Metalltrümmern auf der Straße besser als die Eltern unterscheiden.

Ich glaube, dass der Aufbau der Begriffswelt, mit der wir leben, nicht so strikt vorgegeben ist, dass ein Kind, das gewisse Unterscheidungen, die wir machen, (Katze, Auto, Donner) nicht lernt, ein armes oder verstörtes Kind wäre. Nicht jedes Kind interessiert sich für Katzenrassen, Automarken oder Komponisten klassischer Musik und lernt deshalb nicht sie zu unterscheiden. Welche Unterscheidungen wichtig sind und gelernt werden sollen ist abhängig von der Gesellschaft, in der das Kind aufwächst. Erst in diesem Kontext ist ein Kind, das auf der Autobahn "Katzen" streicheln möchte, arm und gefährdet (im obigen Beispiel hat das Kind die Jaguar-Katzen nicht gestreichelt).

Dass unsere Begriffswelt nicht so statisch ist, sehen ich vorallem in den Wissenschaften. Dort entstehen neue Begriffe aus einem spezifischen Interesse an gewissen Aspekten eines Phänomens - also unter Ausblendung von vielen anderen Aspekten. Paradigma entstehen, bestehen und werden später umgestürzt durch neue Sichtweise, die ganz andere Aspekte fokussieren. An jedem Punkt der Entwicklung einer Wissenschaft wird es gute Gründe für das jeweilige Vorgehen (für das jeweilige Interesse) geben, aber die Gesamtentwicklung scheint doch hochgradig unvorhersagbar. --PW 09:25, 16. Jan. 2011 (UTC)


Ich stimme zu. Das Beispiel Katzen/Autos/Donner kann man dazu verwenden, die Plastizität des sozialen Gebrauchs von Worten zu illustrieren. Welche Phänomene wir zusammen gruppieren ist nicht vorbestimmt.

Im Zusammenhang der Vorlesung ist das allerdings eine Seitenstraße, auf die ich mich eingelassen habe. Denn man kann alles hier Gesagte genau als Bestätigung meiner anfänglichen Absicht nehmen. Es ging darum, dass Begriffe -- im Unterschied zu Klassen -- eine gewisse Plastizität besitzen. Dass wir also in der Lage sind, getunte Peugeots entweder als Peugeots zu qualifizieren, oder ihnen diese Eigenschaft nicht zuzuschreiben. Während zur Erfassung durch den Typenschein die entsprechenden Modifikationen vorgesehen sein müssen.

Dann ist die Pointe, dass das Kind "Katzi" sagen kann und dabei Ähnlichkeiten zwischen Tieren und Autos aufruft, dass diese Ähnlichkeiten aber nicht durch ein Designprinzip (sei es in der "Ordnung des Seins", sei es in einer Fabrik) abgesichert sind. "Das ist ein Nazi, der kann nicht hunderttausende Chinesen retten."

<root> <div class='right_side_navigation' style='width:156px;position:fixed;bottom:50px;background-color:#efefef;border-color:#bbbbbb;border-width:1pt;border-style:solid;padding:1px 2px;font-size:8pt;text-align:center;filter:alpha(opacity=90);-moz-opacity: 0.9;opacity: 0.9;'> <comment><!---------------------------------------------------------------------------------------------------------------> </comment> Übersicht<br /> Hauptseite<br /> Letzte Änderungen<br /> Alle Seiten

<hr />

Vo 01. 08.10.10<br /> Bildwelten (CP)<br /> Vo 02. 15.10.10<br /> Vo 03. 22.10.10<br /> Vo 04. 29.10.10<br /> Transkript 2<br /> Vo 05. 05.11.10<br /> Vo 06. 12.11.10<br /> Vo 07. 19.11.10<br /> Vo 08. 03.12.10<br /> Überleitung/D<br /> Vo 09. 10.12.10<br /> Objektorientierung/D<br /> Vo 10. 17.12.10<br /> Vo 11. 14.01.11<br /> Vo 12. 21.01.11<br /> Vo 13. 28.01.11<br />

<hr />

Hilfe<br /> Wiki Hilfe<br /> Infos zur Vorlage<br /> <comment><!---------------------------------------------------------------------------------------------------------------> </comment></div><ignore><includeonly></ignore><ignore></includeonly></ignore></root>