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.