Which Products Have You Found To Be Most Valuable?

  Writers' Choice

Which Products Have You Found To Be Most Valuable?

Recently, Java Report asked some of its contributors for feedback on what they believe to be some of the more exceptional products and tools they've encountered this year. Please note: The responses included here are strictly the opinions of the individuals who acknowledged our request. There was no category structure or method imposed. We know that there are many additional products and tools available within the marketplace. As we enter 1999, Java Report plans to expand its product coverage with more product reviews in each issue, and more comparative reviews throughout the year. Count on us to do everything we can to help you evaluate the right tools for your development needs. It looks to be quite an exciting year ahead!

Kathleen M. Major
Sr. Managing Editor

Two Cs Are Better Than One

"If you have ever spent time writing your own parsing code, you may find this tool useful."

Writers' Choice

Every Java developer is familiar with "Javac" the Java compiler, but it's time more folks discovered "JavaCC," a powerful recursive descent parser generator from the SunTest division of Sun Microsystems. If you have ever spent time writing your own parsing code, you may find this tool useful.

Your grammar is defined in a file along with parser settings, such as the amount of lookahead, the case sensitivity of the lexical analysis, and the handling of Unicode characters. JavaCC generates a Java parser for your grammar and allows you to intersperse Java code within the parser itself, facilitating the manipulation of the tokens during parsing.

Tokens are parsed into an instance of a "Token" class, which exposes a public instance variable of type java.lang.String. This variable, a string representation of the parsed token, is readily accessible to the developer and can be modified or utilized in whatever ways you find useful.

If you feel unsure about how to get started, you may want to have a look at the example grammars that the JavaCC team has provided with the tool. These include multiple versions of Java, HTML, CORBA 2.0-IDL, and even one for JavaCC itself. These are great ways to start learning about how to create your own grammar files for use with JavaCC.

Finally, there are useful debugging and error reporting features provided to help you locate problems as you go. JavaCC has been certified 100% Pure and is freely available from Sun. Have a look at http://www.sun.com/suntest/JavaCC.

Danny Malks is a Java Consultant for Sun Microsystem's Java Design Center in McLean, VA.

Competition Is No Match for InstallAnywhere

"...the most full-featured cross-platform installer on the market today."

Writers' Choice

As any developer who has tried to deploy a Java application knows, it isn't so easy to get a "write once, run anywhere" Java application to run on the numerous operating systems available in the marketplace. InstallAnywhere from Zero G Software (http://www.ZeroG.com) makes these problems go away with the most full-featured cross-platform installer on the market today.

The product, written in Java, is cross-platform through-and-through. Instead of specifying a default installation directory in a Windows-like "C:\" format as InstallShield's Java Edition requires, InstallAnywhere allows more generic constructs like "Programs Folder (Platform Default)" and "Boot drive." In case you do need to get down into platform details, InstallAnywhere facilitates that as well, allowing custom Registry entries, access to platform-specific folders, targeting of particular files or folders to specific platforms, and even the ability to execute native code during the installation.

Features like automatic classpath and "main" class detection make building a successful installer nearly foolproof. Once you've built an installer, InstallAnywhere's LaunchAnywhere technology takes over, turning your Java application into a double-clickable icon as familiar to end users as any native application. LaunchAnywhere does a lot more, too: finding Java VMs automatically even if they've been moved or upgraded, setting custom icons, and mapping documents to your application.

There are competitors in this market, most notably InstallShield's Java Edition and Marimba's Castanet, but neither matches InstallAnywhere's feature completeness and ability to target platforms other developers seem to have forgotten about, most notably Mac OS. It's not hard to see why major players in the Java industry such as Sun and IBM have chosen InstallAnywhere as their Java application deployment tool. Whether deploying software over the Web, or via traditional media such as CD-ROM, InstallAnywhere is the perfect choice.

Adam Fingerman is a Java Consultant in CA.

Significantly Improved Quality

"WebLogic's Tengah Application server is, put simply, the best application server software I have ever worked with."

Writers' Choice

Weblogic's Tengah Application server is, put simply, the best application server software I have ever worked with. Weblogic (http://www.weblogic.com)was actually the first Java company. In the pioneering days of JDBC, Weblogic provided the first JDBC drivers as well as three-tiered drivers that allowed Applets to access relational databases. Tengah provides robust connectivity to Relational Databases, as well as the fastest Java Servlet API-compliant Web server, a central management system for RMI, the first Enterprise JavaBean-compliant server, and HTTP tunneling for proxied access to data. Weblogic provides all of this and also includes phone and email support with an incredibly fast turn-around time. I have been developing Java applications for more than two years. Weblogic's products have significantly improved the quality of the solutions I've implemented.

