With C# and .NET from Microsoft breathing down its neck, Java is facing more heat than it has before. Java creator James Gosling explains Sun's gameplan: A simpler Java that can be deployed faster.

Despite the recent truce between Microsoft and Sun Microsystems, forged, of course, to the tune of US$2 billion that the Redmond-based company forked out in a settlement with the Silicon Valley one, James Gosling makes no bones about his distaste for Microsoft's -dictatorship".

The famed creator of Java, who last November was appointed chief technology officer of Sun's development tools division, spoke to Builder Asia recently when he was in Singapore for the company's -Sun Tech Days 2004" developer conference. Explaining why Microsoft must be resisted, he put it in blunt analogy: -No dictatorship has ever been good for the human society."

-Well, except perhaps Queen Elizabeth I," he said, after tarrying slightly.

While not everyone shares Gosling's view about Microsoft's -dictatorship", no one would argue that in the free world, Microsoft's larger-than-royalty money coffers can be more dominating than any queenship. And with its C# programming language and .NET architecture gaining ground by the day, Microsoft is encroaching on the Java turf like never before.

-It's going to be a day-by-day struggle," Gosling admits. -Competing with Microsoft always is."

So what is Sun's response? In a wide-ranging interview, Gosling revealed Sun plans to take on Microsoft in its own .NET turf: by making Java simpler. And he also talks about the direction of Java Developer Tools , dynamics of the Java community, market potential of smart phones, and of course, Microsoft's hegemony.

What does Sun want to do with developer tools? What is the big picture?

Gosling: We've been building a lot of stuff that's taking us in two major directions. One is the (building of) high-end enterprise developer tools for managing and deploying the app-server and dealing with the whole J2EE cycle, catered people who are doing really high-end J2EE development.

"People are naturally loyal to where their paychecks come from. And that feels to us (that the Eclipse situation is) kind of like a sham."
-- James Gosling

The other major direction is the focus on ease-of-use, and rapid application development. This is where you want to be able to very easily and quickly build applications that fit into very sophisticated infrastructures. This is embodied in a tool which we call the Java Studio Creator. And it's very much focused on enterprise developers who are trying to put together Web tier applications that tie together data sources, which are either Web services or databases, with presentation layers on Web pages.

Are these two sets of tools targeted at different types of programmers and developers?

Not necessarily, although in general we expect they will be different people. More likely, they'll be different members from the same team. So one is about people who are really doing programming, while the other is about people who are trying to avoid programming.

So Java for people who are trying to avoid programming? Is Sun making Java easier to use because it is responding to criticisms from developers?

Actually, Java, as a programming language, is one of the easiest-to-learn programming language out there. The complexities (that people talk about) has less to do with the language and more to do with (working with) the different APIs. And many of the APIs are really sophisticated, particularly if you look at J2EE.

There is a huge amount of sophistication there so there's a lot of power to allow people to build these gigantic, mission-critical, high-performance and high-scale applications. So if you want to build say, an infrastructure for a large global bank or a national medical system for a 100 million people, no problem. All the facilities with J2EE deals with that kind of scale.

(But) the problem with dealing in that kind of scale is that it brings about a certain amount of complexity. So our system have tended to be, well... like if you want to do the really hard stuff, it is possible, but doing the easy stuff, it is hard.

If you look at the Microsoft world, doing the easy stuff is easy, but the hard stuff? Impossible. And so we've been on this major push to make the easy stuff easy. But at the same time, with Java, the easy stuff that people build fits into these very large scale sophisticated environment.

So what you get out of Java Studio Creator is actually a full-blown J2EE application with all of the bells and whistles that you can get out of J2EE, but that is automatically configured and made very easy to use.

Will this push to make Java simpler take precedence over all other things that you want to do for developer tools?

We are putting somewhat more emphasis on the rapid application development (focus) primarily because it hasn't been a strength for us in the past. We have been much stronger in the very high-end and we are trying to compensate for that. But that doesn't mean that we will be turning one direction over the other. We will be taking a balanced approach.

Why now? Why is Sun only now trying to make things simpler with Java?

Largely because it has been the one area where we've felt that we were having difficulty competing with Microsoft. A lot of the issues that we had in customer engagements has been that Microsoft folks can come in with their tools and they could slap together a demo pretty fast. The demo doesn't actually scale up to anything useful but they sort of capture the good customer straight away, with the quick-and-dirty demo. So we want to be able to counter that by being able to build these things very quickly.

