Many programming languages have been ported to Java in the past. In fact, the JVM has not been simply native to Java for quite some time now. Not only are these other languages useful, they are often headed by big names from the technology world. Here are nine of the best of them.
Groovy – Groovy: This is an object oriented programming language that is similar to Java syntactically, but doesn’t have Java’s clutter. In fact, the compiler for groovy can easily take Java syntax, which allows developers to move seamlessly from Java to Groovy. The language also uses a type inference, which enables it to infer the type of a variable without the developer having to explicitly mention it.
JRuby – Jruby: This is a Java port of the Ruby programming language that uses the terser syntax. While this allows the developer to accomplish much more work with a single line of code. Like Groovy though, this is also an object oriented programming language. Moreover, it also has vast libraries from the Java platform, which is something Ruby doesn’t.
Jython – Jython: This scripting language, aka JPython, was amongst the first few scripting languages to be released for the JVM. It allows for dynamic compilation of Java bytecode. The language was stalled from 2005 to 2008, when the principal developer, Kim Hugunn, quit the project.
Clojure – Clojure: This is a functional programming language that is based on Lisp. In fact, based on its syntax, Clojure lies somewhere between Common Lisp and Scheme. It is big on concurrency and is a good language to use when concurrency is what you want to achieve. This program compiles to Java bytecode and is able to access the Java frameworks.
Scala – Scala: This is a multi-paradigm programming language that combines several programming philosophies. So, it is an object oriented programming language with functional capabilities and also facilitates parallel programming. It is compiled to bytecode and runs as fast as Java.
Kotlin – Kotlin: This is a statically typed general purpose language, which is compiled to the Java bytecode and to JavaScript. This language aims to create performance-critical applications, which are compiled as fast as in native Java.
Rhino – Rhino: This is an open source Java Script engine that has been written in Java. Rhino is managed by Mozilla and has the JavaScript shell for executing scripts. It is also embedded into Java applications often.
Ceylon – Ceylon: This is a general purpose statically typed imperative programming language, which is object oriented but also block structured. Ceylon is quite influenced by Java and is aimed at projects involving team-based development for large programs. It is led by Red Hat.
Fantom – Fantom: This generates bytecode at runtime for the Java Virtual Machine, JavaScript or the .Net platform from Microsoft. It has features similar to JRuby and Groovy and is an object oriented language. It integrates with Java libraries but isn’t as seamless as the other two. It has its own libraries though, which make up in part for the shortcomings.
No comments