3 Stimmen

Ist die Java-API schlecht gestaltet und warum?

Ich habe das schon oft gehört, dass die Java-API schlecht gestaltet ist. Stimmen Sie zu und wenn ja, warum? Ich weiß, dass es große Probleme mit den Calendar/Date-APIs gibt. Das Collections-API erfordert viel boilerplate-Code, um es zu verwenden. Die File/IO-API kann für einige Dinge kompliziert sein.

Aber gilt das weltweit? Und für welche Java-Versionen?

2voto

Jared Punkte 38791

Ich würde nicht sagen, dass alles davon schlecht gestaltet ist. Das Hauptproblem ist die Abwärtskompatibilität, die Leute erwarten immer noch Funktionen, die längst veraltet sind, um verfügbar zu sein, damit ihr vor 10 Jahren geschriebener Code nicht geändert werden muss. Dies macht die API ziemlich umfangreich und ermöglicht oft mehrere Möglichkeiten, um dasselbe zu tun, ohne klar zu sein, welche davon besser ist.

1voto

OscarRyz Punkte 189898

Ist die Java-API schlecht gestaltet und warum?

Nein

Weil, obwohl sie nicht perfekt ist, die Menge an schlechten APIs viel weniger ist als der Teil, der einfach großartig ist!

Auf jeden Fall sollten Sie dies wirklich der Person fragen, von der Sie es direkt gehört haben, sonst wird es, was in meinem Land "stilles Post" genannt wird (das ansonsten ein tolles Kinderspiel ist :)), wo jeder Knoten in der Kette von Nachrichten die Nachricht subtil modifiziert und am Ende etwas wie:

Ich mag java.util.Calendar nicht

endete zu

Java-API ist völlig kaputt und der Designer sollte ins Gefängnis gesteckt werden.

Natürlich gibt es in der Mitte eine "Nachrichten-Transformation"!!!

)

1voto

Gregory A Beamer Punkte 16670

Wie bei allem, das eine Weile existiert, wird es langweilig. Wie bei .NET haben auch Sun und andere versucht, die Dinge neu zu halten. Aber die Zeit macht alles stagniert, besonders wenn man Interfaces nicht ändern kann, sondern nur hinzufügen kann, da Änderungen alles durcheinander bringen. :-)

1voto

Esko Punkte 28242

Nein, die Java API ist für die meisten Teile großartig, aber einige Teile davon sind einfach faul. Alle verwenden Date und Calendar als Beispiele (hier ist der obligatorische joda-time Link), aber ich würde die XML API (die native/W3C-Version, da es heutzutage mehrere davon gibt) auch als gutes Beispiel verwenden: Das Problem bei diesem Teil der gesamten API ist, dass er einfach nicht wie erwartet funktioniert und nicht mit dem Rest der API übereinstimmt.

Ein weiterer wichtiger Faktor bei der Java API ist, dass sie konsistent ist, nicht nur innerhalb ihrer selbst, sondern auch innerhalb von Versionen und Plattformen (mit Ausnahme von AWT) und ich bin bisher sicher noch nicht auf einen magischen Punkt in der Java API gestoßen, der sich geändert/zerstört hätte, als ich eine Version umgeschaltet habe.

-3voto

Joe Erickson Punkte 6899

Ich begann im Jahr ~1995, die Java-API zu verwenden. Jede API, die so alt ist, lässt sich leicht kritisieren.

Um die Frage nach dem Warum zu beantworten:

  • Java führte Enums zu spät ein - die API wäre viel besser, wenn sie von Anfang an Enums hätte.
  • WORA (Write Once, Run Everywhere) - oder wie einige sagen "Write Once, Debug Everywhere". Es ist unglaublich schwierig, eine großartige API zu erstellen, wenn Ihr Ziel der kleinste gemeinsame Nenner ist. Kein "richtiger" Windows-, Mac-, Unix- oder Linux-Entwickler kann jemals mit Java zufrieden sein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X