Die neue JVM-Sprache unterscheidet sich von Scala, Clojure

Eine andere JVM-Sprache, der Haskell-Dialekt Eta, ist aufgetaucht und konzentriert sich wieder auf die funktionale Programmierung.

Eta ist eine stark typisierte Funktionssprache für den Aufbau skalierbarer Systeme. Es ähnelt Scala, einer JVM-Sprache, die auch die funktionale Programmierung und Skalierbarkeit betont, und Clojure, einer anderen funktionalen Sprache in der JVM.

Aber Eta unterscheidet sich von solchen Konkurrenten, weil es standardmäßig unveränderlich ist, eine verzögerte Bewertung verwendet und über ein sehr leistungsfähiges Typensystem verfügt, sagte Eta-Gründer Rahul Muttineni, CTO bei TypeLead, der die Sprache überwacht. Diese Kombination ermöglicht statische Garantien und Prägnanz, die in Scala oder Clojure einfach nicht möglich sind.

Derzeit ist Eta in einer Alpha-Version Version 0.0.5 mit Java interoperabel und ermöglicht die Wiederverwendung von Java-Bibliotheken in Eta-Projekten und die Verwendung von Eta-Modulen in Java. Dank der starken Typensicherheit können Entwickler dem Compiler mehr Informationen über Code mitteilen, während die Unveränderlichkeit in Eta die Parallelität erhöht.

Eta bietet auch Reinheit, bei der das Aufrufen einer Funktion mit denselben Argumenten jedes Mal dieselben Ergebnisse liefert. Funktionsdefinitionen werden als Gleichungen behandelt und Substitutionen können wie in der Mathematik durchgeführt werden. Eta-Befürworter sagten, dies erleichtere das Verständnis von Code und verhindere viele Fehler, die für imperative Sprachen typisch sind. "Mit Reinheit können Sie Ihren Code wie Gleichungen in der Mathematik behandeln und es viel einfacher machen, über Ihren Code nachzudenken, insbesondere in den Einstellungen für Parallelität und Parallelität", sagte Muttineni.

Eta ist "standardmäßig faul", was bedeutet, dass Daten in einem nicht bewerteten Zustand bleiben, bis eine Funktion nach innen sehen muss. Auf diese Weise können Entwickler programmieren, ohne sich Gedanken darüber machen zu müssen, ob sie mehr Berechnungen durchgeführt haben als erforderlich. Entwickler können auch Multipass-Algorithmen in einem Durchgang schreiben. "Durch Faulheit können Sie aufhören, sich Gedanken über die Reihenfolge zu machen, in der Sie Ihre Aussagen schreiben", sagte Muttineni. "Geben Sie einfach die Datenabhängigkeiten an, indem Sie Ausdrücke und ihre Beziehungen zueinander definieren, und der Compiler führt sie in der richtigen Reihenfolge und nur dann aus, wenn die Ausdrücke benötigt werden."

Pläne sehen vor, Eta mit einer gleichzeitigen Laufzeit, einer interaktiven REPL, Metaprogrammierung, massiver Parallelität und Transaktions-Parallelität auszustatten. Die Unterstützung für den Maven Build Manager und eine Kernbibliothek sowie die Generierung von Boilerplates für den Import von Java Foreign Function Interface sind ebenfalls in der Entwicklung.