Spotlight on Magik – the newest JVM language
Thanks to invokedynamic, a number of dynamic JVM languages can gain prominence. So what marks out the latest arrival Magik?
Invokedynamic really was a game changer for Java and the
JVM. Its arrival back in Java 7 essentially opening the gate to the
horde of JVM languages out there, especially dynamic languages
through JSR 292.
Although never outlawed, there were several issues with bringing your language to the JVM. However, invokedynamic meant dynamic languages were finally given the support they needed on the JVM via the new method call mechanism.
Since then, we’ve seen a number of languages really blossom (Groovy and Scala being just two) and other vendors have seen the appeal too. In July, GE Energy disclosed that they were in the process of porting their object-oriented programming language, Magik. Four months of development later and Oracle have confirmed its arrival on the JVM.
Unlike many of the other JVM languages, GE Energy aren’t exactly cutting their teeth with Magik, as it’s been around since 1990 – just before Java was making inroads. Inspired by Smalltalk, Magik formed the basis of their Smallworld platform for GE Energy’s business in utilities and telcos. There’s a fair few similarities to Java, as Magik compiles down to bytecode and is interpreted by a Virtual Machine (in this case the Magik Virtual Machine).
So why exactly does Magik need the JVM now, when they’re already established? Jim Connors explains in the announcement blogpost that this integration represents a “serious commercial entity betting a sizable of its business on the success of this effort.”
Amongst the porting reasons include the decision to move away from a proprietary environment towards the open source JVM and the option of using Java’s present libraries and future features, such as lambda expressions. Connors also touts a 5x speed boost over the original Magik platform on the JVM.
Crucially though for Magik developers, legacy applications can migrate straight over through a recompile and the fact that GE can now tap into the nine million developer goldmine could have played a huge draw. Oracle’s recent embedded play for Java might prove useful for GE as well.
The cynical amongst you might see this as mooching off a larger platform, but comments in the blogpost seems to answer those criticisms effectively. As long as GE show future commitment, there isn’t an issue. Whatever you may think of GE Energy’s decision to add some Magik into the mix, you can’t really deny that JSR-292 has made the JVM an universal indicator for programming languages. There’s always room for one more on the JVM.