Diskussion:SZ §17: Verweisung und Zeichen (Code)

Aus Philo Wiki
Version vom 7. Mai 2008, 01:36 Uhr von Andyk (Diskussion | Beiträge) (Wäre Husserl Informatiker geworden?: Denke ja.)
Wechseln zu:Navigation, Suche

Unterschied zwischen pixelbasierter und vektorbasierter Grafik

Man unterscheidet bei der Sicherung und Darstellung von grafischen Daten zwischen zwei gebräuchlichen Methoden: pixelbasierte Grafik und vektororientierte Grafik. Ein bekanntes pixelbasiertes Dateiformat wie z.B. Bitmap (.bmp) enthält grafische Informationen über die einfache serielle Angabe von Pixelfarben, die, wenn sie in einer angegebenen Breite und Höhe stur nebeneinander dargestellt werden, ein komplettes Bild ergeben.

Vektororientierte Formate wie z.B. .pdf arbeiten mit einer ganz anderen Technik zur Darstellung ihrer Inhalte. Die Zeichnungen und Buchstaben werden hier - vereinfachend ausgedrückt - über die Angabe von mathematischen Vektoren festgehalten. Eine Linie z.B. ist hier nicht bloß das emergente Ergebnis unzähliger, relativ ungeordneter, zusammengefügter Pixelreihen, sondern wird über die mathematische Koordinatenangabe fassbar und verliert, soweit das leider einzig geläufige Merkmal, bei Skalierungen logischerweise seine Qualität nicht. Während nämlich bei der pixelorientieten Grafik, die mit quasi "realen" Pixelposition arbeitet, bei Skalierungen also mit Extra- bzw. Interpolationen "schummeln" muss und z.B. unbekannte Pixelstellen einfach durch Dopplungen bekannter Pixelstellen simuliert, wird bei der vektororientierten Grafik ja bloß auf die Vektoren mit verschiedenen Dimensionen zurückgegriffen, deren mathematische Manipulierbarkeit natürlich keinen negativen Einfluss auf die Bildqualität hat.

Mit etwas Verständnis wird natürlich jedem sofort klar werden, dass die meisten Fotos (z.B. Familienfotos) nun aber nicht einfach durch eine Vektorisierung darstellbar, man könnte manchmal auch sagen simplifizierbar, sind, bzw. dass sie zwar darstellbar wären, es für diese Art der Anwendung aber einfach nicht sinnvoll wäre, es sei denn, es handelte sich um ein Foto von kubistischen oder gegebenenfalls noch futuristischen Gemälden. Die diskrete Verteilung von Farben ließe höchstens in Gebieten mit einer großen Ansammlung ähnlicher oder gar gleicher Farben eine effiziente Nutzung von geometrischen und funktionalen Darstellungsmethoden zu. (Auf der Zusammenfassung ähnlicher Farbgebiete beruht übrigens ein Großteil der Komprimierungsalgorithmen im Grafikbereich --> z.B. Cluster bei .jpg)

Interessant werden diese theoretischen Darstellungsansätze bei einer Symbiose der beiden Grundelemente. Bei modernen Videodatenformaten etwa werden funktionelle (oft stetige) Einheiten, die jeweils eine ganze pixelorientierte Einheit darstellen, vektorisierbar und einzeln ansprechbar gemacht. Beispiel:

Bei der Fernsehübertragung eines Fußballspieles könnte, käme ein modernes Videoformat zum Einsatz, der Fußball aus dem Spiel komplett herausgeschnitten werden. Man würde bloß noch ein paar Fußballspieler sehen, die wie wild über das Feld laufen, manchmal könnte man, vielleicht bei einem Freudentanz, erkennen, dass ein Tor geschossen wurde. Ebenso könnte man den Fußbal alleine einblenden, ohne die Darstellung des Tores, in das der Ball hineinbefördert werden soll, es käme allerdings mit Sicherheit keine große Spannung auf.

Natürlich kommen diese Dinge bei 3d-Animationen längst zum Einsatz. Figuren sind im virtuellen Raum beweglich und werden zu Welten und Dingen in Beziehung gesetzt.--Richardd 18:14, 6. Mai 2008 (CEST)


Paradigmenwechsel in der Programmierung

