[comp.sys.ibm.pc] Turbo C - experience with an alpha copy

psc@lzaz.UUCP (03/27/87)

< "I'm *not* expendable, I'm *not* stupid, and I'm *NOT* going!" >

The praise you're going to be hearing over the next few months about
Turbo C will sound a lot like hype.  Believe it anyway.  I've had
limited access to an alpha test site, skimmed the documents, played
very briefly with the tools .  .  . and I *want* it.

Turbo C is a $100 professional development environment for C
programmers.  Those of you who don't have IBM compatible DOS machines
will be happy to hear that Turbo C includes a very UNIX(R)-like cc
command, and some kind of make facility.  Those of you who do might
prefer the Turbo Pascal-like integrated environment, from which you can
edit, compile, link, and run your programs.  Those of you who like the
DeSmet package will appreciate the low cost and fast compilation times.
Those of you who like Microsoft C will miss the full screen debugger,
but will appreciate the extremely complete libraries and high quality
code generated.  Those of you who want to develop software that looks
and feels (:-) nice on an IBM compatible will appreciate both the
generic interrupt and DOS function interface, and lots of front end
functions for commonly called functions.

I had access to the alpha test copy of Turbo C and Microsoft C 4.0 on
the same machine, so I made some comparisons.  I compared the Sieve and
Dhrystone benchmarks.  The problem with that is that everyone seems to
fine-tune their compilers to generate good code for those two programs!
I also ran some of the "B" benchmarks, which neither Microsoft nor
Borland should have.

Turbo C seems to compile one third to one half faster than Microsoft --
but that's with Microsoft putting libraries and include files in an
expanded memory RAM disk (I didn't realize that until I was done), and
without the RAM-to-RAM compilation I assume the final version of Turbo
C will support.  Turbo's object files are smaller, but the executables
are bigger.  (I think Microsoft has a tighter printf package than
Turbo, at least in the version I saw.)  The Turbo executables were as
fast or faster than Microsoft's.  Borland has their own linker, but
it's Microsoft compatible (unlike Mix or DeSmet), and the faster linker
doesn't hurt at all.

(Later:  I've been informed by Borland that "the printf package has been
rewritten all in assembler and is quite small now".  I don't have this
version.  Also, apropros of nothing, I also asked them about getopt(),
with and without switchar support, and if argv[0] is set.  The source
code to getopt() is included, and argv[0] is set.)

Turbo C supports six memory models.  According to the documentation,
you can mix models within a single program (if you're *very* careful),
and you can create "tiny model" .EXEs that can be converted to .COM
files.  I didn't play with any of this; I only compared small models.

One point worth mentioning -- one of my benchmarks wouldn't compile
under Microsoft C because the compiler ran out of heap space.  (I had a
fair sized initialized array of pointers to string constants.)  Turbo
compiled it without a problem.

Turbo C has been announced and advertised.  It should ship some time in
the second quarter of this year.  I've heard April, but I'm not holding
my breath.  Actually, I am -- this is too good a piece of software to
wait long for!

Caveats:  None of my benchmarks was non-trivial in size.  I didn't test
disk performance.  All this testing was done on an 8 MHz PC AT (because
the friend of a friend who's an alpha site set it up on that).  THIS
WAS AN ALPHA TEST COPY; YOUR MILEAGE *WILL* VARY!  Microsoft won't
stand still.  These comments on the early version have been blessed,
but not censored, by Borland; I'm not leaking proprietary data.  I
don't have a copy of *any* version of Turbo C yet.  If you get a copy
from Borland when it comes out, it'll cost you $99.95.  If you get a
copy from a friend, it'll cost you thousands of dollars and maybe a few
years in jail if you're caught.  The above opinions are not necessarily
those of any organization, including my employers, my friend with the
alpha copy, or Borland International.  IBM and PC AT are trademarks of
IBM.  PC is a trademark of PC Communications, a subsidiary of
Ziff-Davis.  Microsoft and Turbo C may be trademarks, too.  UNIX is a
registered trademark of AT&T.  So far as I know, the letter "C" is
still in the public domain.