Nun, Microsoft ist garantiert eine der Firmen, die aufgrund enormer Rückwärtskompatibilitäten mehr Probleme haben, als umgekehrt (im Gegensatz zum Apfel... *hust*). Als Beispiel nur mal (alles nur angelesen, nie selbst programmiert): In VB haben Arrays immer bei 1 angefangen. Weil aber alle anderen Sprachen bei 0 beginnen, wurde das Array in irgendeiner Version um ein Element vergrößert. Nun passen beide Varianten. Schlimmer eher, dass selbst die modernen Betriebssysteme noch Relikte aus frühesten Zeiten mitschleppen. Aber das ist langsam wirklich eine andere Geschichte.
Es stimmt, dass auch gering wirkende Änderungen für die Compilerbauer nur unter teils großem Aufwand zu bewirken sind. Ich finde trotzdem, dass foreach (und vor allem Enums... dafür bin ich Sun wirklich böse, dass die nicht gleich kamen) enorm nützlich ist und würde es auf keinen Fall mehr missen wollen.
Was ich an Arrays.asList() nicht mag, ist, dass ich keine Kontrolle über die Implementierung habe. Die resultierende Arrays$ArrayList implementiert z. B. kein remove() und erzählt mir das erst zur Laufzeit. Dadurch ist halt nochmal die Overhead verursachende Übergabe an einen anderen Konstruktor (ArrayList z. B.) nötig.
Dennoch: Ihr habt natürlich nicht Unrecht. Gerade Wildcards Argument kann ich nicht viel entgegensetzen, daran hatte ich gerade gar nicht gedacht.
(Verursache ich eigentlich zu viele abschweifende Diskussionen? Manchmal kommts mir so vor...)