2010-08-30 8 views
7

Da Oracle Google über die Dalvik VM verklagt, wird klar, dass man keine Java VM ohne Lizenz von Oracle implementieren kann (EDIT: Matthew Flaschen weist darauf hin, dass die Ansprüche von Oracle möglicherweise nicht gültig sind. Wie auch immer wir momentan eine Situation haben, wo Oracle VM-Implementierungen bedroht. Das kann der Tod für Open-Source-Implementierungen von Java werden (wie Apache Harmony).Was sind Alternativen zur Java VM?

Ich möchte nicht die Auswirkungen oder die Legitimation dieser Klage diskutieren. aber als Java-Programmierer möchte ich die Alternativen genauer untersuchen, um auf jeden Fall vorbereitet zu sein. Da ich die Erstellung eines Compilers als ein kleines Problem sehe, sind meine Hauptinteressen alternative VM-Implementierungen, die einen ähnlichen Zweck wie die JVM erfüllen.

Die VM ich suche, sollte einige Bedingungen erfüllen:

  • frei von Patent-Fragen
  • eine Open-Source-Implementierung
  • Potenzial für Optimierungen/gute Leistung
  • existiert plattformunabhängig (die VM kann ohne größere Hürden auf verschiedene Plattformen portiert werden)

Bitte etwas re Lob für mich.

+0

IBM hat ihre eigene JVM, aber ich weiß nicht, ob es Ihre ersten zwei Punkte erfüllt (obwohl ich denke, dass es die letzten zwei erfüllt). – FrustratedWithFormsDesigner

+3

Es ist mir klar geworden, dass man kein * nicht-triviales Programm (und schon gar keine VM) schreiben kann, ohne Hunderte von Patenten zu verletzen. – Ken

+0

@FrustratedWithFormsDesigner, also Microsoft, haben sie ihre eigene JVM. –

Antwort

5

LLVM ist eine wirklich gute Optimierung, niedrige virtuelle Maschine. Es kann Sprachen wie C und C++ unterstützen und verfügt nicht über integrierte Funktionen wie Garbage Collection.

VMKit ist eine Implementierung der Java und CLI virtuellen Maschinen auf LLVM. Da Java-Bytecode verwendet wird, würde dies bei den Patentproblemen wahrscheinlich nicht helfen.

HLVM ist eine weitere interessante virtuelle Maschine, die auf LLVM basiert. Es ist wahrscheinlich anders genug, um die meisten bekannten Patente zu vermeiden, aber es ist hauptsächlich auf numerische Berechnungen und funktionale Programmierung ausgerichtet.

Auf der dynamisch typisierten Seite befindet sich Parrot.

Ich arbeite tatsächlich an einem Compiler und VM für eine Sprache meines eigenen Designs, aber nicht darauf verlassen, dass es jemals fertig ist. ;-)

Denken Sie daran, dass jede große Software zahlreiche Patente verletzt, wichtig ist, wie bekannt sie sind (und wie sehr die Patentinhaber aktiv nach Verletzern suchen). Natürlich ist das ganze Patentsystem absurd, und wir wären viel besser dran, es los zu werden.

+0

"Es ist wahrscheinlich anders genug, um die meisten bekannten Patente zu vermeiden" Und was ist mit den Tausenden von nicht bekannten Patenten? "Das ganze Patentsystem ist absurd" Ich bin mir nicht sicher, ob ich dem zustimme - ich denke Patente sind manchmal nützlich - wenn man ein Heilmittel gegen Krebs erfindet, sollte man es patentieren lassen. Patente sollten jedoch nicht für triviale Dinge wie Doppelklick vergeben werden. Das Patentsystem muss da sein, aber es bedarf dringend einer Reform und strengeren Kontrollen der tatsächlichen Innovation. –

+1

@Mark Byers: Über HLVM meinte ich, dass die meisten Patente auf Java und ähnliche VM-Technologie (z. B. CLI) wahrscheinlich nicht gelten würden. Natürlich bedeutet das nicht, dass es absolut sicher ist, aber nichts ist. Was das Patentsystem anbelangt, sind Softwarepatente der am offensichtlichsten absurde Teil, aber ich stelle auch die Nützlichkeit des restlichen Systems in Frage - es gibt wirklich keinen Beweis dafür, dass es etwas Gutes getan hat. Und wenn jemand ein Heilmittel gegen Krebs erfunden hat, wäre es schön, wenn es nicht patentiert wäre, weil es billiger wäre. Die Frage ist, ohne Patente, wäre diese Heilung erfunden worden? Niemand weiß. – Zifre

+0

HLVM sieht aus wie ein großer Kandidat, Papagei wie ein anderer. Ich werde diese Alternativen ein wenig weiter prüfen. Danke für deine Empfehlungen. :-) – Mnementh

4

Ich glaube nicht, dass es eine bedeutende Software gibt, die frei von Patentproblemen ist.

Wenn Sie ein unabhängiger Entwickler sind oder für ein kleineres Unternehmen arbeiten, werden Sie wahrscheinlich nicht direkt von den Problemen betroffen sein. Es ist unwahrscheinlich, dass große Unternehmen, die Patente besitzen, auf viele kleine Ansprüche zurückgreifen werden - es ist ein teurer Prozess und verursacht viel Unmut. SCO hat so etwas versucht und es hat nicht gut für sie funktioniert.

Ich würde mich darauf konzentrieren, das beste Werkzeug für den Job zu finden, ohne mich zu sehr um die Patentprobleme zu kümmern, sonst werden Sie nie etwas erreichen.

+0

SCO hat niemals Patentansprüche geltend gemacht, nur Urheberrechte und Verträge. –

Verwandte Themen