In-Depth

Tales from the Java shops

One-hundred-percent purity is something we don't often find in life, so it is not surprising that a surveyor of the new Java landscape finds plenty of developers who sprinkle a bit of C++ in their Java server-side code. At this early stage in the language's life, that is to be expected. Perhaps the only drawback is that the pragmatic group of developers that mix languages may not end up as finalist contestants for a "Genuine 100% Pure Java" ribbon from Sun-originator Sun Microsystems, Mountain View, Calif.

No matter. There is also a good number of developers who have taken the World Wide Web and Java wholly to heart. They maintain that full adherence to Java is both possible and necessary. Whether they are purists or not, few among those we have talked with have encountered insurmountable problems with Java.

Across the board, Java developers are impressed by its object-oriented nature. They are also captivated by its cross-platform promise. Fast-moving mid-sized shops that have specialized in client/server computing, especially, are heeding the Java call.

Middle-tier merry-go-round

DCI's George Schussel describes the emerging Internet-standards-based architecture as "browser/server computing." As tools vendors promote Corba and DCOM as middle-layer glue, architectures will resemble traditional distributed object schemes.

While Java users note drawbacks, most cite the language's incredible marketplace momentum as the reason they are confident today's kinks will be ironed out. Java shows promise, it seems, of being standard enough so that Java-written applications will survive future platform shifts, without recourse to emulation technology.

What are kinks to iron out? Here, the kinks are speed of performance, extent of portability, and quality of tools. One might add extent of Java experience, but there seem to be plenty of programmers ready to learn the new language that takes C++ a step further in object-oriented terms, and, at the same time, shields the programmer's application from attachment to any individual computing platform.

In a way, networked Java-based applications look to capitalize on lessons learned by the C++ troops in client/server computing. Thus, we have the Java-based server -- acting as an application server -- situated in the middle tier of a three-tiered computing architecture. This approach was not invented by Java vendors. They hope, however, to take the concept another step ahead.

Languages normally begin their lives in a supplementary manner -- both in specific applications and within the developer community. For example, many developers at one point began to do the bulk of their coding in C but still dropped down to assembler for performance-sensitive system calls. Latter C++ was de rigueur, but C and assembler were still used to get "the last 9 yards" of performance.

Because Java is an interpreted language, it has a certain amount of natural execution overhead. It is also still new. So one would expect designers to use modules of C, C+ or C++ code where they think it is useful. Java purists say writing to C is backsliding. It means writing to a particular operating system and hardware platform, negating Java's cross-platform promise.

Sun leader Scott McNealy tells developers: "You should be careful you don't use C++ [and other non-Java languages]." With boyish grin he likens this to dropping a few drops of poison into an otherwise pure drink of Java. McNealy's desires for Java homogeneity are carried forward by the 100% Pure Java initiative announced in late 1996.

McNealy admits that, with desktop powerhouse Microsoft as a nemesis, his job is to be a "quote machine." Is his statement about poison mere hyperbole? Would Jon Kannegaard, vice president of software products at JavaSoft, allow that an application using any bit of C++ could still be kosher?

"It's not 100% Pure Java," says Kannegaard, echoing the assertions of McNealy and others.

"If you have to use C++, use it. But it's not portable," Kannegaard said, noting several steps that Sun Microsystems (and its associated SunSoft and JavaSoft divisions) are taking to make portable Java faster, and C++ obsolete.

Some C crews

Dave Writz, vice president of advanced technology for Milwaukee, Wis.-based system integrator Cornerstone Inc., is among a host of new Java users who employ the language, but who dip into C++ if need be. Writz employs Java on the client side for presentation, and a mix of Java and C++ on his servers. He has encountered no serious compatibility issues in his use of Sun-authored Java virtual machines (VMs) running on Windows NT and Solaris.

"We have some C++ DLLs or shared libraries we call in," Writz said. "We may use some C++ if there are existing platforms with, for example, business logic we have to access." Still, Writz is "pretty satisfied overall" with Java. Where he has had various concerns about performance, Writz, who uses Menlo Park, Calif.-based NetDynamics Inc.'s application server and tools, has addressed these using Symantec's JIT compiler technology for Java.

