Why Java is ready for enterprise applications
Java is here, enterprise ready, and already running at more than 10,000 companies, large and small. This Emerging Technology commentary is part of a new bimonthly segment of JavaWorld that discusses current Java trends. In it, I will examine Java and alert you to developments in the ecommerce world.
Java is an important language. It’s easy to learn and it’s gaining momentum every day. Its absence of multiple errors, removal of templates and pointers, and incorporation of garbage collection, synchronization, and multithreading have made it an improvement over C++. It also has a practical mix of primitive types and object-oriented constructs.
Over the past few years, Java has been portrayed as the do-everything tool, perhaps prematurely. But the hype was no fault of Java or its designers; it was merely the natural consequence of two corporate dynamics: the evangelistic marketing of vendors who tout a product as a panacea for all ailments, and quirky project specifications with poorly defined, shifting targets. Hence, fabled expectations that Java would dominate the desktop space and would replace HTML were never met. That is because, early on, Java lacked speed and because tools such as XML diminished the need for Java on the desktop.
Today, Java has evolved into the best solution for your well-specified server-side applications. It is portable, reduces development time, and minimizes development costs. But no matter what the technology, the correct development solution for you depends on your application.
Is Java ready?
Java’s simplicity, compared with the requirements of C++, allows a developer to write more code in less time. Scalability, security, and time to market are critical issues in enterprise computing, where server-side and Enterprise JavaBeans answer the calls of tens of thousands of concurrent clients. Companies such as Oracle — which says that Java has improved its database and enterprise resource planning (ERP) capabilities on disparate platforms — have benefited from the productivity gains that only the Java language can deliver.
But not everyone is convinced of Java’s ability. Some pundits characterize Java’s scalability in enterprise implementation as problematic and opt to use a C compiler or assembler for more control. However, with any higher-level language such as Java, you must give up some control to increase productivity. A productivity gain is one of Java’s many strengths. Other critics question the efficiency of a language in which specific areas of memory are continuously being allocated and reallocated. Although a valid concern (other languages have been known to perform better than Java), Java’s rewards far outweigh its setbacks. Java is easier to write and modify, and it is less prone to bugs than other languages.
Java is also easier to maintain than C++. Since creating and maintaining software is a manager’s greatest expense, those with finite budgets reap more from using Java. Let’s say you’re throwing a dinner party for a group of 40 that unexpectedly grows to 100. Do you buy china and wash the plates between courses, or do you buy paper plates and throw them away? Java is just a better tool to do some household jobs — and scalability and productivity are some of its major attributes.
Don Ferguson, chief IBM WebSphere architect, told me his company did a lot of assurances for its customers by writing initial applications in both C++ and Java. They typically saw only a slight reduction in speed with Java versus C++, a small price to pay for Java’s advantages in a mission-critical arena.
Java tools
Java development tools have also improved. BEA Systems’ WebLogic and Bluestone’s application servers, the Cloudscape DB engine, Sterling’s Cool Joe products, and the Metameta debugger tool provide their stacks for quick and efficient use, and are all written in 100 percent pure Java. Major databases, like IBM’s DB2 and those from Oracle, are now Java enabled.
Java has handled security, application programming interfaces, content, and documentation while maintaining the object-oriented paradigm. For example, Java’s digital signing ability allows the system to know exactly who wrote the software. From the standpoint of security, Java, compared with other platforms, is immune to viruses.
Among development tools, there is no one solution to the problems of reliability, availability, and scalability. Sun engineers are working diligently to minimize Java’s footprint and startup time. Those improvements will be available in the Kestral release due in early 2000.
Java and ecommerce
Do you use Java for your ecommerce Website? Today’s Java platform includes all the services you need to write an enterprise-scale application. Enterprise systems must approach round-the-clock application uptime, an important goal that Java can meet. As the Java APIs gain further acceptance, more Java-enabled applications will span almost every platform.
In the high-tech world, nothing exists forever, but Java has succeeded in the data center and makes sense for modern ecommerce. Taking advantage of the work already done by Java engineers will help you get your ecommerce apps up and running faster. Java engineers have already provided a faster virtual machine, better-tuned libraries, and richer features that all help support today’s Java platform.
And with improvements to HTTP support, Java servlets can now connect directly to all browsers, enabling infinite scalability for dot-com and ecommerce business.
Who’s using Java
Today, the majority of Fortune 500 corporations, including the Bank of America, General Electric, and Xerox, have some type of Java application rollout. Many companies are attracted to Java’s time- and cost-saving abilities, its selling attributes and economies (which include rapid prototyping, scalability, productivity, and security), and its write once, run anywhere promise.
Velocity, a major Java system introduced in August 1999 at Charles Schwab, replaced E*Schwab to place trades and to provide balances, trading history, and quotes using JavaBean components (see Resources). This desktop application supports Schwab’s most active traders. Schwab’s Velocity system uses Marimba’s Castanet, which runs on the Java application server — keeping the Velocity software up-to-date. Velocity also uses Java Swing for desktop editing. Java handles the high number of concurrent users by updating Schwab’s customers’ desktops by means of Castanet. For all of Schwab’s critical requirements, Java was the answer.
Wells Fargo bank was on an acquisition binge, found itself with 25 completely disjointed systems, and needed an application to merge them. Its initial request was for an enterprise model in C++ with the detail work performed in the backend of the middle-tier object server. Productivity gains persuaded bank managers to use the Java solution. The application was up and running in 60 percent of the allotted time.
“Java has become the language for providing platform independence. It is the new model for network architecture,” says Rose Hsu, who cofounded Future Presence, a Java consulting firm, with me. “Using Java’s comprehensive class libraries, developers have found that design-to-implementation time has decreased significantly…. Java’s robust backend platform and object-orientation make it the best solution.”
And according to Harvey Gand, principal of Lloyd/Harvey, an Internet management consulting firm, “Java delivers. Our clients require maximum application-development-dollar return with minimum risk and immediate payback. Java delivers the portable business systems in the least time and cost with the most implementation flexibility. It’s the answer to contemporary business application needs.”
Conclusion
Java is fast, flexible, and secure, and it is used in many corporations today. Do not get left behind. Developers will enhance productivity by taking advantage of the latest Java technology and tools. In my next column, I will discuss Java’s place in the exploding Net economy — beyond Y2K.