In most organizations you often have the restriction that software needs to be implemented in one language (in our case Java). I think this is often based on certain assumptions like: "It saves money because the employees do not have to learn more than one language." or "We have invested a lot of money in these expensive commercial Application Servers and are afraid to loose our investments."

Although these arguments are valid at some point, I think standardizing on language is outdated.

Nowadays with languages like Ruby, Groovy with frameworks like Ruby on Rails and Grails it is possible to create certain types of applications much (spectacularly some proclaim) faster than it would be when creating the application in Java. So by not allowing developers to use new technologies these companies actually loose money. Since Ruby on Rails applications and Grails applications can also be deployed in on Java Application Servers the investments in the Application Servers are protected. Furthermore Groovy is syntactically very similar to Java so there is no really steep learning curve for developers there.

Also most developers already played around with these new languages and are in my opinion eager to learn new languages. By actually letting developers use these new technologies in the real world it is my guess they will be more happy, gain more experience and in the end will become better developers.

So instead of standardizing on Java the language, I think it might be better for companies to only standardize on Java the platform (being the JVM). What do you think?