Java: "Haufenverschmutzung" [geschlossen]

63

Ein " Haufen Pollution " , wie in Nicht-Reifiable Typen (Die Java ™ Tutorials> die Java - Sprache> Generics Learning (Aktualisiert))

Warum heißt es so?

Mücke
quelle
3
Ein guter Grund, keine Warnungen in Ihrem Projekt zu haben.
@ ThorbjørnRavnAndersen Gute. Aber dennoch - hinter diesem Namen sollte ein Grund / ein Mnemon stehen. Es ist lustig, aber auch Google scheint nicht zu wissen, warum.

Antworten:

72

Haufenverschmutzung impliziert einfach, dass Sie "schlechte Sachen" in Ihrem Haufen haben. Es ist eine Analogie zu (zum Beispiel) Wasserverschmutzung, wo Sie "schlechte Sachen" im Wasser haben.

Insbesondere sind die schlechten Sachen hier Objekte vom Typ, bei Adenen Sie Objekte vom Typ haben sollten B... gemäß der statischen Typisierung. Durch ein Loch in der statischen Typisierung kann das böse Zeug in den Haufen gelangen, wo es zur ClassCastExceptionsLaufzeit möglicherweise Schäden (z. B. unerwartete Schäden ) verursacht.

Es ist keine besonders gute Analogie, aber es ist die Terminologie, die die Java-Leute geprägt haben ... und sie haben sie (in der Tat) auf der Seite definiert, auf die Sie verlinkt haben, und wahrscheinlich auch an anderen Orten.


Aber dennoch - hinter diesem Namen sollte ein Grund / ein Mnemon stehen.

Warum sollte es geben? Es gibt viele Wörter und Ausdrücke im Englischen, bei denen niemand den Ursprung oder die Argumentation wirklich kennt. Oder wo der Ursprung bekannt, aber unlogisch ist. Zum Beispiel bezieht sich der angebliche Ursprung des Begriffs " Fehler " auf einen Fehler in einem Computerprogramm. Oder die aktuelle Bedeutung des Begriffs "Quantensprung" in der Populärkultur. Oder das Wort "schwul".

(Aber im Fall der "Haufenverschmutzung" ist die Quelle bekannt, und die Begründung für die Wahl des Begriffs ist für Menschen mit demselben sprachlichen und kulturellen Hintergrund offensichtlich die Autoren.)

Es ist lustig, aber auch Google scheint nicht zu wissen, warum.

Nicht wirklich. Das bedeutet nur, dass bisher niemand daran gedacht hatte, an einer von Google indizierten Stelle nach einer Definition zu fragen. 1) Die Verwendung ist auf die Java-Programmierung AFAIK beschränkt, und 2) die Analogie ist offensichtlich ... für die meisten Menschen, die den Begriff verwenden würden.

Stephen C
quelle