Kann Java als verwaltete Programmiersprache betrachtet werden?

8

Ich bin neugierig; Kann Java als verwaltete Sprache bezeichnet werden? Ich denke hauptsächlich an das Microsoft-Modell, wenn es um nicht verwalteten oder verwalteten Code geht (sagen wir natives vc ++ zu C #). Ist es angesichts der Ähnlichkeiten zwischen C # und Java als Hochsprachen richtig, Java auch als verwaltete Sprache zu bezeichnen?

KaiserJohaan
quelle
4
Bitte definieren Sie "verwaltete Sprache". Es ist unmöglich, diese Frage zu beantworten, ohne genau zu definieren, was eine "verwaltete Sprache" ist.
Jörg W Mittag

Antworten:

21

Ja. Java wird als verwaltete Programmiersprache angesehen, da es von der JVM gut als Sandbox verwendet wird. Der Begriff "verwalteter Code" ist jedoch Microsoft-spezifisch.

shadowfoxmi
quelle
1
@ S.Lott Mono verwendet diese Terminologie auch auf Nicht-Windows-Plattformen. Also nein, nicht "Nur Windows".
Konrad Rudolph
4
@ S.Lott Ich denke, Microsoft verwendet "verwalteten Code" eher als Überbegriff, als ihn an eine bestimmte Implementierung (IL, CLR) zu binden. Ich kann mich jedoch irren. "Verwaltet" bedeutet für mich einfach, dass die Ausführung des Codes "sicher" ist, da dies auf der Überprüfung von Zeigerzugriffen usw. beruht. Nach dieser Definition würde auch die JVM-Ausführung verwaltet.
Konrad Rudolph
2
@Konrad: Ich stimme zu - "verwaltet" ist viel mehr ein Marketingbegriff als ein technischer. Ich würde jedoch noch ein bisschen weiter gehen: Programmierer und Programmierprojekte werden größtenteils als nahezu unüberschaubar angesehen, und ich denke, die eigentliche Absicht besteht darin, zu implizieren, dass beide verwaltbarer werden, wenn Sie den "verwalteten" (Code oder was auch immer) von Microsoft verwenden. Übrigens werden die Manager auch ein wichtigerer Bestandteil von Projekten. Kurz gesagt, Microsoft vermarktet direkt an die Leute, die das Geld kontrollieren, anstatt an Programmierer, und hofft, dass sie die Manager davon überzeugen, bei Microsoft zu kaufen.
Jerry Coffin
1
Unter diesem Gesichtspunkt würde ich sagen, dass Java ähnlich ist. Beide vertreten die Position, dass Programmierer inkompetent und nicht vertrauenswürdig sind und "kontrolliert" werden müssen. Beide definieren "Management" im Grunde genommen auch als gewaltsam ausgeführt - anstatt jemanden zu überzeugen, die Dinge gut zu machen, gehen sie davon aus, dass das, was verwaltet wird, so viel wie möglich falsch macht, also muss der "Manager" gegen alles, was er hat, sicherstellen definiert als "falsch". Kurz gesagt, beide sollen die niedrigsten Instinkte der schlechtesten Manager ansprechen.
Jerry Coffin
7
Weder Java noch .Net gehen von Inkompetenz seitens der Entwickler aus, sie abstrahieren lediglich die Speicherverwaltung. Der Begriff verwalteter Code stammt aus der automatischen Speicherverwaltung, dh der Speicherbereinigung. Es ist kein Marketingbegriff (".Net" ist der Marketingbegriff).
Steve
9

Ja. Eine verwaltete Sprache ist eine Sprache, die in einem eigenen Container ausgeführt wird.

Java ist eine verwaltete Sprache, da Sie die JVM und in .NET die CLR haben .

Der Begriff "verwalteter Code" scheint etwas Microsoft-spezifisches zu sein. Schauen Sie sich den folgenden Wikipedia-Artikel an.

Kevin
quelle
3
Ich glaube nicht, dass eine Definition von „verwaltet“ tatsächlich von der Anwesenheit eines Müllsammlers abhängt.
Konrad Rudolph
2
@Konrad: Ich habe meine Antwort aktualisiert.
Kevin
Der letzte Absatz dieser Antwort scheint den beiden anderen zu widersprechen. Der Wikipedia-Artikel ist ziemlich spezifisch über "verwaltet" in Bezug auf die CLR-VM, nicht irgendeine VM
Ben Aaronson