internet.com

Library

Visual Java Development Tools

by Scott Clark

Web Developer® takes a look at three "instant Java" IDEs, puts them to the "taste test," and lets you know if they make the grade.

Instant coffee...the words themselves are considered foul in most offices. "You won't be able to taste the difference," some of the instant coffee companies tell you. Yeah, right! While some instant coffees are decent, the rest of us will readily agree that most are merely a pale imitation of freshly brewed coffee. In the Internet arena there are now several companies releasing "instant Java" development environments--products with which you can create original applets with no coding at all, using a drag-and-drop interface. The big questions are: Can they produce applets that are as useful and functional as those built from scratch? Can you learn to program in Java as you use these products?

In this review, Web Developer® takes a look at three "instant Java" IDEs (Integrated Development Environments), puts them to the "taste test," and lets you know if they make the grade: Visual CafŽ Preview Release 2 from Symantec, (Cupertino, CA), Jamba 1.1 from Aimtech, (Nashua, NH) and Mojo 1.2 from Penumbra Software, (Norcross, GA). I tested the software on a 150 Mhz 686-based machine with 16 MB of RAM, running Microsoft Windows 95.

Original Web sites are created using original elements. IBM wouldn't use a graphic they found on someone else's site, nor would they use anyone else's Java applet. The need for original Java applets is causing many non-programmers to start learning Java. As a result of Java's popularity on the Web, most of the applets that were new 3 months ago are now tired...used and abused. They've just lost their freshness. Up until now, non-programming developers had two options if they wanted to add original applets to their site--hire a professional or learn to program. With each of the products reviewed here, it is finally possible to create original applets without manually writing the Java code.

Symantec's Visual Café is the first in their RAD (Rapid Application Development) Java tools series. Symantec has taken the Café toolset and made it easier for non-programmers to use. Those familiar with Visual Basic and Delphi will find Visual Caé's interface very familiar, at least in appearance. Visual Café features a visual GUI builder, a Component Library, and an Interaction Wizard that enables developers to graphically build applets or application components while Visual Café generates the Java code behind the scenes.

Aimtech's Jamba allows the non-programmer to create original Java applets that are quite complex. Jamba uses a slick drag-and-drop interface to create applets. By dragging and dropping objects onto the Jamba work area, the developer is able to create interactions between objects, such as a text box and an image.

Penumbra's Mojo sits in the middle, somewhere between Café and Jamba in complexity. Mojo also enables the non-programmer to develop Java applets and applications using built-in components such as buttons, panels, clocks and more. These components are used along with Actions that give the applet functionality. Actions are used to create a response to Events that have happened to the component.

Certainly each of these IDEs makes it easier for the non-programmer to design and create working applets. For the Java programmer, these tools make it easy to rapidly create prototypes, and they are extendible enough to continue with the development process right through to deployment. We'll test them by attempting to create an "instant Java" applet with each one.

Symantec was one of the first software companies to release a graphical IDE for Java, introducing Café in March 1996. Since then, they've also released their JIT (Just-In-Time; late-binding) compiler; a couple of updates to Café; a Java/database connectivity solution--dbAnywhere; and in mid-November, they were due to release Visual Café.

Visual Café represents a much wider market for Symantec: one that is composed of beginning Java programmers. By simplifying the Café interface, as well as adding Interaction Wizards and a component library, Symantec has created a tool that will enable developers to create original applets.

They have also opened a whole new plug-in component market for the Visual Café environment, much like the .vbx and .ocx plug-in components for Visual Basic and Visual C++.


Visual Café Preview Release 2

Visual Café installed from the single CD-ROM with no problems, taking a little over 12 MB of space on my hard drive. It comes with its own version of the JDK, so you don't even need Sun's JDK.

The Pre-Release version I reviewed came with a 34-page printed User's Guide that was very helpful, taking me through the steps needed to create a new applet. Online documentation is also available, including a Java API reference, a Java language reference, and a searchable table of contents. The online documentation also takes you through the use of the Visual Café interface, as well as how to create and debug applets.

