|Java creator James Gosling|
The Java programming language was launched 10 years ago this month with a series of grandiose claims from its promoters.
Like most IT products, it may not have fully lived up to the launch hype, but it has certainly played a major role in the dramatic transformation of IT over the past decade. Users and analysts agree on Java's impact.
According to John Loiacono, executive vice-president at Sun Microsystems, four out of five of the largest 1,000 US companies that are running or evaluating a major enterprise software package expect it to run on all Java compliant application servers.
UK users and analysts agreed that Java had a central position in the IT department but also highlighted some shortcomings.
Stephen Way, group e-commerce director at bullion dealer Johnson Matthey, has been using Java for the past four years. "The promise of 'write once, run anywhere' has worked for us," he said.
Programming in Java allowed Way's team to create applications using IBM Websphere running on Windows and transfer the code to IBM iSeries servers.
Other major benefits include improved security through the use of Java's Virtual Machine environment. "There is less administration required than other platforms and Java removes the need for patching," said Way.
For Roderick Angwin, former systems director at B&Q, the development of Java has given IT directors a viable alternative to Microsoft. "Java 2 Enterprise Edition combined with thin clients and Linux has changed the dynamics of the industry," he said.
Neil Ward-Dutton, a partner at analyst firm Macehiter Ward-Dutton, said Java had a strong future, despite facing competition from Microsoft's .net language. "Java will continue to provide a powerful platform for the development and delivery of online applications and services," he said.
Ward-Dutton expects most Java use to be by software suppliers for building corporate applications, rather than as a replace- ment for Microsoft on the desktop. He added that Java performance in data integration and transformation functionality and policy-based runtime quality-of-service assurance could be improved.
A major concern among the experts Computer Weekly spoke to was the complexity of developing applications in the J2EE language.
Michael Azoff, senior research analyst at Butler Group, said work was under way in the open source community to address this issue. "Spring is an open source project to simplify Java programming, and make J2EE much less complex," he said.
Sun's control of Java remains an issue for users and analysts. Azoff warned that although the company's current management supported the wider Java community, "a management change could take Java in a different direction. Java needs to be supplier-neutral".
Ovum analyst Bola Rotibi said it was important for Java to become more consistent as it matures. "The Java community needs to work as a single organisation, in order to help users," she said.
Rotibi was optimistic for the future. "Sun and Microsoft working together will improve interoperability," she said.
Johnson Matthey's Way called for more openness in the Java community. Openness among suppliers would allow users to develop applications more quickly by using off-the-shelf JavaBeans components, rather than writing code themselves. "An open [Java] community could lead to open source JavaBeans," he said.
The three main flavours of Java
Sun has grouped its Java technologies into three editions, for particular business uses: Java 2 Platform, Micro Edition (J2ME), Java 2 Platform, Standard Edition (J2SE), and the Java 2 Platform, Enterprise Edition (J2EE). Each edition has its own armoury of developer tools and resources.
Java 2 Standard Edition
The J2SE platform is designed to build and deploy client-side enterprise applications that are fast and secure. It is aimed at developers of functionally rich web applications, such as corporate intranets and interactive shopping tools.
Java 2 Enterprise Edition
J2EE is designed to simplify enterprise applications by basing them on standardised, modular and re-usable components, called Enterprise JavaBeans (EJB). These provide a set of services for those components, and handle many details of application behaviour automatically. J2EE is designed to automate time-consuming and difficult application development tasks, to save time and costs.
Java 2 Micro Edition
J2ME is aimed at developers of consumer devices, from smartcards or pagers to set-top boxes or home computers.