[comp.windows.ms.programmer] Borland C++ 2.0 impressions

tom@mims-iris.waterloo.edu (Tom Haapanen) (04/01/91)

I've now had Borland C++ 2.0 (aka bcc) for almost two weeks, and finally had
enough time to get our application compiled with it.  I benchmarked it against
our existing Microsoft C 5.1, for compile time and executable size.  I didn't
check executable speed, as with many Windows apps it's rather difficult to do
that.  Here are the options that I used for the test:

	# Borland C++ 2.0
	CC     = \usr\bcc\bccx
	OPT    = -O -Z
	CFLAGS = -mm -W -w-rch -w-par -a -Hu $(OPT) -I..\inc\ -o$(OBJ)/$*

	# Borland C++ 2.0 --- no optimization
	CC     = \usr\bcc\bccx
	OPT    = -O-
	CFLAGS = -mm -W -w-rch -w-par -a -Hu $(OPT) -I..\inc\ -o$(OBJ)/$*

	# Microsoft C 5.1
	CC     = cl
	OPT    = -Ox
	CFLAGS = -nologo -Mm -K -Gw -Zp $(OPT) -FPi -I ..\inc\ -Fo$(OBJ)/

And here are the results that I got, compiling 2500 lines of headers and
25,000 lines of source on a 386/20 (4 MB RAM, QEMM 5.1, tkernel hi=yes,
583K free DOS memory, 1048575 free for bcc), excluding link and rc:

				bcc	    bcc -O	cl -Ox
	Compile time:		14:05	    15:23	25:41
	Executable size:	312K	    311K	268K
	Minimum load size:	236K	    236K	216K

The Microsoft alternate floating-point library cuts out another 17K from
the C 5.1 executable and minimum load sizes.

Now, for some more subjective observations, both positive and negative; these
are from the Windows development viewpoint, and ignore the C++ side of things
completely:

+ bcc has very fine-tunable warning level control
+ bcc compiles about 50% faster
- bcc produces an executable about 20% larger
- bcc has no alternate floating-point library available
- bcc can't disable that d*mn copyright banner
- bcc's msc emulation has some bugs: at the minimum, the _MAX_PATH and
  associated constants are wrong, and no makepath() function is provided.
  This can be easily fixed, but it's a pain.
- bcc doesn't know about environment variables
- bcc doesn't like the MKS Korn shell; if using the shell, it needs to be
  invoked with a full backslash path (\usr\bcc\bccx), as it gets confused
  by the slash path the shell generates (/usr/bcc/bccx).

And as to the Whitewater Resource toolkit:
+ cut and paste available for bitmap/icon editing
+ string, accelerator and menu "editors"
- include files can't be used
- no status box is available for dialog editing
- WRT is a resource hog!

The lack of include files is enough to prevent me from using WRT.  I expect
we'll use bcc for development work, but the final code is still going to get
compiled with Microsoft C, giving us smaller code and access to the alternate
math library.

[ \tom haapanen --- university of waterloo --- tom@mims-iris.waterloo.edu ]
[ "i don't even know what street canada is on"               -- al capone ]

altman@sbpmt.cs.sunysb.edu (Jeff Altman) (04/02/91)

In article <1991Apr1.122952.17519@watserv1.waterloo.edu> tom@mims-iris.waterloo.edu (Tom Haapanen) writes:
>
>And as to the Whitewater Resource toolkit:
>+ cut and paste available for bitmap/icon editing
>+ string, accelerator and menu "editors"
>- include files can't be used
>- no status box is available for dialog editing
>- WRT is a resource hog!
>

You sure can use Include files with the WRT.  I've been using them.
And Yes WRT can be a require quite a few resources, but those can be
adjusted if you would read Appendix A of the manual.

>[ \tom haapanen --- university of waterloo --- tom@mims-iris.waterloo.edu ]
>[ "i don't even know what street canada is on"               -- al capone ]



--
- Jeff (jaltman@ccmail.sunysb.edu)

todd@appmag.com (Todd Day) (04/02/91)

tom@mims-iris.waterloo.edu (Tom Haapanen) writes:
%And as to the Whitewater Resource toolkit:
%- include files can't be used

Yes, they can.  They just can't have anything in them except
#define's.  No problem.  I just have two files called "resource.rec"
and "resource.h" that contain all of the necessary resources for
my program (no use in splitting them up since WRT can deal with
all sorts of different resources being in one file).