The Form Designer in Visual Café makes the job of designing form types-- such as message boxes, dialog boxes and windows--a much easier task. By selecting a component from the Tool Palette and then drawing it on the form, you can easily add text boxes, buttons, menu bars, grids, tabbed dialog boxes, and more to your applet. Visual Café creates the Java code as you draw the components on the form.

Visual Café comes complete with spin button, image button, animated image button, slider, progress bar, popup menu, formatted edit fields, tabbed dialog, tree view, grid and many other Java windowing components. The complete list of components may be viewed and new objects may be added through the Object Library window. As you change the properties of components in the Property Inspector, the source code changes along with it. Visual Café generates the event-handler code for the applet as well. Double-clicking a component on the form opens the source window. All the events that are available for the component are shown, and may be clicked on to view or edit the code for the event-handlers.

The Visual Café Source window is a full-featured text editor with complete Java syntax highlighting and navigation tools. All of the methods of a single object are displayed in one Source window. The object being looked at, and a list of its events, are displayed next to the source frame.

Along with the obvious benefits of being able to visually design forms when creating a Java applet, Visual Café comes with an Interaction Wizard that greatly shortens the time needed to create a functional Java applet. The Interaction Wizard allows the developer to graphically build relationships between objects. By selecting the object, another object with which it is to interact, and the Event to be triggered, you automatically generate Java code.

A Menu Editor is also included with Visual Café for creating and editing menu bars and items. You use the Interaction Wizard to connect menu item events to other objects in the project.

On to our test applet. Fortunately, Visual Café comes with a wide range of components, so creating the applet wasn't that difficult. I was able to create our applet using the SlideShow component without having to manually code anything.

By selecting the SlideShow component from the Object Toolbar and clicking on the form, the SlideShow object was placed on the form. I resized it by clicking and dragging on the edges. Then I went to the Object Property Inspector and added the image URLs (actually the image file locations). By right-clicking on the applet form and selecting Add an Interaction, I created the applet's effect. I chose the mouseEnter event, and the SlideShow component to interact with.

The Interaction Wizard had a list of actions it could perform, among which was "move to the next image." I then compiled the source by clicking on the toolbar's Run button, and Visual Café brought the applet up in the appletviewer. When I moved the mouse over the applet, it changed to the second image. If I moved it again, it changed back to the first image. Pretty slick, and with no coding!

Symantec is banking on the fact that programmers everywhere want a Java IDE that can be used as is, with little coding, but can also be extended by adding their own code and third-party components. Although the Pre-Release version still lacks some functionality, the full release in mid-November is looking very promising.


Jamba 1.1

Jamba is Aimtech's answer to those Web developers who don't know a lick of Java code--and aren't planning on learning any--but still wish to come up with fresh, original applets. Using Jamba, a developer can create advertising banner applets that change every 10 seconds; audio applets that play when the site is visited; animation and transition effect applets; picture push-button applets; and applets that enable the user to interact, such as buttons that appear to "click" in and out or otherwise change in appearance.

Installing Jamba was a snap: I just put the CD-ROM in the machine and sat back while Jamba took over. All I had to do was accept the defaults and move on. Jamba took about 10 MB of hard drive space for a complete install. Everything you'll need to create applets or applications is included, including much of Sun's JDK.

The tradeoff for Jamba's simplicity is that it doesn't create standard Java class files. Instead, it writes proprietary class files (that will act like Java class files) based on the configuration files it makes when you create your Jamba applet.

Jamba comes with ample documentation, including an extensive 200 page User's Guide that takes you through the use of the toolbars and menus, the creation of applets, CGI interaction with Jamba applets, and even more advanced details. A searchable online help system is also included with Jamba, as well as an HTML-based version of the User's Guide. Jamba features the most comprehensive documentation of any of the three tools reviewed in this article, although it was not really necessary with such an intuitive program.

