JAXenter.de

Das Portal für Java, Architektur, Cloud & Agile

Who is bad? Von Java 7, Bugs und bösen Buben

X

Vorfreude auf Java 9: Die ersten Features sind bekannt.

Who is bad? Von Java 7, Bugs und bösen Buben

Hartmut Schlosser

Schon bemerkenswert, welch Emotionen bei allem freigesetzt werden, was mit Oracle und der Veröffentlichung von Java 7 zu tun hat. Da präsentiert Oracle am 28. Juli die lang erwartete Neuversion 7 von Java, kurz darauf teilt das Team um Apache Lucene/Solr mit, vor dem Release gefundene Bugs in einigen Hotspot-Optimierungen seien von Oracle nicht gefixt worden. Und schon bricht die Welle von teils unter der Gürtellinie agierender Blogeinträge los:

Halten wir uns an wirkliche Argumente, ist die Diskussion zwischen Andrew Binstock und Ted Neward lesenswert und geradezu als Lehrstück eristischer Streitkunst zu genießen (Eristik = Lehre vom Streitgespräch und die Kunst der Widerlegung). Von aller verbalen Hochrüstung befreit, nehmen wir uns zunächst einmal die beiden Argumentationslinien vor.

Binstock übernimmt hier den Part des Kritikers und wirft Oracle bei der Veröffentlichung von JDK7 ein Fehlverhalten vor:

  1. Oracle hat Java 7 veröffentlicht, obwohl es Oracle bewusst war, dass noch bekannte Bugs enthalten waren
  2. Oracle hätte den Release-Termin verschieben sollen, bis diese Bugs gefixed worden sind
  3. Bei den Bugs handelt es sich um schwerwiegende Fehler des Compilers (Showstopper-Bugs) - die eigentlich aber einfach aufzuspüren gewesen wären
  4. Dieses Verhalten ist ein Indiz dafür, dass Oracle Java und die Community noch nicht verstanden hat
  5. Auf technischer Seite hat es Oracle versäumt, Java 7 genügend zu testen - insbesondere wäre das Apache-Lucene-Projekt ein idealer Kandidat dafür gewesen, die Funktionsfähigkeit von Java 7 zu testen
  6. Einige der Fehler waren bereits in Java 6 enthalten und sind nur deshalb aufgefallen, da Optimierungen in Java 7 jetzt per Default eingeschaltet sind. Das Testverhalten war unter Suns Zeiten also auch nicht besser. Der einzige Unterschied: Oracle wusste vor der Veröffentlichung von Java 7 von den Bugs, hat diese aber verschwiegen
  7. Oracles Entscheidung, Java 7 trotz der "Showstopper"-Bugs zu veröffentlichen, war politisch motiviert und lässt sich aus technologischer Sicht nicht rechtfertigen.

Oracle's decision was political, not technical. And here Oracle needs to really reassess its commitment to its users. Is Java a sufficiently important enterprise technology that shipping showstopper bugs will no longer be permitted? The long-term future of Java, the language, hangs in the balance. Andrew Binstock

Ted Neward geht Binstock daraufhin in seinem Blog hart an und unternimmt den Versuch, Binstocks Text zu dekonstruieren:

  1. Das Apache-Team hat die Bugs lediglich 5 Tage vor dem Veröffentlichungstermin von Java 7 gemeldet. Man kann deshalb nicht von "bekannten Bugs" sprechen. Es handelt sich um Bugs, die in letzter Minute entdeckt wurden.
  2. Die Realität von Software-Releases zeigt, dass kein Release ohne Bugs ist. Ein Release wegen eines Bugs zu verschieben, der in letzter Minute entdeckt wird, verursacht mehr Schaden, als den geplanten Release-Termin zu halten.
  3. Punkt 2 ist umso mehr valide, als Workarounds für die Bugs existieren - es handelt sich also nicht um "Showstopper Bugs", sondern um "Workaround Bugs". Wenn sich die Community über solche Workaround Bugs beschwert, wirft dies allenfalls ein schlechtes Licht auf die Community
  4. Wer sagt, Oracle habe Java und die Community nicht verstanden, will, dass sich Oracle genauso verhält wie Sun. Er beklagt sich darüber, dass Oracle nicht alles gratis zur Verfügung stellt und auf alle noch so exotischen Wünsche sofort eingeht. Was eher den Tatsachen entspricht ist, dass Oracle entschieden hat, anders als Sun vorzugehen - nicht zuletzt wegen des offensichtlichen Scheiterns von Sun als Unternehmen.
  5. Die Bugs sind nicht so einfach aufzuspüren wie von Binstock vermutet, da es sich nicht um unkomplizierte Compiler-Bugs, sondern um Bugs im Hotspot-Compiler handelt. Außerdem kann es nicht in der Verantwortung von Sun liegen, Java 7 gegen alle möglichen Open-Source-Projekte zu testen.
  6. Wenn die Fehler bereits in Java 6 enthalten waren, heißt dies, dass weder Sun noch die Community sie in fünf Jahren entdeckt bzw. sich daran gestört haben. Der sogenannten "Community" mangelt es offensichtlich selbst an Motivation, sich aktiv an der Weiterentwicklung von Java zu beteiligen. Wer sich also über Stillstand und fehlerhaftes Verhalten Oracles beklagt, soll zunächst einmal seine eigene Partizipationsbereitschaft kritisch hinterfragen.
  7. Oracle zu unterstellen, das Halten des Release-Termins wäre politisch motiviert gewesen, ist ohne Beweis nicht legitim. Indes hat Oracle wohl auf die Bugmeldungen reagiert und die Fehler mit dem Apache-Team diskutiert. Oracle hat zugesagt, die Bugs im nächsten oder übernächsten Service-Release zu beheben. Das ist ein deutliches Zeichen dafür, dass Oracle sehr wohl mit der Community zusammenarbeitet und Java verstanden hat.