I think it's cleaner to keep all of the #define's for the resources
in one file, anyway.  However, I dont' write apps with huge amount
of resources...

WRT is certainly a lot cleaner than all of the bitmap editors and
dialog editors in the SDK.  The dialog editor tends to crash on
my machine (the only app I know of to do this on my machine) and
is a bit kludgy.  WRT is a tiny bit slow, but I can cope with it.
I just need to get a faster machine with more RAM (but don't we
all :-).

-- 
Todd Day  |  todd@appmag.com

tom@mims-iris.waterloo.edu (Tom Haapanen) (04/03/91)

tom@mims-iris.waterloo.edu (Tom Haapanen) writes:
% And as to the Whitewater Resource toolkit:
% - include files can't be used

Todd Day <todd@appmag.com> writes:
> Yes, they can.  They just can't have anything in them except
> #define's.  No problem.  I just have two files called "resource.rec"
> and "resource.h" that contain all of the necessary resources for
> my program (no use in splitting them up since WRT can deal with
> all sorts of different resources being in one file).

My mistake.  However, WRT's dialog editor still doesn't have a status box
or bar, and doesn't give any decent feedback when moving controls.  Yuk.

***NOTE***
All my griping about the faults of BCC and WRT doesn't mean that BCC is a
bad package.  It means that it's not perfect, and if you're doing profes-
sional Windows development, I wouldn't throw out the MSC and SDK just yet.
Nevertheless, I expect to be using BCC in the months to come...

[ \tom haapanen --- university of waterloo --- tom@mims-iris.waterloo.edu ]
[ "i don't even know what street canada is on"               -- al capone ]

mlord@bwdls58.bnr.ca (Mark Lord) (04/04/91)

In article <1991Apr1.122952.17519@watserv1.waterloo.edu> tom@mims-iris.waterloo.edu (Tom Haapanen) writes:
<I've now had Borland C++ 2.0 (aka bcc) for almost two weeks, and finally had
...
<Now, for some more subjective observations, both positive and negative; these
<are from the Windows development viewpoint, and ignore the C++ side of things
<completely:
...
<- bcc has no alternate floating-point library available

What about the "Fast Floating Point" option in the IDE (I don't know what
the command line option is for this).

<- bcc can't disable that d*mn copyright banner

Which banner?  The one found in .OBJ files?

<- bcc doesn't know about environment variables

Really?  Please elaborate.. you mean environment variables for bcc, or what?  
The IDE has a DEFINES option on one of the menus for defining compile-time
variables.

<And as to the Whitewater Resource toolkit:
<+ cut and paste available for bitmap/icon editing
<+ string, accelerator and menu "editors"
<- include files can't be used
<- no status box is available for dialog editing
<- WRT is a resource hog!
-- 
MLORD@BNR.CA  Ottawa, Ontario *** Personal views only ***
begin 644 NOTSHARE.COM ; Free MS-DOS utility - use instead of SHARE.EXE
MZQ.0@/P/=`J`_!9T!2[_+H``L/_/+HX&+`"T2<TAO@,!OX0`N1(`C,B.P/.DS
<^K@A-<TAB1Z``(P&@@"ZA`"X(27-(?NZE@#-)P#-5
``
end

ebergman@isis.cs.du.edu (Eric Bergman-Terrell) (04/04/91)

What do you mean when you say that WRT can't handle include files?

If you mean c language .h files, it can use them and automagically
create them...

Terrell

cadsi@ccad.uiowa.edu (CADSI) (04/05/91)

From article <1991Apr4.142415.27466@mnemosyne.cs.du.edu>, by ebergman@isis.cs.du.edu (Eric Bergman-Terrell):
> 
> What do you mean when you say that WRT can't handle include files?
> 
> If you mean c language .h files, it can use them and automagically
> create them...

Try this in a header file (WRT pukes).

#define A_MESSAGE (WM_USER+1)

It would be real nice if things like that (that MS says to do) would
work.

|----------------------------------------------------------------------------|
|Tom Hite					|  The views expressed by me |
|Manager, Product development			|  are mine, not necessarily |
|CADSI (Computer Aided Design Software Inc.	|  the views of CADSI.       |
|----------------------------------------------------------------------------|