Jamba ships with the development environment itself (Jamba), the image manipulation program (ImageLab) and Jamba's own collection of Web graphics, (WebTools). The Jamba development environment actually creates and saves the project in three separate files:

  • yourproject.jmb: contains the information that you edit, re-open and continue to work with in Jamba.
  • yourproject.html: the Web page with the embedded Jamba applet that is eventually displayed in the Web browser.
  • yourproject.jtf: the Jamba information file that tells the applet what interactive multimedia objects to display at runtime.

After skimming through the User's Guide, I started creating the test applet. To create an applet, you place any Objects that you select onto a blank background that is called a "Page." Pages are used to display the applet at runtime. They can be as large or small as you wish, enabling the developer to create an applet that fills the whole browser area, or simply the space taken by an image.

Pages, as well as Objects, have properties that are set to control their appearance. Jamba's properties include Click events and Select events, along with many others. Objects themselves can have Events and Actions. An example of an Action is Push Button recognizing when it has been clicked, or an image recognizing when a user double-clicks it.

Jamba lets you create new applets from scratch or by using the Page Wizard, which uses templates (ready-made Pages that include objects with many of their properties already set) to create new Pages.

I prefer to do things the hard way, I've been told, so of course I wanted to create the applet from scratch. I selected New from the Jamba menu, and was prompted for the name of the project and the directory I wished to store the project in. After clicking OK, the first Page appeared.

Since I was creating an applet that uses two images, I clicked on the image button and then on the Page and created an image area an inch tall and two inches wide. I then right-clicked in the image area and the Properties window came up. This is where I specified the graphic file I was to use, and set its properties (such as visibility). I repeated these actions to place the other graphic on the Page.

I placed the first graphic directly on top of the other graphic, completely covering it. The first graphic I set to be visible, the second to be not visible. Then in the ToDo List tab in the same Properties window, I set the click event for the first graphic to change the visible property of the second graphic to be true, and did the opposite for the second graphic. Basically, that's all there was to creating the test applet.

Testing the applet was simple. I clicked the Run button, which brought up my browser, Netscape 3.0, with the page containing the applet (see Figure 4). If you click on the first image, the second appears, and if you click on the second image, it is replaced by the first image. While realizing the simplicity of the test applet, I was very startled to see just how easy it was to create an applet with no coding.

Another included component, Jamba ImageLab, can be used to capture images from the desktop, reduce or increase the number of colors and size of an image, and apply changes to albums (groups of images). ImageLab supports almost all of the popular image formats (.gif, .jpg, .dcx, .dib, .bmp, .tif, etc.), and they can all be converted to the Internet-capable .jpg or .gif formats. Images can be cut and pasted to and from the clipboard. Albums can be created and viewed one after another in a "slide show" effect, which can come in handy when creating animations. Unless you are creating and editing images that need a lot of special effects, the ImageLab will be more than sufficient.

The WebTools program that makes up the last part of Jamba consists of a browser-type interface that allows you to select images from the Jamba Web graphics library of buttons, backgrounds, icons, and bars, and incorporate them into your projects or pages. Webtools isn't installed on your hard drive, but is instead read from the installation CD-ROM.

Jamba provides the up-and-coming Java programmer with the means to quickly develop applets and applications without doing any actual coding. Through the use of Java Extension Objects, Jamba also provides the ability to support native Java code to extend its functionality. In the future, Jamba will even support ActiveX controls, and feature an extended player with Java classes and methods. For the ease of use and what it can accomplish, it's hard to beat Jamba for instantly creating Java applets and applications.


Mojo 1.2

Although Mojo is quite capable of creating applets without the developer having to write any code, Mojo encourages developers to become programmers by integrating their own code into the applets. Mojo features an integrated Class and Method Browser which lets you view actions and components, facilitating the learning of Java as you create working applets.

I installed Mojo from the CD-ROM without any problems, and it took about 13 MB of space on my hard drive. Mojo also comes with the JDK from Sun, although you can use a different version if you have it. Documentation includes a 55 page User's Guide that covers the basic toolbar and menu functions, as well as an online help system. The online docs include info on Applets, Compiling, Components, Declarations, Functions, as well as general information.

