Dienstag, April 17, 2007

Javas Argumente für dynamische Programmiersprachen

In Java 5 ist mind. ein Feature eingebaut, dass ein deutliches Argument für dynamische Programmiersprachen ist, nämlich die Generics. Zuerst sieht die Geschichte ganz einfach aus:

List<vertrag> vertraege = ...

Aber dann wird es ganz schnell kompliziert, weil Generics mit Subtypen inkompatibel sind:

List<Vertrag> vertraege = new List<Bausparvertrag>(); // Compile-Fehler


Und Ruckzuck ist man bei Wildcards:

List <? extends Vertrag> ...
List <? super Bausparvertrag> ...
void <T> foo(List<T extends Vertrag> x) ...


Das scheint mir in der Praxis sehr schwer beherrschbar zu sein. Es sind einfach zuwenig Entwickler fundiert in Typtheorie ausgebildet :-)

Interessant dabei ist, dass dieser ganze komplizierte Overhead nur dazu ist, den Compiler zufrieden zu stellen. Mit dynamischen Programmiersprachen kann man das alles viel einfacher haben.

Wer sich mit Generics in Java befassen will oder muss, findet hier eine gute Einführung.

Post bewerten

Keine Kommentare: