SuperCede is that it lives up to these claims. Also, I can find many of SuperCede's features in no other product -- at least, not yet.
On the Surface
SuperCede gathers the elements of your Java application or applet using the familiar project paradigm. However, a single SuperCede project can contain more than one component; a component is a "buildable" entity -- usually an application or applet.
When you double-click on a component in the project window, SuperCede opens its
component window
. This looks a great deal like the two-pane window setup found in Microsoft's Developer Studio. The left half of the component window is the browser pane, which includes the browser listbox at its top. The right half of the component window holds the editor pane.
These two panes work in concert. Each choice in the browser list selects a category and populates the browser pane with a roster of entities in that category, including source files, forms, compilation order, content files (e.g., bit maps or cursors), imported DLLs, external files, and classes. When you choose an entity from within the browser pane, an appropriate e
ditor opens in the editor pane. For example, if you choose a source file from the browser pane, the editor pane loads the source and turns into a text editor. If you choose a form from the browser pane, the editor pane becomes a forms editor.
I've seen many techniques used in integrated development environments (IDEs) to help you in the discipline of forms design. Some forms editors let you enable a grid and turn on the grid's "snap-to" feature. Others let you select a group of related controls and align them all horizontally and vertically.
SuperCede's forms editor has an alignment tool that I've never seen before. Along the left and top outside of the form are rulers. If you click on either ruler, a tab appears attached to a dashed line that stretches either horizontally or vertically across the form. When you slide the tab and the attached line slides with it, the line sweeps across the form and gathers controls that it touches. You sweep controls into position.
On-the-Fly Debugging
SuperCede really shines as a debugging platform -- you can hot-patch a running application. Suppose you're debugging a program and discover that a method doesn't work properly. Maybe you've built a sort method that isn't sorting correctly. While the application is still executing, SuperCede lets you drop back into the component window, pull up the source code in the editor pane, make the change, and hit the "update" key. SuperCede will recompile the changed method and patch the running executable file. The new method replaces the old, on the fly.
Consider what this means for the testing/debugging process. Ordinarily, when you're testing an application and you discover that something doesn't work right, you have to stop the application, retreat to the compiler, make the fix, recompile and relink, restart the application, and execute to where the problem showed up. With SuperCede, not only do you recompile and relink only the altered piece, but because the application is still running, you c
an return to the problem area almost instantly.
The same technology that allows SuperCede to update a running application yields other capabilities. Its debugger incorporates a
scratch
window, which is something like an expression evaluation window on steroids. You can type in any valid Java expression, including loops and methods, and SuperCede compiles and executes it on the spot. You can even instantiate an object. If you have an application stopped on a breakpoint, you can use the scratch window to explore the application's internals.
But Wait
SuperCede's documentation is so subtle on the following point that I nearly missed it completely: SuperCede also includes a C++ compiler. What's even more amazing is how seamlessly integrated the two compilers are. All the debugging tricks SuperCede can do in Java, it can do in C++ as well. Furthermore, because the generated Java and C++ code share the same object model, lashing
native
methods into your Java code is s
o simple it's almost funny (see the sidebar "Going Native").
Finally, SuperCede can build true executable files, completely circumventing the need for a Java virtual machine (VM). Of course, you must remember, those executable files can run only on Windows 95 or NT platforms.
The Catch
SuperCede's debugging on the fly works only as far as the independence of what's being updated will allow. In other words, you can edit the source code of a method, recompile, and update your executing application. However, if the old method caused some erroneous global side effect, SuperCede isn't going to know that, nor will it be able to fix it.
Finally, there is one catch to all this: Much of SuperCede's power lies in its specialized Java VM. That's not a problem during the debugging process, but if your application makes use of any SuperCede-unique capabilities, you must deploy it at a site supporting the SuperCede VM. As this article went to press, no popular browser incorporated the S
uperCede VM. It would be nice if Netscape and Microsoft let users plug in their favorite Java VM. I think I know which one I'd pick.
Product Information
SuperCede Java Edition................$99 through software retailers
.....................................$109 from Asymetrix
Asymetrix
Bellevue, WA
Phone: (800) 448-6543
Phone: (206) 462-0501
E-mail:
scbyte@asymetrix.com
Internet:
http://www.supercede.com
Circle 1088 on Inquiry Card.