Ist es ein fairer Vergleich zu sagen, dass
Personen, die meinen C wäre eine vollkommen ausreichende Programmiersprache um objektorientiert zu programmieren, auch glauben, dass die beste Art 1000 x 1000 zu rechnen, die ist ein Gitter von 1000 mal 1000 Einheiten zu zeichnen und dann alle Quadrate darin zu zählen.?
Der Gedanke ist mir gerade beim lesen von "Gödel, Escher, Bach" gekommen. Der 2. Teil des Vergleiches stammt aus dem Buch.
Automatically imported comment
ReplyDeleteAuthor: Robert
Date: Saturday 03. January 2009
Stimme absolut zu. Wobei die Frage wäre, womit dann das objektorientierte Programmieren in TurboPascal gleichsetzen ließe. Darin hab ich 1993 mal einen Kurs gemacht. Antwort?
Automatically imported comment
ReplyDeleteAuthor: Alexander Schremmer
Date: Sunday 04. January 2009
Ist dir gobject (http://de.wikipedia.org/wiki/GObject ) bekannt, Dirk?
Automatically imported comment
ReplyDeleteAuthor: dmeister
Date: Sunday 04. January 2009
Nein, danke. Erfahrungen damit? Besonders zur Performance z.B. im Vergleich zu C++.
Der Hintergrund des Artikels ist, dass ich im PC^2 häufig mit Leuten aus der OS-Welt zu tun habe, die jede Verwendung von Programmiersprachen außer C (sogar C++!) ablehnen, weil zu langsam und unnötig. Es ging ja auch alles in C. Ja, geht, aber eben nicht gut, oder nur mit Krücken (Function-Pointer). Ich komme eher aus der Software Engineering-Ecke und bin bereit 1% Performance aufzugeben, wenn ich dafür ordentliche Abstraktionen für mein Problem zu habe bzw. entwickeln kann.
Automatically imported comment
ReplyDeleteAuthor: Alexander Schremmer
Date: Monday 05. January 2009
Ich selber hab keine Erfahrung damit, aber ich höre gerade von einem glib user, dass man jeglichen runtime binding/dispatch overhead vermeiden kann mit gewissen "patterns". Und damit reduziert sich die Speedpenalty auf einen Bruchteil. Wieviel das ist und in welchen Fällen es nicht geht, kann ich mangels Erfahrung leider nicht sagen.
glib pflegt sich sicherlich einfacher in eine C only Umgebung ein - Linker/compiler probleme entfallen und nur eine weitere Lib kommt hinzu.
Ob man dies nun im Projekt adaptiert, kommt auf die Gegebenheiten an. Wenn man aber dabei ist, dispatch/multi methods or whatever neu zu erfinden (und es über das sauber abstrahierte selten vorgefundene Pointer-Array hinaus geht), dann sollte man wirklich über die eigene (Team-)Effizienz nachdenken :-)