But we don't want them to be just demos. We want them to be real applications. We want them to be really able to scale up and fit into the large-scale infrastructure that people are building.

Besides quick-and-dirty Java demos, what other areas is Sun looking to beef up?

One of the big areas that we are starting to work on is collaboration. Like how do you take the IDE tools that (sit on) individual workbenches and use them on projects? In the 4.0 release of NetBeans, there are some features that can help the developer do things like, say, integrate instant messaging into the developer tools.

Does Java need to make a quantum leap in the next few years to stay ahead of competition like PHP, Perl and C# with .NET?

PHP and Perl are pretty much limited these days to just generating Web pages. And that's a fairly small fraction of the Java universe.

The real competitor for us is, of course, Microsoft and .NET. And it's going to be a day-by-day struggle. Competing with Microsoft always is. C# is an interesting one for us because...well, actually, it is hard to criticise C# because it is such a total clone of Java! But the fact is that Microsoft didn't really do anything interesting with it. We had originally feared they would, but they decided not to.

Because of Microsoft's market strength, C# is difficult for us to deal with. (Still), we have been pretty successful at turning their strength into a weakness, namely that .NET is a product from one company, whereas the J2EE world is a community. It is a set of products from a set of competitors. So if you are a CIO making purchasing decision, if you go into .NET, you will only get one provider. But not in the J2EE world. And we have a long history of being able to build solutions that scale dramatically.

I mean technologically, we are in great shape. But they have a bigger marketing budget than God. So they are difficult for us.

But is just a matter of money? What about the value of Microsoft's technology? What do you think of C#'s strength as a programming language?

Well, because of Microsoft's monopoly, them leveraging on their monopoly, their incredible cash position and all of that, it really doesn't matter what anybody's technological evaluation of Microsoft product is. (A Microsoft product) can be arbitrarily bad and it can still be a very tough competitor.

Can you help me understand Sun's position about using Microsoft applications after the recent money settlement? In your Web blog, you emphasised the fact that Sun remains totally in control of whether or not to access Microsoft specifications, and because of that, Sun hasn't technically brought Sun and Java users into Microsoft's licensing clutches.

But what happens when you do decide to incorporate Microsoft specs at some point?

The way the agreement works, it is really not possible for us to incorporate any Microsoft specs into any open-source projects. So far, we got all our interoperability information based on reverse engineering, and we will continue to do reverse engineering, or use publicly-available specs, for all our open-source (projects).

As a company, and as a general policy, we try to stay away from stuff that has intellectual property (IP) encumbrances. So far, we haven't chosen to come up with independent point products that access Microsoft specifications to achieve various sorts of interoperabilities, whether it's with Exchange or their file servers or name servers or whatever.

But will you take that option?

Hard to say. It will have to be a case-by-case analysis. This is still early days and we haven't actually decided to do anything with (this option). We just got the option to do it as part of the agreement with Microsoft.

We certainly won't exercise that option with any of our open-source stuff. We will not be contaminating any of our products with these IP constraints. We couldn't anyway because Microsoft will take us to court. We are only allowed to do it for things that we keep proprietary, and we have very little proprietary software.

Sun always paints Java as a product by a community, while Microsoft's are proprietary. But in the same way Microsoft competes with Sun in products, Sun competes with the Java community in, say, tools. What's the difference in that?

Let me use a sports analogy to describe the way I feel about this. It's like you got some sports like soccer. A soccer match with only one team is really pretty boring.

So you need a league, and we tend to think of the Java community as kind of like a sporting league. You want to compete within a league that's healthy. And a league is healthy because you've got (many) teams to play against. But yet, when you are playing, you'd want to beat the other teams.

You are talking about fair competition. But if you are like NBA, which has a commissioner to make rules for the league, how fair would competition be if the commissioner puts out his own team? Isn't Sun holding the post of commissioner of the Java league?

Well, Sun tries to wear two hats. We are the ones who created the technology in the beginning. There isn't really a neutral third-party. There have been various discussions about actually creating a neutral third-party that could sort of be the league commissioner.

The problem is that creating such a commissioner would be a very expensive thing. And exactly how that would get funded is the big question. It would have to get funded by the industry somehow, but yet, not compete with the industry. And not have any products.

Now to do the kind of stuff that we do, as sort of shepherds of community process, and central engineering site for JDK development is not a cheap thing.

