SCOUG OS/2 For You - December 1995
Borland C++ 2.0 for OS/2 - Part II
by Ron Lamb
The Debugger
Borland C++ includes a state-of-the-art graphical debugger (Turbo Debugger
GX) and an OS/2 text mode debugger. The IDE does provide an integrated
debugger that may be considered as a third debugger. For the purpose of
this review I will only be talking about the graphical debugger.
The GX debugger is a state-of-the-art debugger that includes multiple
views with pop-up menus, a SpeedBar for common actions, and integrated
Window's management to provide a fast integrated debug environment.
Borland's debugger views (Borland terminology) or modeless dialogs allow
the user to view data structures, set breakpoints, inspect source code,
and monitor the running process. The views include: Breakpoint, Data
point, Exception, Message point, Source and Disassembly.
Most of these views are what I call standards in the debugging world with
the exception (no pun attended) of the two: breakpoint and message point
views. These two views offer a nice feature that allows each breakpoint
or message point to assign up to three different actions: break, evaluate
expression, and log expression. The actions are performed upon the
breakpoint triggering.
The first type, break action, is common to most debuggers and causes the
debugger to break when the breakpoint triggers. The second type, evaluate
expression, causes the entered expression to be evaluated when the
breakpoint is reached. This is very useful to splice basic code segments
without having to recompile a program. The third option, log expression,
writes a line and value to the event log. This breakpoint is very similar
to causing C's "printf" to occur at the breakpoint.
Though the debugger offered a lot of nice features, it did lack a message
queue monitor and window analysis tool, two features I feel are very
helpful when debugging any PM based application. The debugger is
definitely useful but could use a few of the features found in other OS/2
debuggers.
The Debugger running the Tower of Hanoi
The Resource Workshop
Borland C++ includes an Integrated Resource Editor (IRE) called the
Resource Workshop. Included in the IRE are a Dialog Editor, Bitmap
Editor, and Script Editor that provides an efficient and easy way to
maintain your project resources.
The Resource Workshop is one of the product's strongest features. In
contrast to IBM's loosely coupled resource tools, Borland offers a tightly
integrated environment allowing the user to maintain menus, dialogs,
pointers, and other resources. In my opinion, the resource tools offered
are much more complete than IBM's current C++ offerings, but some future
IBM products that may change my opinion.
For current Borland Windows C++ developers, the Resource Workshop is
similar to the Window's version with the following exceptions. One, the
palettes in the dialog and bitmap editors are modeless. Two, drag and drop
of resource files are implemented. Finally, foreground and background
colors have been designated to the left and right buttons.
However during my testing, I ran into a number of problems that caused
some concern. When trying to edit a resource that I created at work using
the IBM toolbox, the Resource Workshop complained and would not load the
resource file. In checking with Borland's documentation claiming high
compatibility with IBM's RC file format, the file should have loaded
trouble free. I then tried loading a number of resource scripts from the
examples and ran into a similar problem. If you plan to switch from IBM's
tools, I recommend testing before making the change.
One final note on my overall impression of the IRE. While reviewing the
product, the Resource Workshop crashed on a number of occasions. These
crashes seemed random and I could not determine the source. In fact,
editing an icon or pointer resource on one of my test bed machines caused
the Resource Workshop to abort. I haven't had time to research the cause,
but felt it should be mentioned.
A better bitmap editor
Included in the Resource Workshop is a bitmap editor you can use to create
and edit bitmaps, icons, and pointers. This editor supports multiple
bitmap formats and provides a number of features that make creating
bitmaps easier and faster. In addition to the basic features, the editor
supports line drawing, circle creation, square creation, and rounded
square drawing. The editor's most useful feature is the multiple
undo/redo action that allowed me to step back and forward through multiple
changes. The number of undo/redo levels is configurable depending on the
amount of memory available up to a maximum of 99 actions. This undo/redo
feature is common to all the Resource Workshop editors.
(The bitmap editor I am currently using only supports a single undo and no
redo. Can you guess what bitmap editor I'm using?)
Also included in the bitmap editor is a multiple zoom feature. Though this
feature was very useful, I ran into problems when using the selective
zoom. These problems resulted in not being able to distinguish which bits
were set after setting a bit on a bitmap that is selectively zoomed. Not
knowing what bits are on and off renders this nice feature useless.
The Bitmap Editor
Finally a real dialog editor
Borland C++ 2.0's dialog editor is similar to the dialog editor included
with their C++ Window's compiler. The editor supports all common OS/2
controls and a few of their own. The additional control styles include a
3D check box, diamond shaped radio buttons, and the famous Borland push
buttons.
Adding a PM control is easy: click on the PM control that you want to
create and then click on any location within the dialog where you want it.
Control object attributes are set by double clicking on the control and
changing its attributes through the supplied dialog. From a quick glance,
the editor's PM control support includes bitmap and icon push buttons and
appears up-to-date.
In my opinion, one of editor's nicest features is the implementation of
the set tab, set order, and set group operations. Setting the tab order
is as simple as clicking in the order that the dialog's tab sequence would
be in. Setting the group and order is just as simple. Anyone who has
used IBM's dialog editor, will find this a much easier way of arranging
tab order. Dialog resources can be created graphically or by hand.
The rest of the Resource Workshop
Menus are created in a wizard like style requiring two steps. Step one
requires filling out the "New Resource" dialog specifying the include file
for the identifiers. Next, a "New Menu" dialog pops up allowing you to
select one of three standard menu structures: Standard Menu Bar, Pop up,
or Simple Menu. After completing these two steps, the Resource Workshop
creates a menu structure template supporting one of the pre-defined menu
styles. After creating the template, each menu item and its identifiers
must be added. This is a good productivity enhancer, but is limited by not
providing a more automated process.
The Resource Workshop seems to support all the types of resources. The
table at the top of the next page lists the resources supported, what
editors are used for each resource, and any special features.
What else is in Borland C++ 2.0?
So what else do you get with Borland C++ 2.0? Besides all of the wonderful
stuff I have mentioned, the package includes a Turbo assembler, Object
browser, OWL 2.0, and IBM's SMART Toolset. To get this review out before
Christmas, I have not included these items. If enough interest is shown, I
will try and follow this review with one that covers some of these other
subjects.
Resources Supported
by the Resource Workshop
+--------------------------------------------------------------+
|Resource Supported Editor Special Features |
| |
|RCDATA Script Editor |
| |
|POINTER Bitmap Editor |
| |
|BITMAP Bitmap Editor |
| |
|MENU Script Editor Menu Creation Wizard|
| |
|DLGTEMPLATE Dialog Editor Dialog Wizard |
| |
|STRINGTABLE Script Editor |
| |
|FONT OS/2's Font Editor |
| |
|ACCELTABLE Script Editor |
| |
|MESSAGETABLE Script Editor |
| |
|HELPTABLE Script Editor |
| |
|HELPSUBTABLE Script Editor |
| |
|ASSOCTABLE Script Editor |
+--------------------------------------------------------------+
How does it rate?
From what I have seen, Borland C++ 2.0 includes some nice features. It
offers a strongly integrated development environment for both maintaining
your source and resource project components. The performance is acceptable
running on an eight megabyte 486 33Mhz machine and the tools are both
up-to-date and well designed. It does not fall into the category of what I
would call, "Bad Windows Port" (we all know what that is!).
Though the product offers a lot, it does lack in some areas. One, it does
not have all the bells and whistles of its Window's cousin. Two, while
testing the product I did get a feeling of instability. I cannot say for
sure, but I think it has a few gotchas. Finally, the debugger does not
include all of the features that I have grown accustomed to. If you are
going to play ball, bringing a toy bat won't get the job done!
To sum it up, does Borland C++ 2.0 topple IBM's CSet++ 2.1 as my choice of
compilers? Borland C++ is a strong product, but IBM's CSet++ compiler
will remain my choice for the following reasons. One, IBM's debugger is
more powerful and includes a message queue monitor and window analysis
tool that is extremely useful in debugging PM applications. Two, IBM's
product includes an Execution Analyzer that is useful in optimizing and
tracking down performance bottlenecks. Finally, I know that IBM will
support their product for the life of OS/2. I am not sure where Borland's
OS/2 commitment is. Borland has obviously done a lot with their current
offering but is not doing a lot to provide customers with their future
OS/2 plans. For people considering Borland's compiler over IBM or Watcom,
the commitment issue should be important and worth considering.
One final point
So what is the answer to the question, "Where does Borland C++ 2.0 fit?"
For anyone who has used a Borland Windows compiler before, has a machine
with limited resources, or is looking for a C++ cross- platform solution,
this product is worth considering. I feel this product's niche is as a
personal development or small project platform.
I hope you have enjoyed this review and that it has provided some
information you may find helpful. My review is based on a rather quick
look at the product and therefore I may have made a statement or two about
not being able to do something that can be done. However, I have been as
thorough and complete as possible, basing this review on my experiences
with IBM's CSet++ 2.1 and Borland's C++ 2.0. I have since had the
opportunity to look at IBM's upgrade (VisualAge C++ 3.0) which has only
strengthened my opinions on compiler choice. But then choosing compilers
is almost like choosing editors, "It a religious choice."
If you are interested...
Borland C++ for OS/2 is a product of Borland International, Inc., 100
Borland Way, Scotts Valley, CA 95066, phone (408) 431-1000. MSRP is $499,
but there currently seems to be clearance type pricing through OS/2
product resellers.
The Southern California OS/2 User Group
P.O. Box 26904
Santa Ana, CA 92799-6904, USA
Copyright 1995 the Southern California OS/2 User Group. ALL RIGHTS
RESERVED.
SCOUG is a trademark of the Southern California OS/2 User Group.
OS/2, Workplace Shell, and IBM are registered trademarks of International
Business Machines Corporation.
All other trademarks remain the property of their respective owners.
|