Have you ever used JVM for functional languages? You may have noticed some issues arise!
In this talk by Jarek Ratajski at LambdaConf 2018, Jarek analyses where the problems were attempted to be fixed and when it makes sense and it compares to the pure Java/Haskell implementation.
Beauty and the Beast: Haskell for JVM
After 20 years of evolution, the Java Virtual Machine became a real masterpiece of engineering and can easily outperform static compilers in many cases. There are, however, lots of issues arising when someone tries to use JVM for functional languages. The Clojure and Scala compiler creators had to fight with JVM types, the lack of tail recursion, and other problems. It was particularly hard to create an efficient Haskell implementation for the JVM.
The developers of Eta tried it once again in a different way. We will analyze how it works on a sample system, where the business logic is written in Haskell and middleware components and libraries in Java. We will try to analyze when it makes sense and it compares to the pure Java/Haskell implementation in terms of performance and code quality.