Chris Christian, principal, CRC Business Solutions, Atlanta, helped a client "go live" in July with an Intranet application that lets Web browsers view human resource data as either HTML documents or Java applets. Christian used New York-based Prolific tools and server technology. His firm specializes in Web implementations and data warehousing.

In effect, Christian needed a solution that was not whole-heartedly Java. Some users, he noted, would prefer a non-Java, HTML-based interface. As well, that his Prolifics server used some non-Java code was not an issue. Though the server may use C or C++, this was acceptable if it provided easier access to developers via a high-level programmatic view, he said. Tomorrow, may be different. And platform independence is the reason. "In the future I don't want to put in C routines," said Christian, "I don't want to be tied to a piece of hardware."

"We are using C++ system-level types of functionality," said Sharmila Shahani, director of product marketing at application server maker Kiva Software, Mountain View, Calif. "If you need to, for example, hook into CICS, you can do it in Java, but given its complexity, we actually see more of that being done in C and C++."

Hello to JITs

Close ties to hardware have historically meant top performance. Java advocates must take steps to improve performance without tying it to a platform. Therefore, the latest Java developers kits tend to include an up-to-date JIT (Just-In-Time) compiler.

Developers contend that, with the present JITs, Java meets the performance requirements of the market -- that performance is quickly coming up to parity with C.

"We have been able to tune Java to get performance on the order of magnitude of C and C++," said Dave Parker of WebLogic Inc., a San Francisco, Calif. based developer of JDBC drivers and pure-Java servers.

And there is more in store. Tool maker Symantec Crop., Cupertino, Calif. saw virtual machine performance increases of 15 times, based on new JIT technology, as it went to its latest product rev. In some performance measures in some instances, said Symantec's Alan Bannon, director of developer relations, "Our JIT development group has beat [the speed rates gained by the] comparable native compiler group."

Sun and others have taken a cue from Microsoft and have gone to work on producing the best possible virtual machines for Java execution. Sun has gone as far as to enlist IBM in its quest to beef up Java performance. In August, the two announced IBM would volunteer staff to join a Java Porting and Tuning Center located at Sun's JavaSoft division headquarters in Cupertino, Calif. There, IBM and Sun engineers will share their know-how to ensure that Java is as fast as possible. The mission takes on a certain urgency because, as Sun's Chairman and CEO Scott McNealy admits, there has been at least a six- to eight-month lag -- eons in Web years -- between the advent of new JIT-enhanced developer kits and the introduction of Web browsers that can exploit their output. At the time of the porting center announcement, Sun also announced a deal with Netscape to produce a "100% Pure Java" version of the Netscape Navigator in early 1998.

Moves like this would seem to help the Java purists' cause. Still, even if developers insert C or C++ code to gain higher performance today -- and give up some portability -- they still usually feel they will be able to go to pure Java six or 12 months from now, and get fuller portability at that point.

"Java may not be the fastest way but it's more productive," said Eric Reed, leader of technology for system integrator Align Solution Corp. Houston, Texas. Reed is a beta user of Java server tools from start-up SilverStream Software Inc., Burlington, Mass.

Is compatibility complete today? No, said Reed. "I don't buy into 'Java as the Write-Once, Run Anywhere' language, he said, " but it's a long step forward from the predecessors."

"It's largely portable, he continued, " more so than Visual Basic or PowerBuilder."

Portability gains outweigh performance concerns for Joe Golobic, assistant vice president, Munich Reinsurance Co., Toronto, Ontario, Canada. Golobic uses Apptivity tools from Progress Software, Burlington, Mass. "It's all Java," he said of a replacement for a client/server data warehousing system.

"Some developers are using non-pure Java stuff as [a] transition," said Dave Parker of WebLogic, Inc. Java purity is going to be different things for different people, he continued. "For some it is a way to rally around the Java flag. Others say 'If I can't do what I want in Java, I'll do it in C,'" said Parker, "People will [forgo] Java for performance reasons where portability is less important than performance."

While Parker said WebLogic's servers are all written in Java, he noted that the firm was not yet pursuing a "100% Pure Java" classification largely because of the burden involved in writing test suites.

