Skip to content


Flaming James

There have been lots of negative reactions to a recent James Gosling interview in which he says:

PHP and Ruby are perfectly fine systems but they are scripting languages and get their power through specialization: they just generate web pages. But none of them attempt any serious breadth in the application domain and they both have really serious scaling and performance problems”.

Language flame wars can be fun but this one seems a little over-the-top to me. Some of the commentary has been interesting but why be so defensive? Is it really that surprising that the creator of Java still prefers it over other languages? Is it really that surprising that the CTO of Sun Microsystems might say something dismissive about alternatives to the Java ecosystem? Gosling is a smart guy. He’s not as clueless as some people seem to think. He’s just doing his job.

Note: Gosling just posted his response to the reactions on his blog.

Update: The plot thickens. Commenter Isaac Gouy points out that Gosling’s comments were rearranged for the article linked above. And he didn’t say them during the interview. It was in response to a question from Yakov Fain after his talk. The transcript is here. Here’s what he actually said:

Yakov Fain: There are many different languages in the world. Some people are saying there are some other new languages coming up and Java is endangered. Do you feel this way?

James Gosling: No I don’t, really. Most languages that have been coming up lately have been scripting languages–things like PHP and Ruby. And these are all perfectly fine systems.

A lot of the power that they get is through specialization. So it seems to me that all the languages people are talking about as being exciting today are all ones that just generate web pages. So if all you want to do is generate web pages, they work pretty well. But none of them attempt any real serious breadth in the application domain, and they all have really serious scaling and performance problems.

In all of these dynamic languages, if you try to write something in them that has serious performance requirements, they all fall over horribly. If you write a statement a = b + c, Java versus PHP its close to a factor of 100 in performance difference. What’s really nice about them is that because they’re focused in that one domain, they can make a lot of programming in that one domain a lot simpler.

What we’ve been trying to do is get a lot of that simplicity out of the tool. Because we have this horrible balancing act. On the one hand we really need simplicity, and on the other hand we really need power. And those are evil twin brothers of each other. Building systems that have a lot of power just sort of attracts complexity. And because of the way that the world has become so interconnected, it helps hugely to have systems where you do have a framework that carries over.

So with PHP you can write stuff that does web presentation stuff pretty well. You could never write a library that does interplanetary navigation in PHP. It just doesn’t work.

The other one that’s out there is C# from Microsoft. At some level it is hard to criticize C# because they just copied the Java spec. There was a time when we were afraid they were going to do something really creative, and they didn’t. They chose not to [garbled] borrowing. And they’re obviously focused on one platform.

We also try to work with all of these. We know there’s lots of folks who talk about Java versus X or Java versus Y. And we work hard to make sure Java works with PHP and works with Python. So you can do the web presentation layer in PHP. Lots of people do the web presentation layer in PHP and analytics in Java, because Java’s really good for doing high performance analytics.

In the full quote he’s still somewhat dismissive but there’s more context.

Posted in Uncategorized.


0 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.



Some HTML is OK

or, reply to this post via trackback.



bob congdon is Digg proof thanks to caching by WP Super Cache