Invokedynamic auf der JVM: Golo 1.0 ist da

Claudia Fröhling

Zwei Jahre nach dem ersten Commit ist die JVM-Sprache Golo in Version 1.0 erschienen. Grund genug für Initiator und Projektleiter Julien Ponge, Revue passieren zu lassen. Denn versteht man den Blogpost richtig, soll Release 1.0 keine neuen Features enthalten, sondern vor allem als Meilenstein für die JVM-Sprache angesehen werden. Neu ist jedoch, dass man ab Golo 1.0 auf Semantic Versioning umsteigen will.

Golo und Invokedynamic

Golo ist eine schwach typisierte, dynamische Sprache, die vollständig von den Invokedynamic-Features aus Java 7 Gebrauch macht. Ähnlich wie bei Scala ist die Sprache als Forschungsprojekt entstanden, in diesem Fall an der Universität INSA Lyon. Ziel bei der Enstehung war es zu zeigen, wie eine Sprachen-Runtime effektiv von Invokedynamic Gebrauch machen kann. Dabei sollte die Forschungsarbeit anfangs gar nicht öffentlich werden, wie Ponge schreibt:

Golo wasn’t exactly meant to turn into a real project. It all started back in July 2012 as a summer side-project while some Dynamid research group members further explored the capabilities of invokedynamic on the JVM. […]As the development progressed we quickly realised that we should also eventually share it with the rest of the world. Performance was looking good even with a very simple runtime design, thanks to invokedynamic.“

Aufbau und Ökosystem

Golo verwendet die Standard-Klassen des JDK, was den Einsatz in mehrsprachigen Projekten vereinfacht. Quellcode wird in „Module“ geschrieben, Funktionen sind ein Grundelement der Sprache, auch Closures werden unterstützt.

Was das Tooling betrifft, kann Golo bereits einiges vorweisen. Alle wichtigen IDEs und Editoren unterstützen die Programmierung mit Golo:

  • Eclipse
  • NetBeans
  • IntelliJ IDEA
  • Sublime Text 2
  • Vim

Pläne für Golos Zukunft

Für die Zukunft hat man sich bereits einige Ziele gesteckt, erklärt Ponge. So habe man wegen der begrenzten Ressourcen (es gibt kein wirkliches Funding für Golo) bislang erst ein Research Paper veröffentlichen können. Das wolle man jetzt, wo Version 1.0 da ist, ändern.

Zwei Features sind bereits für die nahe Zukunft in der Pipeline: Decorators im Python-Stil sollen implementiert werden und Lambda-Ausdrücke aus Java 8 voll unterstützt werden. Bislang unterstützt Golo SAM-Methoden, aber noch keine Functional Interfaces mit Default-Methoden.

Geschrieben von
Claudia Fröhling
Claudia Fröhling
Claudia Fröhling hat in verschiedenen Redaktionen als TV- und Onlineredakteurin gearbeitet, bevor sie 2008 zur Software & Support Media GmbH kam und sich bis 2014 um alle Projekte des Verlages im Ressort Java kümmerte. Claudia hat einen Abschluss in Politikwissenschaften und Multimedia Producing. Ihr Google+ Profil findest du hier.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: