Skip to main content

By clicking Submit, you agree to the developerWorks terms of use.

The first time you sign into developerWorks, a profile is created for you. Select information in your profile (name, country/region, and company) is displayed to the public and will accompany any content you post. You may update your IBM account at any time.

All information submitted is secure.

  • Close [x]

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

By clicking Submit, you agree to the developerWorks terms of use.

All information submitted is secure.

  • Close [x]

Explore alternative languages for the Java platform

Exploit the Java virtual machine's ubiquity and flexibility

Date:  08 May 2012 |Level: Intermediate |

1. Why learn more languages?

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.

2. Modern dynamic languages: Groovy, JRuby, and Jython

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.

3. Functional (and then some) programming: Clojure and Scala

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.

4. PHP on the Java platform with WebSphere sMash

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.

1. Are you finished with this knowledge path?

       

2. How much did you learn?

           

3. Tell us more

  • What did you like/dislike?
  • What can we do better?

2500 characters left

Disabled Submit button

developerWorks: Sign in


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

Choose your display name

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

(Must be between 3 – 31 characters.)


By clicking Submit, you agree to the developerWorks terms of use.

 


Save your progress Green checked checkmark

When you sign in, we will save this item to your developerWorks community home page and track your progress so you know what you've completed and where to resume when you return.

For a list of your saved items, see your My Home > My saved items page.

Thank you for your feedback. We appreciate your sharing your opinion with us.

Do you want to save your progress?

, Sign in to save your progress

Save your progress

Sorry. Our server is not available, and we cannot display your saved progress at this time.

Your progress will be displayed when the server is available again. Any previous progress is retained, and additional progress is being tracked.

If your most recent progress is not displayed within 24 hours, you can click the checkmark to indicate completion.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Java technology
ArticleID=813038
publish-date=05082012