Archives
 
 
 
  Special
 
 
 
  About Us
 
 
 

Newsletter
Free E-mail Newsletter from BYTE.com

 
    
           
Visit the home page Browse the four-year online archive Download platform-neutral CPU/FPU benchmarks Find information for advertisers, authors, vendors, subscribers Request free information on products written about or advertised in BYTE Submit a press release, or scan recent announcements Talk with BYTE's staff and readers about products and technologies

ArticlesSuperCede Lives Up to Its Name


April 1997 / Javatalk / SuperCede Lives Up to Its Name

Patch an executing method on the fly? Maybe in Smalltalk, but not in Java...until now.

Rick Grehan

I didn't expect a Java tool to have the power of SuperCede. I also didn't expect Asymetrix, the purveyor of ToolBook, to release any Java tool at all. In both cases, I am happy to have been taken by surprise.

Asymetrix's claims for SuperCede, which runs on Windows 95 or NT, are similar to those made by other vendors of Java development tools. To wit: SuperCede is faster than anything else in the areas of development, debugging, and execution. However, what's different about 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.

HotBYTEs
 - information on products covered or advertised in BYTE


The Variety in SuperCede

screen_link (40 Kbytes)

SuperCede's component window hosts a variety of editors.


Rick Grehan is a senior technical editor for BYTE reviews and coauthor of The Client/Server Toolkit. You can reach him at rick_g@bix.com .

Up to the Javatalk section contentsGo to next article: Going NativeSearchSend a comment on this articleSubscribe to BYTE or BYTE on CD-ROM  
Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it is theoretical--and no language better exemplifies this than C++.

more...

BYTE Digest

BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin, and dozens of other CMP publications—bringing you critical news and information about wireless communication, computer security, software development, embedded systems, and more!

Find out more

BYTE.com Store

BYTE CD-ROM
NOW, on one CD-ROM, you can instantly access more than 8 years of BYTE.
 
The Best of BYTE Volume 1: Programming Languages
The Best of BYTE
Volume 1: Programming Languages
In this issue of Best of BYTE, we bring together some of the leading programming language designers and implementors...

Copyright © 2005 CMP Media LLC, Privacy Policy, Your California Privacy rights, Terms of Service
Site comments: webmaster@byte.com
SDMG Web Sites: BYTE.com, C/C++ Users Journal, Dr. Dobb's Journal, MSDN Magazine, New Architect, SD Expo, SD Magazine, Sys Admin, The Perl Journal, UnixReview.com, Windows Developer Network