Mojo is made up of two programs--the Coder and the Designer. Mojo's drag-and-drop, no-code applet builder is the Designer. Always in the background, actually just behind the Designer window, is the Coder, a Smalltalk-like code-browser/editor. When Mojo is started, it opens a new Drawing area in the Designer. Mojo makes use of Actions to provide functionality without writing any code. The developer clicks on a component in the Component Palette, and then clicks in the Drawing area. In the Properties tab of the Component window, the developer edits the various properties of the component. Much like Jamba's ToDo list, the Actions tab of the Component window allows you to specify that certain events will happen based on actions that happen to a component, such as the mouse moving over a component, or a component receiving the focus.

The Actions that are available are shown in the Available Actions window (makes sense), and are added to the Component's Action list by dragging and dropping them from the Available Actions window into the Component window's Actions tab. Very slick and effective, once you know what to do. Available Actions come in several categories, including Multimedia, Transitions and Networking. Mojo includes Actions that play a sound, go to a particular screen or URL, initiate an FTP transfer and send e-mail.

Mojo's Coder is a very capable editor and class browser. It can be brought to the front of the screen by pressing the F12 key or -C any time Mojo is running. By clicking on a component in the directory tree on the left, you are presented with a list of Available functions--both Events and Methods. Clicking on an Event in the Events tab of the Available Functions window causes that part of the source code to be shown in the lower half of the Coder (see Figure 5). By clicking on the right mouse button, functions can be added, removed or overridden. In this way, programmers are encouraged to add their own components and functionality to Mojo projects.

Being component based, Mojo extends your library of components as you create new ones. Every component that you create can be added to other applications, and all the methods you write can potentially become actions. Mojo includes several third-party components that you can add to the applets you create, or use on their own, including:

  • Marquee Lights
  • TickerTape
  • Blink
  • Gauge
  • Calendar
  • Clock
  • LEDClock
  • Microline Tabs
  • Microline Grid
  • Microline Progress Bar
  • Microline Tree

After playing with Mojo for a few minutes, I dove right into the creation of our test applet. I clicked on the Image button on the Standard toolbar, then on the opened Screen, and went to the Component window and selected our first image file, "webdevon.gif." I then added another Screen, and repeated the process, placing the other image file, "webdevoff.gif" onto the second screen. Then I went back to Screen1, selected the first image and clicked on the Actions tab of the Component window. I clicked on the mouseDown Event in the Selected Component window, then selected the GotoScreen Action from the Available Actions window by dragging it from one window to the other. I set it up so that when the image on the first screen is clicked, it goes to the image on the second screen. Then I set the image on the second screen to go back to the image on the first screen when it was clicked.

While the Coder was very handy for seeing specific portions of the Java source code, I couldn't find an easy method to view the whole source file using Mojo. It is possible to view the source using a text editor, unlike Jamba. If you already know some Java, or are content with using the standard set of components and third party components provided, then Mojo will be a lot of help to you.

If, on the other hand, the only thing you know about Java is that you drink it in the morning, then you'll eventually find yourself growing weary of the included "no-code" applets. You'll either start learning to program in Java or will soon be buying another program (such as Jamba), that will give you much greater flexibility, with no coding necessary.

Recommendations

While each of these products can potentially be used to create an applet or application without writing a single line of code, their effectiveness still lies in the programming experience of the developer.

If you aren't planning on learning to program in Java, but you still want to be able to create original Java applets, then Jamba is the tool for you. Using Jamba, you can create fairly complex applets with a minimum of effort and time. Although you won't be able to view and learn from the source code, Jamba does include many components for creating original applets that would otherwise require a close familiarity with Java programming.

With Mojo, not only can you view the source code for the actions and components of the applets you've created, but you are encouraged to add your own. A decent component library is included with Mojo, but if you want to get beyond the basic functionality they provide, you'd better plan on at least learning some elementary Java programming.

