Standarize on Java platform rather than Java language

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?

Comments (8)

  1. Carsten - Reply

    December 6, 2007 at 3:08 am

    In principle I agree: Pick the right tool to do the job right. But in larger organizations it is only half of the story. How many Ruby, Perl, Scala hackers do you have to maintain the code? Even if you master all these languages, who will replace you?

  2. Vikas Hazrati - Reply

    December 6, 2007 at 6:22 am

    I think the restriction/reluctance to stay with a language is to lower the risk for failure and stay with a mature/proven language. Most of the new languages even though they can work on the JVM would have to cross the chasm to become mainstream. That is not to say that they would fall on the side.

    This would (and should) however be different for two types of organizations.

    The business organizations who use technology as an enabler. They would consider other languages only once they have become mainstream and have proven industry support.

    The technology companies however should standardize to the platform. They should keep evaluating new languages as you have suggested and help business make wise decisions by educating them.

  3. IronRuby - Reply

    December 6, 2007 at 10:18 am

    Hi,

    I think Microsoft has taken a right approach for the first time in this direction. They have decided to go the " DLR " way. that means many dynamic languages can run on the same platform.

    This will eliminate the needs to hire programmers of all types of languages. Ruby, Python, VB( Dynamic), C#, Vb.Net, C++ all this languages can be implemented and the plus point is that you can extend the code written in language in our own way.

    That means i can extend/Use the code by a C# developer in my own ironruby code.

    I agree that the platforms are important, but there should be freedom in Languages and Databases.

    IronRuby

  4. Machiel Groeneveld - Reply

    December 6, 2007 at 11:37 am

    If we think new programming languages will increase our productivity our customers should be on the same side. I seriously wonder where the reluctance comes from, the customer or the developers. I agree there is risk involved in using new technology, but also opportunity. Modern business choices evolve around takings risks, if you don't take any risks it's not worth doing. So let's involve our customer in making that choice: get your new software much quicker with some risks that we can manage or run the risk of being overrun by the competition (which is much harder to manage)

  5. Peter Veentjer - Reply

    December 6, 2007 at 5:46 pm

    Martin fowler recently wrote a very nice blog about the same subject:

    http://www.martinfowler.com/bliki/OneLanguage.html

  6. Raghuraman Ramaswamy - Reply

    December 7, 2007 at 8:58 am

    Yes there is a plus point in being open to standardising on the platform than the language.
    But most projects have common functionality and unique stuff. Somehow nothing gets re-used except the existing standard frameworks when possible. Me new here. But do we have any efforts of building a framework on top of existing frameworks, or minimising rampup time for any projects. The issue what I find usually is not with Java as a language itself. But its usually how work is not done in a way to be reusable across projects. Its a difficulat task given so many compleities.
    I tend to stay with Java because its so powerful. It will be such a shame if we cannot solve the puzzle of using Java properly and making solutions that are productized and reusbale as a habit.

  7. Lars Vonk - Reply

    December 11, 2007 at 12:19 am

    @all: Thanks for the replies.

    @Carsten: I think you should always take care in selecting your programming languages. By standardizing on platform you already kind of narrow the languages available. Maybe organizations can let the developers/maintenance decide together which languages they want to use.

    @Vikas: Why should business organizations only standardize on mainstream? I think if you want faster time to market then your competitor you should sometimes invest and try out something new to beat your competitor right?

  8. RubberBaron - Reply

    January 19, 2008 at 2:33 am

    "...are afraid to loose our investments."

    What? As opposed to tightening your investments? (It's lose, not loose).

Add a Comment