011
03.11.2008, 17:51 Uhr
0xdeadbeef
Gott (Operator)
|
Was C# angeht, einen großen Unterschied zwischen Java und C# habe ich bisher nicht wahrgenommen; was da aus mir spricht, ist vielleicht (naja, ziemlich sicher) meine Befangenheit gegenüber Microsoft.
Was Duck-Typing angeht, die Probleme damit sind mannigfaltig, größere Projekte sind damit nahezu unmöglich umzusetzen - das habe ich ja schon erwähnt. Zusätzlich dazu (das muss ich, finde ich, noch erwähnen) ist es pädagogisch gesehen ungefähr das Bösartigste, was man einem Programmieranfänger antun kann. Es lehrt schlimmere Angewohnheiten als C und Intercal zusammen - es untergräbt das komplette objektorientierte Paradigma. Und das ist jetzt nicht übertrieben.
In der Objektorientierung geht es ganz grundsätzlich um die Kapselung von Funktionseinheiten, um hohe Kohäsion bei möglichst loser Kopplung. In der Praxis bedeutet das, wenn ich eine Klasse Schwein habe, die eine Methode fressen hat, die ein Futter-Objekt erwartet, dann hat fressen sich nicht dafür zu interessieren, ob hinter dem Futter-Objekt jetzt Kraft- oder Trockenfutter steckt. Mit anderen Worten, in dem Moment, in dem du eine Duck-Typing-Schnittstelle verwendest (wie z.B. hasattr) befindest du dich schon tief im Land dreckig(st)er Hacks. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |