Java set to reach its prime in two years

Software Specialist claims language to deliver better gains than C++.

Java will not be ready for building essential enterprise applications for another two years because the language is still maturing, according to a Java evangelist at Sun Microsystems.

But, when this happens, users can expect to see twice the productivity gains of C++, claimed Gary Downing, Java enterprise technology evangelist at Sun, during a discussion on whether C++ was a legacy language at the Comdex Enterprise show in San Francisco this week.

He said: 'If you're trying to do millions of transactions per second, Java isn't ready yet because the language is still maturing, but it will be ready in the next couple of years. Java is only in its fourth year and it's attacking the same problems as C++. When the APIs are mature enough, it will provide productivity gains of better than two, so most developers are cutting their losses on C++ and moving to Java.'

However, Allen Holub, president of Holub Associates, claimed that the Java threading model was still poor, which means it does not perform well on symmetrical multi-processing machines and the language was not good at handling the strings necessary for database applications.

There are also no decent modelling tools on the market for generating Java, he added, which meant some current application design work needed to be done by hand.

Despite his criticisms, Holub pointed out: 'It's harder to accidentally make a mistake in Java than it is in C++. It's much simpler and certain dangerous aspects of C++ have been removed. The language is so-so, but the libraries are wonderful with a lot of good structure. We've learnt a lot from it with things like Java garbage collection, which is now being developed into libraries for C++. Just give Java a little longer to defend itself,' he said.

But, Stan Kelly-Bootle, author of The Computer Contradictory, claimed that the advent of Java into the market did not necessarily mean that C++ was dead.

'The definition of the term legacy for software means it is mature, reliable and unfashionable, so no one can say C++ is old and on its last legs. C++ has a good 20 years behind it, so you shouldn't apply the negative connotations associated with legacy. There's no degree of infinite maturity, but there are problems to be faced that Java can't deal with, and it's very risky to do large applications in Java.'

In June, Sun created a Java standards division in an attempt to create a boundary between its standards effort and the revenue-generating side of the business. The aim was to convince critics that Sun is a worthy guardian of the standard, following widespread fears that it has too much control over the technology.