As the term client/server came into disdain it was largely because of problems of deployment and scalability. Java seems to solve the deployment issue in that the browser becomes a universal client and deployment is handled by download, not by an army of net administrators with master disks in hand. In theory, at least, the browser becomes the lingua franca, and there may be less of a requirement for the dreaded corporate-wide hardware upgrade when its time to roll out the app.

In terms of scalability, Java-based computing takes a page from the book of client/server architectures. That is: Using three-tier and n-tier schemes. David Litwack, founder of Powersoft and now CEO of startup SilverStream Software, maintains new client- and server-side Java implementations provide a true integrated three-tier architecture. For tools vendors, he said "that very statement [changes] the nature of things. You're not a tools vendor you're an applications server provider." Note, however, that such set ups may mean that some Java tool vendors will seek to make their money on the runtime, rather than the tools. At your server

George Schussel, chairman and CEO of Digital Consulting Inc., Andover, Mass., describes the emerging architecture as "browser/server computing." The connecting middleware could comprise Corba or DCOM object technology. In fact, more and more tools vendors are citing Java-enabled Corba in their pitches. Such concepts had been gaining currency in client/server circles in recent years. Thus, with object middleware connecting tiers, the browser/server design crew may be taking up where the client/server crew left off.

While using such advanced methods, Java systems may encounter network bandwidth issues the same as or worse than those that challenged some client/server apps. Clearly, the results are not in yet.

"In client/server we had tons of times when [the application] ran well on one machine and not on another," said one developer. "My roots are in client/server," he said, by way of describing his background. "You sometimes needed serious hardware on the client side." With, Java on the server, the same developer continues, you have greater flexibility. You don't need to send class files down on the client to run." You may, however, be advised to use network protocol analyzers to study and prioritize net traffic patterns.

Thus, server side promises easier scalability. Yet it is still too early to tell if developers may not end up having to throw a lot of expensive server horsepower at processing bandwidth problems.

Regarding performance, WebLogic President Dave Parker says: "The rate limiting function on Java on the server is not Java. The rate limiting function is access to the back-end service (for example, database systems).

The industry surge toward Java tools support is nothing less than astounding. Yet, for tool makers, it is just part of doing business today.

While some are jumping on a bandwagon and others are seeking to unseat Microsoft, most are just responding to customer pressure represented by surveys such as a recent one from Software Productivity Group, Natick, Mass., which shows that "Java support" is tied with "Cost" as the top criteria for Internet/Intranet development tool selection.

The tools take different forms. Included in the early Java offerings are those from traditional mainstream tools and class library leaders such as IBM, Microsoft, Oracle, Powersoft, Sun, Symantec and others. Borland recently joined these ranks with its Jbuilder product.

Emergent Web software specialist houses include Allaire, Apptivity (now part of Progress Software), Bluestone, Haht, Kiva, NetDynamics, Passport, Prolifics, SilverStream, Supercede, Vision Software, and WebLogic.

Among other traditional tool sources making the Java plunge are Centura, Forté, Integrated Computer Solutions, Information Builders Inc., Neuron Data, Passport, Tower, Unify, Visix and others. (For a sampling of such offerings see "Representative listing of Java-related tools".)

Traditional vendors of 4GL tools that had their world turned upside down by Java, are responding. It is not surprising then that they tout their tools' high-level design capabilities, honed over considerable time versus the new Web software that is primarily concerned with connecting a front-end Web browser to a mid-tier application server to, in turn, a back-end database. Established tool houses and even some of the new Web tools makers are also beginning to produce runtimes that are enhanced for multiple server load balancing.


Representative listing of Java-related tools