If you are already learning to program in Java, want to continue to learn, and are looking for an IDE that won't be obsolete a year from now, Visual Café is a very good bet. Although the number of "no-coding" applets you can create is still a bit limited, the added functionality of Visual Café still makes it the perfect choice for today's Web developer. Featuring a combination of the extensibility of Café and the intuitive visual development environment of Microsoft's Visual Basic, Visual Café is easy to use for the design, prototyping and development of Java applets whether you are still new to Java or consider yourself a Java guru. Within a short period of time, I'm betting that there will be a myriad of plug-in components for Visual Café that will rival those for Visual Basic, and the Web will never be the same. I'm looking forward to it!


Asymetrix Supercede for Java 1.0 beta

As this review was coming together, Asymetrix announced their own visual Java IDE, Supercede for Java. Although it is not an "instant Java" IDE, it has a number of unusual features that Java developers may find very interesting. Among those features are: ˇ
  • an interactive "Flash Compiler" that lets you modify programs as they run
  • a graphical Form Editor that lets you create the user interface by dragging and dropping tools from a palette of standard Java controls (including buttons, text boxes, panels, and more)
  • a customizable Source Code Editor that is integrated with the Form Editor
  • a graphical debugger that lets the program recover from otherwise fatal errors
  • an Appletviewer utility for viewing applets and applications
  • a Virtual Machine (VM) utility that converts .class files to self- standing .exe files
  • a Java/C++ persistent store that improves performance
According to Asymetrix, Supercede is the first Integrated Development Environment that allows a programmer to examine, modify and recompile an application as it is running. By using incrementally replaceable code objects instead of object files, Supercede is able to implement an object-oriented persistent store that maintains the state of the project that a programmer is working on.

In the realm of debugging, Supercede has gone one step further than most. If you are testing an application and it crashes, Supercede catches the fatal errors that caused the crash. Using the"Pop" feature, you can fix the problem, and throw out the current stack frame, all without having to restart the application.

Programmers have been wanting an easy way to implement both Java and C++ in the same application, so Supercede implemented Java and C++ classes using an identical object model. Defining a link between Java and C++ with Supercede is a matter of defining a method in Java and implementing it in C++, or calling a Java method from C++.

Supercede also comes with the Supercede Virtual Machine, or VM, which is a high-performance Java virtual machine. Asymetrix claims the Supercede VM has surpassed JIT compilers from Symantec, Borland and Microsoft on all major benchmarks. The Beta release of Supercede VM includes several utilities, including Asymetrix' own Appletviewer, and a run-time utility that executes .class files. This same utility can also be used to convert .class files into stand-alone Win32 .exe files. This is a handy little utility that will enable developers to create standalone Java applications that can be distributed without the end user needing a copy of Sun's JDK installed on their system.

Supercede is currently available for Microsoft Windows NT and Window 95, and requires at least a 486/66 machine with 32 MB RAM, and 50 to 60 MB free disk space.

The beta is limited in its functionality: it will not produce .class files, and quite a few of the Java floating-point specifications have not yet been implemented, so you'll have to be content with just experimenting with this version.

Asymetrix was forecasting a November date for the full release of Supercede for Java. No details on the eventual retail price are available. At press time, the beta could be downloaded free from Asymetrix' Web site, or you can get the Supercede beta CD directly from Asymetrix for $19.95 by calling 1-800-448-6543 in the United States, or 1-206-448-6543 outside of the United States.


Scott Clark (sclark@webdeveloper.com) is Technical Editor for Web Developer®. He is based in Kissimmee, Florida, and when he's offline (which isn't often), you'll find him digging in the dirt, working with his tropical plants.

Reprinted from Web Developer® magazine, Vol. 3 No.1 Jan/Feb. 1997 (c) 1997 internet.com Corporation. All rights reserved.


Web Developer® Site Feedback
Web Developer®
Copyright © 2000 internet.com Corporation. All rights reserved.