I have to hope that this even won't be a sharp lesson to Oracle that the community is basically made up of a bunch of whiny bitches who complain when a workaroundable bug shows up in their products. Ted Neward

Reaktionen

In den Kommentaren zu Ted Newards Blogeintrag geht die Diskussion weiter.

Igor Laera widerspricht Neward in seiner Kritik an der lethargischen Java-Community, die von Oracle nur Wohltaten erwarte:

I would accept the load on the software creators only if Java would be like Linux. But it isn't. Oracle owns it, Oracle controls it, Oracle sues people with it. Then it's their job. Igor Laera

Cay Horstmann weist darauf hin, dass das eigentliche Problem darin besteht, dass Oracle die bekannten Bugs nicht selbst, etwa in den Release Notes, öffentlich gemacht hat:

So, if Oracle had said "Whoa, we just found out this issue, and we'll fix it immediately, but it'll take ten days to re-run all the acceptance tests", nobody would have batted an eye. Or if they had said "Look, we've got this problem, but you've got to ship sometime, and here is how you work around this vexing issue", people would have been ok. Their problem was to say nothing at all. Cay Horstmann

Andrew McVeigh bemerkt, dass es in der Sache nicht darum gehen sollte, mit dem Finger auf vermeintlich "Gute" und "Böse" zu zeigen, sondern darum, den Release-Prozess von Java zu verbessern:

I also think that it is sad that the tone of the wider debate seems to have degenerated into 2 camps: (a) oracle is bad or (b) oracle is good. Surely this is just a process improvement that needs to happen. Andrew McVeigh

Java-Kultur

Was wollen wir von diesem Streitgespräch mitnehmen?

Von der Polemik befreit, offenbaren sich Argumente - die einen mehr, die anderen weniger stichhaltig. Nun gehört die verbale Auseinandersetzung sicherlich zu den Tugenden offener Kulturen, auch ist die Hitzigkeit der Debatte angesichts der unternehmenspolitischen Vorgeschichte in gewissem Maße verständlich.

Doch das ist nur die eine Seite der Medaille.

Die intensive Diskussion zum Verhalten Oracles seit der Sun-Übernahme zeigt deutlich auch, wie stark sich ein Java-Entwickler im Allgemeinen mit seiner Sprache identifiziert, wie groß das Bedürfnis ist, sich in die Diskussionen einzumischen, wie kritisch er sich mit jeder Entwicklung auseinandersetzt.

Das ist in anderen Sprach- und Technologie-Communities nicht selbstverständlich so anzutreffen, wo oft das kommentarlos gefressen wird, was der große "Wohltäter" einem da so vorsetzt.

Die Java-Community besteht eben nicht aus einem Haufen von "whiny bitches", wie es Ted Neward in seiner köstlichen Polemik ausdrückt, die sich nichts als beklagen kann, ohne selbst aktiv zu werden. Die Java-Community zeichnet sich durch wachsame, kritische Mitglieder aus, die es gelernt haben, dass eine offene Kommunikationskultur zu Spezifikationen führen kann, die von einer breiten Masse getragen werden. Die Kritik sowohl an Oracle wie auch jetzt an Apache - berechtigt oder unberechtigt - ist letztlich Ausdruck der Begeisterung für eine Sache: die als innovationsfördernd erkannte Kommunikationskultur von Java.

Passen wir allerdings auf, dass diese Begeisterung nicht in religiösen Eifer mündet - denn dieser hat noch kaum jemals zu befriedigenden Ergebnissen geführt.

Verwandte Themen: 

Kommentare

Ihr Kommentar zum Thema

Als Gast kommentieren:

Gastkommentare werden nach redaktioneller Prüfung freigegeben (bitte Policy beachten).