Is Java getting better with age?

By Martin LaMonica, CNET News.com
Thursday, January 12, 2006 10:00 AM

newsmaker A surefire way to ignite a Web flame war is to say one programming language is better than another. James Gosling, known as the "father of Java," understands that as well as anybody.

In a recent blog, Gosling walked into the most recent dustup regarding Java and scripting languages.

Scripting languages such as PHP and Python--also known as "dynamic" languages--are simpler to learn than Java and are a popular choice among developers, particularly for building Web pages. Many people, including former Java devotees, contend that the rising use of scripting languages and the so-called LAMP stack of open-source components comes at the expense of Java.

Although clearly biased toward Java, Gosling, now the chief technology officer at Sun's Developer Products Group, isn't losing sleep over the issue. "It feels like we're only a third of the way through exploiting into what we can really do with Java. There's a lot of play in this puppy yet."

Gosling spoke to CNET News.com about the never-ending debate over programming languages, the bright side of being flamed and the future direction of Java.

QUICK POLL
Is it time for Java to retire from the market?
No, it still has some years left
No, but it badly needs an upgrade
Yes, it has gone past its use-by date
Yes, but it could benefit from being open source
Q: There is this ongoing discussion about the merits of Java as a programming language. Many people say that scripting languages are replacing Java. So, is Java's use waning? Is it aging ungracefully? Is it getting old and crusty?
Well, there's a part of me that actually wishes that was true--that would make my life a lot easier. But from everything I see, things like survey data from Evans Data, and just the enormous uptake we keep getting of Java and all the related technologies around it, there's no detectable slowdown.

I know there's a lot of people who wish there was a slowdown. For me the most exciting thing is the way that the excitement is sort of diversifying.

Why did you say you wish it would get old and crusty?
Well, I've been doing this for a while, and there are times when I think, "You know, it would be nice to be able to take a vacation."

It's funny, looking at the blog replies (to his recent posting), I try really hard to steer away from even vaguely controversial topics. But because of who I am, it doesn't take very much before the blogosphere erupts in craziness.

AJAX is pretty cool, but it certainly has its problems.

At one level, I thought I was trying to be very laid back and innocuous, and people were inferring insults when there was none there. But the sort of flipside of that is that there's also a huge number of folks who came strongly to my defense. I thought that was quite heartwarming.

I think one of the best indicators for me these days (of Java's health) is these developer education programs we do around the world. They're just getting bigger, and more and more people are showing up--particularly in places like China and India and Brazil, they are mob scenes.

Let's talk about some of the points that have been brought up. Evans Data had a study showing that use of Java has been going down in North America for the past two-and-a-half years, although it's been going up in Asia. PHP and other scripting languages are getting more popular and robust. And if you look at Web 2.0 companies, it seems that lot of them are using AJAX, which involves scripting.
Well, AJAX is just a style of using JavaScript to build advanced things. It's pretty cool, but it certainly has its problems.

Right. Then there are books like "Beyond Java," which says that Java is great for some things but for Web development, other development languages and frameworks are better. So, what's your reaction to that? Do you think that it's well-founded?
Well, there's bits of both. When you take a look at something like PHP, which is totally focused on doing just Web development--if you're just generating a Web page, PHP is actually pretty good. It's almost a clone of JSP (Java Server Pages), pretty much is exactly a clone of JSP.

The place where I think it's getting messy is when you go beyond something that is purely Web page generation. As soon as you start doing much analysis or integration with other kinds of computation, it gets difficult because something like PHP is very focused on Web page generation.

One of the things that we often find is that people will do the Web page piece in PHP, and then the back-end data analysis kind of stuff is done in Java code. Often, what goes on is not that one technology displaces another, but one technology augments another.

If that increasingly becomes the case--that Java is used on the server, and scripting on the front end--isn't that a problem for Java?
I guess I've always thought of the Web front-end stuff, in the spectrum of the world's computing tasks, to be one of the more straightforward and simple. There's a lot of scripting stuff that people have been doing within the Java context--JavaScript itself, languages like Groovy and J/Python and J/Ruby.

One of the things that is often not well appreciated is that Java is really a two-level language: It's the virtual machine and it's the sort of ASCII syntax…all the other really interesting magic is in the virtual machine, the things that people never actually see. There are many, many, many scripting languages that have been put on top of that virtual machine.

Why would you want to write use scripting in conjunction with the Java virtual machine (JVM)?
One of the nice things about doing scripting languages that way is that they instantly get access to a gigantic library of tools, and they get very highly tuned performance and great interoperability…You can use Groovy and get access to point-of-sale terminal stuff, smartcard stuff and math libraries to do Fourier transforms--whatever gets you excited.

Java was designed for distributed computing and is regularly used for complex jobs. Should Java be used for simpler jobs?
Historically, it's worked very well for simpler jobs. There's just sort of a trade-off though--if you make something so that it does really simple jobs really easily, it tends to fall over when you try to do big things.

One of the things that is often not well-appreciated is that Java is really a two-level language: It's the virtual machine and it's the sort of ASCII syntax.

One of the general design directions for Java over the last several years has been that we had really focused on the extremely high end. So if you were a big bank and you wanted to ride a transaction server that would handle $100 billion a night--and there are people who do that--then all the infrastructure in the Java world would handle that. With that came along a loss of simplicity, because there are all these obscure things that you have to deal with when things are that large. You have to deal with robustness as there really is…in this sort of high-end world.

Ease of use has historically been a barrier for Java adoption. What are you doing about that?
What we've been trying to do, actually, is rather than attack simplicity by changing the language--because often, if you try to make the language simpler, then you destroy your ability to handle the high-end stuff--we've been focusing our efforts for simplicity...on tools. So, if you look at Java Studio Creator, it lets you drag and drop AJAX components and database accesses and things, and build Web pages very, very quickly.

One of the things that's nice about the way that we do that is (what) the tools generate has all the sophistication necessary. You don't have to actually do anything fancy to be able to deploy this on a large redundant cluster with failover, remote management--all that kind of comes along for free.

But then over time, they get bigger and more complicated.
They get bigger and more and more complicated, and you end up with these "fall on your face" transition points, where you have to throw things out. We've tried to make it so that you can start out in a very simple easy-to-use world through the tools, and then as you scale up, the tool reveals more and more of the complexity.


WORTHWHILE?

0

0 votes
Save to my library  Save to My Library  
Blog

Talkback 0 comments

There are currently no comments for this post.

Use shades of gray to enhance scale in Excel

Microsoft Office Suite

Excel's palette is generous, but don't throw buckets of pigment all over your spreadsheets just because you can.


Read more »


Ultimate 2012 recovery site: the moon

Blog thumbnail

Have you seen the disaster movie "2012"? A friend from Control Risks and I did, and we reluctantly concluded we wouldn't be able to write off the cost of our..... by Nathaniel Forbes

Read more »

Tech Jobs Now!


Tags

  1. antivirus
  2. apple ipod
  3. cnet networks inc.
  4. desktop
  5. e - mail
  6. hard drive
  7. intuit inc.
  8. mcafee inc.
  9. microsoft corp.
  10. microsoft windows
  11. microsoft windows vista
  12. microsoft windows xp
  13. norton co.
  14. pc
  15. performance
  16. security
  17. software
  18. tool
  19. web
  20. web site