Simplify Deployment and Lower Costs

"Mocha is a good example of how Java technology simplifies deployment, lowers cost, and justifies a thin client architecture."

MochaSoft's (http://www.mochasoft.dk) Mocha Telnet, TN5250, and TN3270 is a simple Java applet/application that provides anyone with a Web browser telnet or 5250/3270 terminal emulation. Mocha uses relatively simple Java networking APIs to provide an inexpensive alternative to purchasing and installing terminal emulators on each PC that needs access to a server, mainframe, or minicomputer. Mocha can be deployed by placing the necessary files on your Web server and sending the URL to any users that need access. Mocha is a good example of how Java technology simplifies deployment, lowers cost, and justifies a thin-client architecture.

Russell Castagnaro is the Chief Technical Architect and Java Practice Leader for DataHouse, Inc. in Honolulu, HI.

VisualAge for Java's Proven Strengths

"IBM has put together a powerful, easy to use, extendible Java development tool."

Writers' Choice

Get ready to rediscover the pleasures of Java programming as they were meant to be! With the release of the long awaited 2.0 version, VisualAge for Java (http://www.software.ibm.com/ad/vajava/), gets my vote as the Premier Integrated Development Environment (IDE) on the market today. Building on the proven strengths of its VisualAge Smalltalk product line, IBM has put together a powerful, easy-to-use, extendible Java development tool. At the very least, this tool will remove much of the tedious aspect of writing Java code, and will probably change the way that developers think about their craft.

Too numerous to list in their entirety, key features of the tool include Incremental Compilation, extensive code wizards, integrated version control support (even built into the entry-level product!), an excellent plethora of browsing, searching, cross-referencing and editing windows, support for Java Beans, industry leading Visual Programming capabilities, open APIs to extend the tools facilities, pleasing visual aesthetics, powerful debugging features, and support for accessing legacy systems of many flavors. Integrated is definitely the keyword, providing developers with an environment that effectively supports their single goal of rapidly writing maintainable, well designed object-oriented Java systems.

Roger Spall is a Senior Consultant/Trainer at The Object People in Ontario, Canada.

A Promising Object-Oriented Framework: IBM SanFrancisco 1.2

"Without a doubt, the most promising object-oriented framework is IBM SanFrancisco."

Writers' Choice

From the dawn of software engineering, there has been much effort focused on minimizing software development time and cost. Over the years, several paradigms have been introduced and today the object paradigm is the most promising. With collections of business objects integrated into one or more frameworks the application development becomes a little different than the traditional approach. Developing applications out of business objects organized in frameworks is very promising and represents the way applications are expected to be built in the future. Because developers will only have to adapt the business objects to their special needs, the development time and cost will decrease dramatically.

Without a doubt, the most promising object-oriented framework is IBM SanFrancisco (http://www.ibm.com/Java/Sanfrancisco/). It is implemented on the Java platform and uses Java RMI as the communication protocol. The functionality of SanFrancisco is implemented in three layers: the foundation and utilities, common business objects, and core business processes. The framework is fully customizable. Although development is not complete, it is already used in several large companies.

We believe that business objects and frameworks will be important and IBM SanFrancisco is far beyond the competition. Therefore I choose SanFrancisco for the best development product that surfaced this year.

Promoting the Network Computing Approach

"Lotus eSuite is a good way to set standards in Java-based business productivy tools."

Writers' Choice

Although some projects for converting mainstream user productivity applications to Java have failed, Lotus eSuite has a good chance to be the first successful product. In contrast to other developers (e.g., Corel), Lotus did not port the existing Windows applications but started the development from scratch. The eSuite product line consists of the eSuite WorkPlace and the eSuite DevPack. The WorkPlace is a collection of business productivity applets and system services. Even more important is the DevPack, which is a set of programmable end user applets that developers can use for their applications in a component fashion. The eSuite promoted the network computing approach where the applications and the data are stored separately on the server. This approach has several advantages (and disadvantages) compared to the fat client. Lotus eSuite is a good way to set standards in Java-based business productivity tools.

Matjaz B. Juric is a Researcher at the University of Maribor in Slovenia.

Visual Café Has the Ear of Developers

"Visual Café is one tool that comes closest to matching the astonishing versatility of the Java language for the Java developer."

Writers' Choice

When you think of versatility in a tool, you think of applying it to many different types of sizes and tasks. Symantec's Visual Café (http://www.symantec.com/domain/cafe/) is one tool that comes closest to matching the astonishing versatility of the Java language for the Java developer. It may not cover the area of embedded Java as well as Sun, and it tails off at the high end where tools like Progress Software's Apptivity have focused on distributed system architectures, but for the large middle ground where the majority of Java developers play, Visual Café is the undisputed frontrunner.

Symantec has always focused on getting its foundation in order first for its tools, and Visual Café is no exception. Its Café tool was the best tool on the market when it arrived, and adding a visual front end to it brought it an even larger audience. By keeping in step with JDK 1.1 support, as well as the evolving JavaBeans and Enterprise JavaBeans specifications, users of Visual Café have stayed as close to the bleeding edge as many would consider safe.

Visual Café plays well in the corporate world but mainly on medium-sized projects. Once it builds more bridges to enterprise-level Middleware, it could help Java in its quest to show how it can be as much an enterprise player as C++ is. Moving Java is more than a task for one single company, but if anyone has the leverage and the ear of developers to make it happen, it's Symantec.

John Brugge is a Senior Staff Specialist at Compuware Corporation in Madison, WI.

The Maturing of Java's GUI Capability

"Swing represents the maturing of Java's GUI capability, and should allow commercial quality interfaces to be developed."

Writers' Choice

The 1998 Java Market saw the release of Swing, the GUI toolkit classes that are designed to replace the Abstract Window Toolkit (AWT). Swing is 100% Java, which allows it to overcome many of the problems associated with the AWT. Because there are no underlying peer components, GUIs no longer have subtle differences in behavior between platforms. It is no longer limited to supporting components found on every platform—Swing has a rich set of components, including trees, tables, toolbars, and split panes. Best of all, because everything is written in Java, you can adapt most aspects of the components' appearance and behavior. One impressive feature is its ability to change the look-and-feel of GUIs. In general, the design of Swing is excellent, and leagues ahead of any third-party GUI toolkit that I have seen. The speed of Swing is still acceptable even on older PCs (100 MHz Pentiums), and Sun is still tweaking its performance. Swing represents the maturing of Java's GUI capability, and should allow commercial quality interfaces to be developed. The development of new JIT compilers is making performance less of an issue-in my opinion, the major barrier to developing commercial quality applications is the excessive number of bugs in the JDK.

Download the JFC (including Swing) at: http://java.sun.com/products/jfc/#download-swing.

Alex McManus is a Researcher at the University of Wales, Aberystwyth in the UK.

So Many Platforms!

"The thing that blows me away is that it works on so many platforms."

Writers' Choice

Kaffe (http://www.kaffe.org) is my Java product choice. It's a complete implementation of PersonalJava 1.1, and one edition of it is free software (licensed under the GNU GPL). The thing that blows me away is that it works on so many platforms. Kaffe's AWT has a rather nice look to it, too. Kaffe is divided into two product lines: the OpenVM Desktop Edition (free) and the OpenVM Custom Edition (non-free), which is targeted at embedded system developers. While everyone is talking about Java for embedded systems, Transvirtual is bringing a product to market, and providing some excellent free software at the same time. Hot damn!

Brian Jepson is a Programmer/Consultant in Providence, RI.

One Tool Can Make a Difference

"I tell every client I work with to use one simple tool—the tool is JUnit."

Writers' Choice

Every client I have uses different tools: IDEs, modeling tools, visual this and thats. But I tell every client I work with to use one simple tool that can make a huge difference to productivity and quality. The tool is JUnit—a simple testing framework developed by Erich Gamma and Kent Beck. It's easy to integrate with your environment, easy to use, and inexpensive (in fact, free!). The tool helps you build and run tests that dramatically reduce the time it takes to find bugs. It is certainly the most useful tool I use. See Java Report ("Test-Infected: Programmers Love Writing Tests," Vol. 3, No. 7, 1998), and download the framework from http://members.pingnet.ch/gamma/junit-10.zip.

Martin Fowler is an Independent Consultant in Melrose, MA.

Getting to the Heart of Java

"It is a welcome complement to Sun's official specification."

Writers' Choice

Inside the Java Virtual Machine, by Bill Venners, publisher: McGraw-Hill/ISBN: 0-07-913248-0

In this superb piece of work, Bill Venners explains in detail the workings of the Java virtual machine (JVM) by presenting possible implementations of many parts of that intricate piece of software. It is therefore a welcome complement to Sun's official specification. Each concept is clearly presented, often with the help of sample code. The accompanying CD also contains enlightening demos about the inner workings of the virtual machine. This book will be greatly appreciated not only by VM implementers, but also by anyone just curious to understand a component that is at the very heart of Java.

Antoine Trux is a Project Manager at Nokia Research Center in Helsinki, Finland.