Was sind alternativen, um die Java VM?
Als Oracle verklagt Google über die Dalvik-VM ist es klar, dass Sie nicht implementieren Sie eine Java-VM ohne Lizenz von Oracle (EDIT: Matthäus Flaschen weist darauf hin, dass die Ansprüche von Oracle kann nicht gültig sein. Sowieso haben wir derzeit eine situation, wo Oracle Bedrohungen VM-Implementierungen.). Das kann der Tod für Open-Source-Implementierungen von Java (wie Apache Harmony).
Möchte ich nicht diskutieren, die Wirkung oder die legitimation dieser Klage. aber als Java-Programmierer möchte ich einen tieferen Blick in die alternativen, um vorbereitet zu sein für jeden Fall. Wie sehe ich die Schaffung eines Compilers, da ein kleine problem, mein Hauptinteresse sind die alternativen VM-Implementierungen, die dienen einem ähnlichen Zweck wie die JVM.
Die VM, die ich Suche, sollte erfüllt einige Bedingungen:
- frei von patent-Probleme
- ein Open-Source-Implementierung vorhanden
- Potenzial für Optimierungen/gute Leistung
- unabhängig von der Plattform (die VM kann auf verschiedene Plattformen portiert werden, ohne größere Hürden)
Bitte fügen Sie einige Empfehlungen für mich.
- IBM hat Ihre eigene JVM, aber ich weiß nicht, ob es erfüllt Ihre ersten zwei Punkte (obwohl ich denke, es erfüllt die beiden letzten).
- Es ist mir klar geworden, dass Sie nicht schreiben können jedes nicht-triviale Programm (und sicherlich nicht einer VM), ohne gegen Hunderte von Patenten.
- so hat Microsoft, Sie haben Ihre eigene JVM.
- Vielleicht ist es eine gute Sache, Oracle verklagt Google, es ist Ihre eigene VM, die tötet Binär-Kompatibilität, doch haben Sie einen übersetzer, die konvertieren kann Java-Code zu registrieren Sie Ihre Maschine, warum haben Sie nicht einfach tun, das intern? Klingt wie Sie soeben ein paar kleinere Optimierungen verursacht mehr ärger als nutzen. Sollte Google haben Ihren eigenen VM, die Bibliothek und die Sprache zu töten, Java, anstatt einige verkrüppelte Vermächtnis belastet Klonen und töten es sowieso... so dass jeder mit nichts.
- "Es wird klar, dass man nicht implementieren Sie eine Java-VM ohne Lizenz von Oracle," ich Stimme überhaupt nicht mit dieser interpretation. Auch wenn Google waren zu verletzen, bedeutet das nicht, es ist nicht möglich, dass eine juristische unabhängige Java-VM. "Ich will nicht diskutieren die Auswirkungen oder die legitimation von dieser Klage", Es klingt wie, dass ist genau das, was du tust. Sie sollte nicht vorausgesetzt werden, bereits, dass Oracle die Forderungen haben keine Gültigkeit. Wir sind noch vor dem ersten Urteil, geschweige denn die letzten von den Beschwerden. Schließlich sollten Sie beachten, dass Oracle kann nicht widerrufen der GPL-Lizenz auf OpenJDK.
- Flaschen: Sie mögen Recht haben, dass evtl. die Patente vor Gericht nicht halten. Das ändert aber nichts an der Tatsache, dass Oracle bereit ist, um die Nutzung von Patenten gegen Implementierungen von VMs.
- Ich dachte (hoffte) es ist, weil Google ein Konkurrent in diesem Fall, und dass die Kompatibilität. Ich bezweifle, Sie würden verklagen jeden für Ihre eigenen kompatiblen VM/Bibliothek (Apache Harmony, GNU Classpath...), es würde nur Schaden, die gesamte Java-community. Denken Sie daran Sun verklagt Microsoft aus dem gleichen Grund, das war eine gute Sache, ansonsten Microsoft würde gemacht Ihrer eigenen verdrehten Umsetzung und Unterstützung es wäre wie der Versuch zu machen, eine Website, die mit Internet Explorer arbeitet.
- Wie Sie sagte, wird Oracle wohl nicht verklagen kompatible Java-Implementierungen, aber nicht, dass die Art der Niederlage der Zweck von open source, wenn Sie nicht können, zum Beispiel, erheblich verändern, GNU Classpath, ohne sich Gedanken über rechtliche Probleme?
Du musst angemeldet sein, um einen Kommentar abzugeben.
LLVM ist eine wirklich gute Optimierung, low level virtual machine. Er unterstützt Sprachen wie C und C++, und nicht über integrierte Unterstützung für high-level-features wie garbage collection.
VMKit ist eine Implementierung der Java-und CLI-virtuelle Maschinen auf LLVM. Da es verwendet Java-bytecode, dies würde wahrscheinlich nicht helfen, mit der patent-Probleme.
HLVM ist ein weiterer interessanter high-level virtual machine basiert auf der LLVM. Es ist wohl unterschiedlich genug, um die meisten bekannten Patente, aber es ist hauptsächlich auf die numerische computing und funktionale Programmierung.
Auf die dynamisch typisierte Seite, es ist Parrot.
Bin ich tatsächlich arbeiten auf einer compiler-und VM für eine Sprache, die von meinem eigenen design, aber zählen Sie nicht darauf, es jemals fertig. 😉
Beachten Sie, dass jedes große Stück software gegen Rechte an zahlreichen Patenten, die wichtige Sache ist, wie bekannt Sie sind (und wie viel die Patente Besitzer suchen aktiv nach Verstößen). Natürlich, der ganze patent-system ist absurd, und wir wären viel besser dran, bekommen es loswerden.
Ich glaube nicht, dass es irgendeinen bedeutenden Stück der software, die frei von patent-Probleme.
Wenn Sie ein Unabhängiger Entwickler oder arbeiten für eine kleinere Firma, die Sie wahrscheinlich nicht bekommen, direkt getroffen von den Problemen, obwohl. Es ist unwahrscheinlich, dass große Unternehmen halten Patente gehen nach vielen kleinen Forderungen - es ist ein teurer Prozess und verursacht eine Menge ärger. SCO versucht, so etwas wie das, und es hat nicht funktioniert zu gut für Sie.
Ich würde konzentrieren sich auf das finden der besten Werkzeug für den job, ohne sich Gedanken zu viel über die patent-Probleme, sonst wirst du nie etwas zu tun.
GraalVM ist ein Forschungs-Projekt, entwickelt von Oracle Labs und bereits in der Produktion bei Twitter. Ich kann nicht glauben, meine Augen, dass niemand erwähnt etwas davon, es ist so komisch. Anyways, GraalVM ist auch vielversprechende Erweiterung der java virtual machine zu unterstützen, mehr Sprache und Ausführung-Modi für das ausführen von Anwendungen wie JavaScript, Python, Ruby, R, JVM-basierte Sprachen wie Java, Scala, Kotlin, Clojure und LLVM-basierten Sprachen wie C und C++.Die GraalVM project enthält eine neue high-performance Java compiler selbst aufgerufen, Graal, die verwendet werden können, in einer just-in-time-Konfiguration für die HotSpot-VM oder in einem ahead-of-time-Konfiguration auf dem SubstrateVM. Das Hauptziel dieses Projekts ist die Verbesserung der Leistung der java virtual machine Basis-Sprache zur Anpassung an die Leistung der einheimischen Sprachen. Fassen wir die neuartigen features, die dieses Projekt bietet, und machen Sie eine kurze Erklärung, laut der docs, warum sollten Sie es
Wenn jemand das nicht bekommen, davon überzeugt, dass ist eine gute Wahl, und es ist ein richtig geiles Projekt können Sie sehen, dieses sprechen von Christian Thalinger auf "warum Graal ist eine gute Passform für Twitter"