Aus dem oben Erwähnten lässt sich mit Bestimmtheit eine Tendenz zur "Objektorientierung" ablesen. Während, wie schon in einigen Postings des vorigen Semesters gezeigt wurde, der Übergang von der seriellen Programmierung zur objektorientieren Programmierung von Sprachgeneration zu Sprachgeneration immer bindender wird, ist vielleicht erst an dieser Stelle die eigentliche Tendenz dieser Entwicklung erkennbar. Der Programmierer befreit sich von einer Serialität in der Programmierung, die jeder Intuition und Modularität, zumindest in groben Dingen, widerstreitet. Erst in einer objektorientierten Sprache lassen sich Zusammenhänge zwischen Entitäten nachvollziehbar darstellen und verwenden. Man spricht von Vererbung, Polymorphie, Schablonen, Ableitungen, Entitäten, .... Ein spaßiges Merkmal ist, dass jedes Objekt seinen eigenen Dekonstruktor besitzt, der die "Spuren der Karteileiche" aus dem Arbeitsspeicher beseitigt(wenn auch nicht in allen Sprachen). In der objektorientierten Sprache entstehen komplexe Verknüpfungen und Verweisungen, die, wenn auch die Klassendefinition oft allzu wissenschaftlich aussehen und an Gattungen und Spezifikationen erinnern.

Beispiele in Pseudocode:

Serielle Programmierung

main() { print("Hansi sagt Servus"); }

Auf dem Bildschirm erscheint: Hansi sagt Servus

Objektorientierte Programmierung

Klasse Mensch {

Wert Name;

Wert Alter;

Wert Haarfarbe;


Funktion Grüßen(Text);

Funktion Sprechen(Text);

Funktion Singen(Text);

}

Mensch Funktion Singen(Text) { Print(Text); }

Mensch Funktion Sprechen(Text) { Print(Name + "sagt" + Text); }

main() {

Erzeuge Mensch Hansi;

Hansi.Name= Hansi;

Hansi.Alter= 24;

Hansi.Haarfarbe= blau;

Hansi soll Grüßen(Servus); }

Auf dem Bildschirm erscheint: Hansi sagt Servus


Was auf den ersten Blick eindeutig als unnötiger Auffwand wirkt trägt bei richtigen Projekten Früchte, wenn es darum geht Modularität und Teamarbeit zu pflegen. Die objektorientierte Programmierung stellt die Zusammenhänge und Verweisungen in den Vordergrund, das hat natürlich so betrachtet nicht viel mit Heidegger zu tun, aber es zeigt eine Tendenz zur kontextbezogenen Alltagssprache. Ebenso das Überladen von Funktionen und Operatoren, also das bewusste erzeugen von Mehrfachbedeutungen, quasi Homonymen, weist auf diese Tendenz hin.--Richardd 18:14, 6. Mai 2008 (CEST)


Wäre Husserl Informatiker geworden?

Ernst Cassirers Ansatz in "Substanzbegriff und Funktionsbegriff" vermag diese Frage wohl besser zu verdeutlichen. Anstatt einer punktuellen Behandlung der Begriffe, die meint deren Substanz greifen zu können, wird es nach den phänomenologischen Erkenntnissen Husserls eher nötig sein auf Relationen und Funktionen zurückzugreifen, die uns in den Zusammenhängen der Begriffe die Welt eröffnen. Eingedenk z.B. der vektorbasierten Grafik, wie ich sie oben äußerst oberflächlich und mit Sicherheit verfälscht dargestellt habe, ist der phänomenologische Ansatz leicht nachvollziehbar mit Husserls mathematischer Ausbildung verbunden. Husserl war Mathematiker, wozu also Informatiker? Über Spezifikationen ließe sich jetzt, Folgen mancher verfehlter Lebensplanung antizipierend, nicht streiten.--Richardd 18:14, 6. Mai 2008 (CEST)

Auf die Frage, warum Husserl heute vielleicht doch lieber Mathematiker geblieben wäre, würde mir spontan Folgendes einfallen: Wenn man annimmt, dass die Informatik im Gegensatz zur Mathematik mittlererweile im Alltag/in der Lebenswelt/im Bewandtniszusammenhang eine sehr große Rolle spielt (Wikis, Second Life, Blogs, Chats, E-Mail, Vektorgrafiken, MP3, MPEG4,...) dürfte das ziemlich genau die späte Intention Husserls treffen, die Wissenschaft in die Lebenswelt zu integrieren. Das Tolle an der Informatik im Unterschied zur Mathematik ist in diesem Zusammenhang, dass man die Kalküle und Zeichenmanipluationen, wenn man so will, zum Leben erwecken kann. Die Funktionen in der Mathematik sind noch nicht verselbständigt - es sind, würde ich sagen, (nur) Strukturen in unserer Vorstellung. Die performativen Züge der Informatik, dass sich etwas selbständig vollzieht, verbunden mit der Möglichkeit, diese Tätigkeiten im Alltag für sinnvoll zu erachten (z.B. um miteinander zu kommunizieren), könnten eine Erklärung sein für die schnelle Aufnahme der Informatik in fast alle Lebensbereiche. Algorithmen gibt es zwar auch schon in der Mathematik, doch die Implementierung solcher Algorithmen für z.B. Zeichenmanipulation beginnt erst mit der Informatik. --Andyk 01:36, 7. Mai 2008 (CEST)