Jenseits von Java: Programmiersprachen in der JVM

Wenn es eine Sprache gibt, die für Entwickler eine bekannte und bewährte Größe ist, dann ist es Java. Unternehmensentwickler, Webentwickler, mobile Entwickler und viele andere haben Java allgegenwärtig gemacht und zu der massiven Kultur der Unterstützung rund um Java beigetragen.

Darüber hinaus ist die Java-Laufzeit oder Java Virtual Machine (JVM) zu einem eigenen Software-Ökosystem geworden. Neben Java haben viele andere Sprachen die Java Virtual Machine genutzt, um selbst zu leistungsstarken und wertvollen Softwareentwicklungstools zu werden.

Die Verwendung der JVM als Laufzeit bringt mehrere Vorteile mit sich. Die JVM wurde über mehrere Jahrzehnte hinweg weiterentwickelt und kann bei guter Verwendung eine hohe Leistung erbringen. Anwendungen, die in verschiedenen Sprachen in der JVM geschrieben sind, können Bibliotheken gemeinsam nutzen und mit denselben Datenstrukturen arbeiten, während Programmierer verschiedene Sprachfunktionen nutzen.

Im Folgenden stellen wir einige der wichtigsten Programmiersprachen vor, die für die JVM erstellt wurden. Von Kotlin und Scala bis Jython und JRuby bieten diese Sprachen einfachere und flexiblere Möglichkeiten, Java zu ergänzen, oder leistungsstarke Alternativen, die es ersetzen sollen.

Kotlin

Kotlin wurde 2010 von JetBrains entwickelt und 2012 als Open-Source-Lösung angeboten. Es ist präziser und sicherer als Java. Sie können sich Kotlin als "Java, aber einfacher" vorstellen. Die Syntax ist weniger ausführlich als die von Java und wird häufig schneller kompiliert als der Java-Code. Kotlin erlaubt auch funktionale Programmierstile, die derzeit in Java nicht verfügbar sind, und bietet sicherere und elegantere Möglichkeiten, mit Nullwerten umzugehen. Android-Entwickler wählen für die App-Entwicklung auf dieser Plattform zunehmend Kotlin gegenüber Java.

Zukünftige Pläne für Kotlin gehen über die JVM hinaus. Ein Projekt umfasst das Kompilieren von Kotlin zu maschineneigenem Code mithilfe des LLVM-Frameworks.

Weitere Informationen zu Kotlin finden Sie in Martin Hellers Überblick über die Sprache.

Scala

Wie Kotlin wurde Scala entwickelt, um Java-Entwickler produktiver zu machen. Scala kombiniert funktionale und objektorientierte Programmierung in derselben Sprache und macht das funktionale Paradigma für Benutzer von Java-Ökosystemen zugänglich und nützlich. Außerdem kommt die Scala-Syntax Java näher als die funktionale Alternative Clojure, deren Lisp-ähnliche Syntax für Uneingeweihte verwirrend sein kann. Die Mischung aus funktionalen und objektorientierten Paradigmen macht einen großen Teil der Attraktivität von Scala aus.

Derzeit ist Scala Native in Arbeit, eine Variante von Scala, die über LLVM außerhalb der JVM auf Bare Metal läuft. Für die Produktion ist es aber noch zu früh.

Clojure

Der Entwickler Rich Hickey wollte eine funktionale Sprache in der Lisp-Familie für die JVM erstellen, und er hat Clojure entwickelt, um diesen Juckreiz zu beseitigen. Clojure soll das Schreiben von gleichzeitigen Hochleistungsanwendungen vereinfachen, die überall dort nützlich sind, wo Java ausgeführt wird, aber andere Programmierstile zulässt, als Java traditionell unterstützt. Eine bemerkenswerte Erfolgsgeschichte ist Puppet Server, der von Ruby nach Clojure migriert wurde.

Groovy

Ursprünglich von Pivotal entwickelt, jetzt jedoch unter der Leitung der Apache Software Foundation, baut Groovy stark auf den vorhandenen Erfahrungen mit Java auf und bietet Funktionen, die von dynamischen Sprachen wie Python und Ruby inspiriert sind. Groovy ist eine der Sprachen, die direkt vom beliebten Jenkins Continuous Integration Server unterstützt werden, und ein wichtiges Webframework, Grails, wird damit erstellt.

Zukünftige Versionen von Groovy werden Funktionen in neueren Versionen von Java und der JVM wie die Java 8-Lambda-Syntax umfassen.

Jython und JRuby

Jython und JRuby sind Implementierungen von Python bzw. Ruby für die JVM. Jython ist mit Pythons 2.x-Zweig kompatibel. JRuby ist mit dem relativ neuen Ruby 2.3 kompatibel. Beide werden dynamisch zu Java-Bytecode kompiliert und können frei mit anderen JVM-Sprachen, insbesondere Java, zusammenarbeiten.

Andere JVM-Sprachen

  • Ceylon : Ceylon wurde von Red Hat entwickelt und wurde entwickelt, um einige Probleme von Java zu lösen, wie z. B. seine Ausführlichkeit und seine Verbindungen zu einigen der zugrunde liegenden Mechanismen in der JVM. Ceylon kann so kompiliert werden, dass es auf der JVM, auf der Dart-VM oder auf Node.js ausgeführt wird.
  • Frege : Eine Version der Funktionssprache Haskell für die JVM. Frege-Code wird in eine Java-Klasse kompiliert und arbeitet im Allgemeinen mit Java zusammen, kann jedoch die Unveränderlichkeit und Funktionsparadigmen im Haskell-Stil nutzen.
  • Eta : Eine weitere Haskell-Variante für die JVM. Der angepriesene Vorteil besteht darin, dass Pakete aus dem Paket-Repository von Haskell, Hackage, für maximale Kompatibilität mit dem Haskell-Ökosystem verwendet werden können.
  • Haxe : Haxe kompiliert mit der JVM als eines von vielen möglichen Zielen, einschließlich Web, Mobilgeräten und Bare Metal. Die Syntax erinnert an Java und kann bei Bedarf mit anderen Java-Bibliotheken zusammenarbeiten, wenn sie für die JVM kompiliert wird.
  • Fantom : Fantom ist eine Sprache mit Implementierungen sowohl für die JVM als auch für die .NET-CLR und bietet APIs, die die Unterschiede zwischen beiden Plattformen aufheben. Fantom kann auch in JavaScript kompiliert und theoretisch auf einer beliebigen Anzahl anderer Ziele bereitgestellt werden.