Company Product Comment Pricing Middleware Standards support Includes Test/Debug Tools
Allaire Corp.
Cambridge, Mass.
Cold Fusion & Fusion Studio Application server, RAD, Visual development tools Professional Edition/ODBC; $995/server, Workgroup Edition/Access, FoxPro, dBase; $495/server, Fusion Studio: $495 Corba, COM, DCOM, ODBC Yes
Bluestone Software Inc.
Mt.Laurel, N.J.
Saphire/Web Generates 100% Pure Java client & server-side applications $4,995 per developer; no runtime fee Corba IIOP; JDBC; RMI; Java IDL Test only; can use third party debuggers
Borland Int'l. Inc.
Scotts Valley, Calif.
JBuilder 100% Pure Java visual development environment $299.95; no runtime fee JDBC Yes
HAHT Software Inc.
Raliegh, N.C.
HAHTsite Integrated Internet development system; Visual Basic and Java IDE: $1,995 per user; Distributed Application Server: $7,495 per NT server, $9,995 per Unix Server JDBC Yes
IBM Corp.
Armonk, N.Y.
VisualAge for Java Team-based development for Java applets, applications Enterprise Edition: $1,995 Professional Edition: $119 Corba IIOP Yes
ICS Inc.
Cambridge, Mass.
Builder Xcessory Internet, Intranet GUI builder for Java $3,995 no runtime JDK No
Information Builders Inc.
New York City
Cactus Visual, object-based 3-tier application development $3,950 per developer; $5,550 to $110,000 for application server Corba IIOP; JDBC No
Kiva Software Corp.
Mountain View, Calif.
Kiva Enterprise Server & SDK Internet application server. Supports both Java and browser clients $995 per developer; application server pricing starts at $25,000/server Corba --
Magic Software Enterprises
Irvine, Calif.
Magic Table-driven RAD, Java generation, application partitioning Universal Client/Server: $5,500 per user Corba IIOP Yes
Microsoft Corp.
Redmond, Wash
VisualJ++ Visual development for Java, C++ integration Professional Edition: $99.95 ActiveX; Com; DCom Yes
NetDynamics Inc.
Menlo Park, Calif. www.netdynamics.com
NetDynamics Java-based application server and visual RAD; generates Java, HTML, SQL $1,295 per developer seat, Server: $200 per concurrent user Corba IIOP Yes
Neuron Data Inc.
Mountain View, Calif.
Elements Converter/J Translates C, C++ objects into Java code $895 per developer -- --
Oracle Corp.
Redwood Shores, Calif.
Developer/2000 Client/server & Web application development; 100% Pure Java Developer Editor: $5,995 Corba IIOP; DCOM Yes
Passport Corp.
Paramus, N.J.
Passport IntRprise 4GL enterprise development; Java client server support $8,995; no runtime fee Integrates w/various third party middleware No
Progress Software Corp.
Bedford, Mass.
Apptivity Java thin client & Java server application development and deployment server $1,995; Application server license: Starts at $5,000 JDBC Yes
Prolifics
New York City
Prolifics Server-based RAD Five-user development system starts at $35,000 Prolifics D/TOM Yes
Rational Software Corp.
Santa Clara, Calif.
Rational Rose/Java Visual development system for Java Starts at $2,400; no runtime Corba IIOP, JDBC, OMG IDL, ActiveX Integrates w/SQA Suite
Rogue Wave Software
Corvallis, Ore.
JDBTools Java database application development tools $795 per developer JDBC Yes
JFactory Visual application interface builder for Java $390 per developer JDBC Yes
SilverStream Software Inc.
Burlington, Mass.
SilverStream Web application platform; client & server-side Java Application server license w/10 connected users: $5,995 JDBC, Corba IIOP, COM, DCOM Yes
Sun Microsystems Inc.
Mountain View, Calif.
Java Workshop Java IDE -- Corba IIOP; RML; JDBC Yes
JDK Cross-platform Java Internet development -- Corba IIOP; JDBC Yes
Sybase Inc.
Powersoft Division
Concord, Mass.
PowerJ Enterprise Java application development system with 100% Pure Java components, C++ integration $1,999 Corba IIOP; JDBC Yes
Symantec Corp.
Cupertino, Calif.
Visual Café for Java Visual RAD, 100% Pure Java application development Professional edition: $299; Database edition: $499 JDBC Yes
Tower Technology Corp.
Austin, Texas
TowerJ Development, deployment of server-side Java applications Development/deployment license starts at $5,000/server Deployment-only license starts at $500/server Works with any 100% Pure Java middleware Q198
Unify Corp.
San Jose, Calif.
Vision/Web Visual application development $7,200/Vision Developer w/native C/S & Web development; Deployment starts at $25,000 Corba IIOP Yes
Visix Software Inc.
Reston, Va.
Vibe Enterprise Java development environment for database applications Vibe DE: $49.95 Vibe Enterprise: $4,995 ODBC No