Look at the Eclipse open source project (http://www.eclipse.org/). It's now an independent entity separated from IBM. But if you look at where the paychecks for all its members and all the people who work on Eclipse come from, it seems to be all IBM paychecks still. So where is this neutrality? I mean the people are naturally loyal to where their paychecks come from. And that feels to us (that the Eclipse situation is) kind of like a sham.

So we've never come up with a neutral third-party model because we don't feel that it would actually work. Instead, we've been doing this very delicate balance to try to, sort of fill both roles.

How do you feel you've done so far?

Well, we've set up this set of rules for how the JCP (Java Community Process) works. Actually, the rules weren't established by us, but by the community itself. The rules for running the community are established by a JCP expert group, the JCP charter. And that continues to evolve without being determined by us.

This is the position that we consciously put ourselves in because we want the various companies that are sort of also competitors (among themselves) to feel like they are very much a part of the process.

How then, do you deal with dissenters?

We've been involved in all kinds of standards-organisation. And anytime you get folks in a room, there's always going to be yelling and screaming. Anytime you get more than one person in a room, you've got politics. The question is not so much whether there's tension and argument, but whether or not those things get resolved and people move on.

I think we've actually been very successful in the organising and running of the (Java) community. In fact, some of the communities that potentially have the greatest chance for serious trouble, like the cell phone standards body MIDP (Mobile Information Device Platform) group, have surprised us. They released the MIDP 2.0 spec in record time, and they've been getting pretty good at coming to agreements as a group.

On the subject of mobile phone platform, where do you see mobile phone application development going?

Cell phone development is doing very well in Asia, as well as in Europe. But North America is just...well, the infrastructure in North America is just horrible. The phone companies there are just too bizarre for words.

What made them bizarre?

Well, company politics, short-sightedness, and just stupidity of the phone companies there. Well, you know, it's a bit of everything!

Don't phone companies in North America want to make money in creating smart phone services, like here in Asia?

Oh yes! And there's lots of money to be made. If you look at the folks who have been doing this the longest so far, the Japanese, and you look at a telephone company like NTT DoComo, they've made huge money from Java phones. Those have been a really, really big money-makers for them.

But what ends up happening in other markets (like North America) is that phone companies want to have too much control. NTT Docomo succeeded largely because they decided that open up their phone platform and thus enable a huge developer community. And that developer community subsequently created lots of software that fed back to NTT Docomo, which got a share of the revenue.

But North American phone companies are very leery of this whole open architecture thing. They are very leery about sharing revenues with anyone.

In other words, if you are a cell phone developer, come to Asia..

Gosling: Exactly.

What will be the biggest challenges for phone developers?

The biggest challenge is not at all technological. It is figuring out what people would spend money for. So far, 95 per cent of what people have been successful at making money out of is games. Identifying what kinds of applications can you do beyond games that can generate the same kind of enthusiasm will be the real challenge.

The technology is not the gating item here. The hard problem right now is figuring out what the product's got to be, and what consumers will pay money for.

Last question, what does the apha-guru of Sun do for fun?

Well, most of my spare time is spent being dad. When you got two kids, that sort of sucks up all of your free time.

Besides that, I really like to do 3D computer modeling. I designed the Java-One T-shirt designs like this T-shirt here.

At this point, Gosling stretched forward, tugged at his rather tight T-shirt and pointed to the imprinted -Java Duke"ââ,¬"that pointy-head, red-nosed, penguin-shaped cartoon figure that started life about a decade ago as the first ambassador of Java. Looks like Mr Java himself still supervises the Java empire from the smallest of details.

Do you need help with Java, C, or C++? Gain advice from Builder AU forums

Related links

Comments

1

Smalltalker - 07/05/04

Microsoft ripped off Java. Java ripped off Smalltalk (And butchered it)

Smalltalk can do that. Try it some time. Smalltalk is the simpler Java.

» Report offensive content

2

chandrababu - 29/02/08

system to manage a sporting league

» Report offensive content

3

chandrababu - 29/02/08

coding for the system to manage a sporting league

» Report offensive content

Leave a comment

You must read and type the 6 chars within 0..9 and A..F

* indicates mandatory fields.

3

chandrababu - 29/02/08

coding for the system to manage a sporting league ... more

2

chandrababu - 29/02/08

system to manage a sporting league ... more

1

Smalltalker - 05/07/04

Microsoft ripped off Java. Java ripped off Smalltalk (And butchered it) Smalltalk can do that. Try it some time. Smalltalk is the ... more

Log in


Sign up | Forgot your password?

What's on?