Build database applications in Java

Java is a hot product. You can scarcely read a computer article without seeing mention of it. All the heavyweight language manufacturers have delivered on Java, and now SuperCede, a spin-off from toolmaker Asymetrix, weighs in with a rapid application development (RAD) tool, SuperCede Database Edition 1.2.

This product has many nice features, but it lacks a certain polish that comes with having many versions to gain experience from. For instance, the printed tutorial, First Look, contains several errors: Screens are incorrect, names are incorrect, and some of the sample code will not compile.

After installing SuperCede on a Windows NT workstation, I started the program and found another problem. When you start SuperCede for the first time, it asks you to name a project and component before it goes into the development environment. Although you will need a project name, this requirement is baffling to run into on the first screen. Other RAD tools use default names and take you right into the visual part of the program. Once you have named a project, each time you start SuperCede, it defaults to the last project you worked on.

Once in SuperCede, you will find a Visual Basic (VB)-like environment with a palette of elements, text boxes, labels, and spinners, as shown in Screen 1. You click an element and drag it onto the form, where you can size it, name it, and set other properties.

SuperCede manages vertical and horizontal alignment differently from other RAD products: You create a sticky line and move it over the elements you want to line up, and the objects then move in unison. This feature is simple and useful.

Action Points are a nice debugging feature. Programmers are familiar with breakpoints, which are areas where you can freeze the program so that you can check conditions. Let's say you have a program add two numbers and display the answer, but the answer is wrong. Suppose the program code is

Set variable1 to x
Set variable2 to y
Set variable3 to variable1 + variable2
Display variable3

You think x and y are equal to 2, but the answer comes up 5. You set up breakpoints in your program to stop after lines 1, 2, and 3. Then, in the debugger, you use arcane debugger commands to examine the values of x, y, variable1, variable2, and variable3.

With Action Points, you attach program code to breakpoints. This feature lets you stay out of the debugger and speeds the execution of code that you are debugging, because SuperCede compiles the Action Points right with the program. The result is a cross between running the debugger and inserting code in the program to display the values of suspect variables. This cool feature was designed by programmers, for programmers.

With the new Action Points, SuperCede's debugger offers a scratchpad that lets you view variables and execute special code from within the debugger. Although this feature is not unique, SuperCede does it nicely.

All C++ coders know that Java owes a debt to this language. Java eschews certain C++ elements, most notably pointers. Pointers are the programming equivalent of a chainsaw. In a pro's hands, pointers can make programming easier and more expressive, but in the hands of a novice, they can wreak havoc by damaging not only the user, but also the integrity of the entire system.

Java's approach is to take pointers out of programmers' hands. This approach limits possible damage from errant pointers, but it also makes some tasks more difficult to do in Java. Translating code from C++ to Java is difficult, because although the processes are similar, the differences require a lot of work to overcome. Combine this learning curve with the fact that a lot of C++ code is out there, much of which is still useful, and you have a problem.

Java addresses this translation problem by providing a way to call C++ code from a Java program. This solution works but is not easy. SuperCede provides a much better interface to C++ code, making it very accessible. During my testing, SuperCede let me import some C++ classes and use them in a Java program with little effort. This feature works well and is a benefit for the working programmer. You can also call Java classes from C++ if you need to.

All development tools, including SuperCede, have two audiences. The first and most obvious group is the programmers. These people are the focus of marketing because they get to choose their tools. The second group is users, who deserve as much attention because they must live with the results longer than the programmers. Because users rarely say, "I'm certainly glad this application was developed in Visual Power Turbo Z," they rarely get a seat at the programming tools discussion table. However, users often do say, "Darn! I wish this thing ran faster." Language vendors spend time addressing this complaint. Most vendors, including SuperCede, profess to have fast executables and have benchmarks and rationale to back up this claim.

SuperCede claims speed as a quality in both the programmer and user arenas. In my testing, speed did not apply. According to the vendor, SuperCede offers very fast compilation and some convenient features, such as its own Virtual Machine (VM), that also promise speed. After issuing an Execute command on my 150MHz Pentium with 64MB of RAM, I found that several seconds passed before I saw any action. After this pause, the software took several more seconds to complete compilation and display the executable.

Executables ran at a reasonable speed. I had no formal benchmark, but perception is often reality to the user, and my perception is that it is fast enough.

SuperCede has many neat features for the programmer. My favorite feature is SuperCede's on-the-fly compiling, Update, which makes changing code easy. For example, suppose you want to change the Bounce application, which is standard to all Java tools, from a blue circle to a red circle. Without Update, after you compile and run this application, you must change a line of code to specify red. Next, you must close the Bounce application, recompile the code, and run it again. However, with SuperCede, if you select Update from the toolbar, it modifies the executable, and makes the change to the program appear on the running copy—suddenly the circle becomes red. Screen 2 shows the changed program code and the new red circle.

This feature is stunning. You can make changes to a program and see those changes immediately. The old edit-compile-test cycle of programming just became a straight line. Although this feature might be more of a parlor trick than a useful tool, it demonstrates that the people creating SuperCede are challenging the conventional programming model.

Persistent objects are those that you can store between executions or those that you can store to disk. Java takes a least-common-denominator approach to persistence: All objects are stored as a stream of bytes. This approach will work on all kinds of storage and for all kinds of operating systems, but it presents a less-than-ideal approach for any operating system (OS). This approach means that the program must read each persistent object in totality. If your object is a database table, the program must read the entire database each time it accesses the object. This requirement means a lot of memory to deal with and, if the data is on the network, a lot of network traffic.

SuperCede's solution to this problem is PersistentMemory, which lets the program read objects from storage as they're needed—the program reads a large database a little at a time. This method can save a lot of network traffic because you might not need all of an object in a particular usage.

SuperCede comes with a good Java computer-based training program from MindQ's Knowledge Odyssey series. This tutorial focuses on SuperCede's features and will help to most programmers, whether novices or weathered veterans.

SuperCede also includes the StarBase version control program, Versions. It is the full working program, but you must go to StarBase's Web site (http://www.starbase.com) to register it and get a software key.

SuperCede is an excellent Java development tool. It has rough edges, such as the tutorial that displays the wrong screens, but it balances them with well thought-out features, such as inline executable compiling using Update. Starting the program was frustrating, but once it was rolling, SuperCede provided a productive environment.

SuperCede Database Edition 1.2
Contact: SuperCede 206-462-0501
Web: http://www.supercede.com
Price: $549
System Requirements: Windows NT 3.51, NT 4.0 or Windows 95, 80486/66 or better, 50MB of available hard disk space, 32MB of RAM