The Java platform's strengths — memory management, performance, portability, stability, and versatile libraries — make it highly reliable and efficient. But the Java language itself has become increasingly complex and somewhat limited by its own abstractions. Modern languages for the JVM offer streamlined syntax, support for a wider range of programming paradigms (object orientation, dynamic typing, functional programming, and metaprogramming), the ability to interoperate with Java code, and in some cases better approaches to concurrency. Enterprise developers willing to learn new languages for the Java platform can leverage the most appropriate tool(s) for their programming needs.
Groovy, JRuby, and Jython are well-established, general-purpose dynamic scripting languages for the JVM. Groovy puts the features and libraries that Java developers are most familiar with in an agile development framework that doesn't require compilation, eases syntactical constructs, and lets its scripts be used inside normal Java applications. JRuby is a Java implementation of the popular object-oriented Ruby programming language. Its syntax is quite dissimilar to the Java language's, but JRuby too is tightly integrated with Java and can be called directly from Java programs. Jython is an implementation of Python, an object-oriented scripting language often used in UNIX-based systems, including Linux. Like Groovy and JRuby, Jython can interface with Java code.
Two relative newcomers to the JVM scene, Clojure and Scala, both feature strong support for concurrent programming. Clojure is a functional, dynamically typed derivative of Lisp. Scala is a statically typed language that supports both object-oriented and functional constructs. Both interoperate well with Java, with Clojure possibly holding the edge in that respect.
PHP, an open source, server-side scripting language used on millions of websites and servers, boasts a huge developer community. WebSphere sMash — the outcome of Project Zero, an ongoing community-based incubation project — is a platform for building agile, web-based applications and services quickly via simplified scripting APIs. sMash supports PHP as one of its two scripting languages (the other being Groovy) via an implementation of PHP (originally called P8) on the JVM.
Rate this content
Give us feedback
Submission failed. Please try again.
Please complete one of the following questions before submitting.