Eine freie Java-Implementierung ist eine Implementierung der Java-Plattform als freie Software.

Geschichte Bearbeiten

Mit der Java-Technik als wichtiger Software-Plattform (siehe Java-Plattform), auf der auch zahlreiche freie Software aufbaut, wurden die lange Zeit zur Ausführung notwendigen unfreien Implementierungen der Programmiersprache Java als ethisch problematische Lücke im Freie-Software-Ökosystem gesehen – Richard Stallman und die Free Software Foundation (FSF) sprachen von der „Java-Falle“.[1] Daher bestand das Bedürfnis nach freien Java-Implementierungen, deren Umsetzung mit hoher Priorität von der FSF verfolgt wurde und Dinge wie die freie Implementierung der Standardklassenbibliotheken GNU Classpath und den GNU Compiler for Java (GCJ), der auch den GNU Interpreter for Java (GIJ) enthält, hervorbrachten.

Als vielleicht erste freie Implementierung wesentlicher Teile der Java-Plattform ist der Java-Compiler guavac zu nennen, der noch vor November 1995 begonnen wurde.[2][3] 2005 sollte mit Harmony versucht werden, die Entwicklungsbemühungen um freie Java-Implementierungen in einem Projekt zu vereinigen. Obwohl der große Schulterschluss nicht gelang, lebt das Projekt unter dem Dach der Apache Software Foundation weiter und hat eine vollständige Implementierung hervorgebracht.

Mit der Veröffentlichung der offiziellen Implementierungen durch den Hersteller Sun Microsystems im Jahr 2006 löste sich diese Situation nach einigen kleineren Hürden endgültig auf und wurde die Familie freier Java-Implementierungen sowie die Freie-Software-Welt insgesamt durch ein großes und wichtiges Paket Software ergänzt.

Als freie Java-Implementierungen sind daraus OpenJDK als Nachfolger des Java Development Kit (JDK) und viele weitere Bestandteile hervorgegangen. Wichtige Zweige der OpenJDK-Entwicklung waren bzw. sind auch immer noch die Versionen des IcedTea-Projektes. Außer diesen gibt es noch Kaffe, die nun als besonders schlanke, schnelle alternative Laufzeitumgebung weiterexistiert, die selber wiederum in Java geschriebene Jikes RVM, die extrem kleine JamVM, das für Mono entwickelte IKVM.NET und das für das Betriebssystem Bluebottle geschriebene Jaos.

Spezialisierte Implementierungen Bearbeiten

Weiterhin gibt es noch eine Vielzahl spezialisierter Implementierungen.

Für tragbare Geräte gibt es SuperWaba, Squawk und die Dalvik Virtual Machine von Android, Mysaifu JVM als die einzige aktiv weiterentwickelte freie Java-SE-kompatible JVM für PocketPC. Für spezielle Hardware-Plattformen gibt es für Atmel-AVR-ATmega8-Mikrocontroller die NanoVM, leJOS für Lego Mindstorms und Wonka VM und deren Nachfolgerin Mika VM für eingebettete Geräte.

CACAO unterstützt etliche Plattformen, wobei es mit seinen durch JIT-Kompilierung schnellen Ausführungsgeschwindigkeiten wohl auf einigen die schnellste verfügbare Java-Implementierung darstellt.

Weiterhin existieren auch Betriebssysteme, die in Java programmiert wurden, wie z. B. JX (Betriebssystem) oder JNode.

Siehe auch Bearbeiten

Quellen Bearbeiten

  1. Frei, aber gefesselt – Die Java-Falle
  2. Änderungsprotokoll des guavac-Compilers@1@2Vorlage:Toter Link/www.sfr-fresh.com (Seite nicht mehr abrufbar, festgestellt im April 2018. Suche in Webarchiven)  Info: Der Link wurde automatisch als defekt markiert. Bitte prüfe den Link gemäß Anleitung und entferne dann diesen Hinweis.
  3. Announcing: guavac 0.2.5 (Memento vom 14. August 2009 im Internet Archive) – Ankündigung der Veröffentlichung von Version 0.2.5 von guavac, abgerufen am 15. April 2024.