Paul Krill
Editor at Large

Which code is best? 3 JVM languages duke it out

news analysis
Oct 29, 20153 mins

At JavaOne, proponents of Frege, Kotlin, and Mirah make their case to developers

Green monitor screen with code
Credit: Thinkstock

The Java Virtual Machine has become a popular destination for programming languages other than Java itself. Three of those languages — Frege, Kotlin, and Mirah — squared off at the JavaOne conference this week, with each ready to reach new milestones in their development.

Frege, voted most popular language among attendees in the conference session, is a Haskell. The language scored a GitHub rating of 1,392 stars and is useful in cloud application development, said project committer Dierk Konig, director of engineering at Canoo Engineering. “The cloud story of Frege is really, Frege takes Haskell code and compiles it to Java [source code].” Therefore, the cloud story for Frege is exactly the same as Java, he said. Frege offers functional programming, a strong static type system, and global type inference. It can use any Java library.

“The next release will focus on getting all those little deviations from Haskell ironed out so that we are as close as possible to Haskell,” Konig said in an interview after the session. That release, version 3.24, is due soon. He explained there have been some deviations from the Haskell syntax that will be fixed.

Mirah, which had been headed by JRuby developer Charles Nutter, is now the pet project of maintainer Nick Howard, a senior software engineer at Twitter. The language has been billed as bringing Ruby capabilities to Java. It is a static language that uses Ruby syntax but has no runtime JARs. “If you understand Java and you’re familiar with Ruby, you might like Mirah,” Howard said. The language was rating 766 stars on GitHub and finished second in the JavaOne session polling.

Mirah is sort of a Java substitute and can take advantage of existing tools. “It’s compiling the same kind of byte code that Java does,” Howard said. Additionally, a tool called Pindah can write Android applications in Mirah. The next Mirah release, vesion 0.1.5, is due out within days and will feature a faster compiler. A planned 1.0 release may add generics, extension methods, and gradual typing.

Kotlin, which recently issued a 1.0 beta candidate release, is a JetBrains project, registering 2,213 GitHub stars but finishing third in the conference session polling. It is a statically typed language for the JVM that also supports Android development and writing of domain-specific languages. “Because it’s completely compatible with Java 6 and 7, you can run it on Android,” said Hadi Hariri, team lead at JetBrains. A 1.0 release is planned by the end of the year.

Hariri positioned Kotlin as concise, versatile, safe, and interoperable. In building the language, JetBrains wanted to set up Kotlin for quick starts. Developers familiar with Java, C#, or JavaScript can get up to speed with Kotlin in a single day, he said.

Paul Krill

Paul Krill is editor at large at InfoWorld. Paul has been covering computer technology as a news and feature reporter for more than 35 years, including 30 years at InfoWorld. He has specialized in coverage of software development tools and technologies since the 1990s, and he continues to lead InfoWorld’s news coverage of software development platforms including Java and .NET and programming languages including JavaScript, TypeScript, PHP, Python, Ruby, Rust, and Go. Long trusted as a reporter who prioritizes accuracy, integrity, and the best interests of readers, Paul is sought out by technology companies and industry organizations who want to reach InfoWorld’s audience of software developers and other information technology professionals. Paul has won a “Best Technology News Coverage” award from IDG.

More from this author