home *** CD-ROM | disk | FTP | other *** search
/ Media Share 13 / mediashare_13.zip / mediashare_13 / ZIPPED / PROGRAM / SNPD9404.ZIP / WHICH_C.TXT < prev    next >
Text File  |  1994-04-03  |  11KB  |  232 lines

  1. .I 6 2
  2. companies that have survived have done so because some number of people think
  3. each of them makes the "best" compiler.
  4. .D 7 2
  5. .I 11 3
  6. Additional recommended reading are the C/C++ compiler reviews appearing in PC
  7. Magazine. PC Mag's reviews for many years were highly slanted and suspect,
  8. but in the past 2 years, have become commendably objective and even-handed.
  9. .I 39 54
  10. challenges the industry leader, Watcom, in many cases. It's also the only
  11. remaining C compiler which can run effectively on small or older machines
  12. without extended memory (SC++ can also, but is limited to *very* small
  13. programs).
  14.  
  15.  
  16.  
  17. MICROSOFT VISUAL C++ (VC++)
  18. ---------------------------
  19.  
  20. Microsoft's professional compiler now comes in two versions with the same
  21. name. The profession version replaces Microsoft C/C++, version 7.0. The
  22. regular version replaces Microsoft Quick C for Windows. The primary
  23. difference is the price and the extras since each requires at least a 386
  24. processor, 4 Mb of *available* extended memory, and a DPMI server such as
  25. Windows 3.1. If you don't have the machine resources, you can't use VC++.
  26.  
  27. On the plus side, VC++ is an excellent C++ compiler and generates executables
  28. which may not always be smaller than Borland, but usually execute faster.
  29. Microsoft's C compilers are still the standard for PC C compilers and it
  30. shows in the ready availability of 3rd party libraries supporting it. Support
  31. for Windows programming is excellent with tools only rivaled by SC++ (which is
  32. shipped with licensed copies of VC++'s MFC 2.0 class library).
  33.  
  34. Compile times with full optimization are still quite sluggish, but using the
  35. quick compile option can be provide acceptable results.
  36.  
  37.  
  38. BORLAND C++ (BC++)
  39. ------------------
  40.  
  41. BC++ carries on Borland's tradition of providing excellent bang for the buck.
  42. The latest release (3.1) of their professional compiler is an attractive
  43. alternative to shops also considering VC++. BC++ isn't as demanding as VC++
  44. and only requires a 286 and 2 Mb of *available* extended memory to run. A full
  45. 32-bit version is currently available for OS/2 2.1. Windows programming
  46. support is also quite good, but has been leapfrogged somewhat by VC++ and SC++
  47. for the time being.
  48.  
  49. Borland's tools are uniformly excellent, but the compiler still suffers a bit
  50. in comparison to the industry's technological leaders, Microsoft, Watcom, and
  51. Symantec - although the gap is closing. As with VC++, it's an excellent C++
  52. compiler and enjoys widespread support among 3rd party library vendors. Like
  53. all Borland compilers, ease of use was a design priority, all oriented to the
  54. excellent IDE.
  55.  
  56. Borland recently alienated many of their loyal customers with the release of
  57. BC++ 4.0. In addition to the normal version x.0 bugs that we all expect, the
  58. new version came with no DOS IDE, vastly slower compilation times (with no
  59. apparent increase in optimization to justify the slowdown), and an odious new
  60. license agreement that their lawyers quickly rescinded in the face of the
  61. massive desertion of corporate clients. They're working hard to get folks to
  62. like them again, but for the first time in their corporate life, they have
  63. seriously dissatisfied customers and aren't quite sure how to handle it.
  64. .D 40 16
  65. .I 60 6
  66. TC++ is to Borland's C++ compiler targeted at the hobbyist market. The latest
  67. version (TC++ 3.1) raised quite a stir when Borland released it requiring at
  68. least a 286 processor and 1 Mb of *available* extended memory above the
  69. normal 640K DOS limit.  Many hobbyists running on older XT's, or machines
  70. without the excess memory capacity have therefore failed to upgrade to the
  71. new release.
  72. .D 61 6
  73. .I 69 5
  74. and good supporting tools. Based on the facts of BC++ 4.0 cited above, it has
  75. become the compiler of choice for many Borland loyalists.
  76.  
  77.  
  78. SYMANTEC C++ (SC++)
  79. .D 70 40
  80. .I 111 77
  81. Symantec C++ (nee Zortech C++) was the industry's first C++ compiler, but fell
  82. behind in tracking the C++ language spec. Bought out by Symantec in 1991, the
  83. C compiler was always excellent and now its C++ compiler rates among the best.
  84.  
  85. SC++ supports DOS, Mac, Unix, Win32s, and NT (OS/2 was supported in previous
  86. Zortech releases and may be again) using an extremely powerful new object-
  87. oriented Windows-hosted IDE. It includes excellent libraries and add-ons
  88. including a TSR library, swapping spawn functions, a royalty-free 32-bit DOS
  89. extender, and an excellent set of ancillary C and C++ tools libraries
  90. including MFC 2.0 as previously noted. VC++ can generate true 32-bit code and
  91. has a switch for generating Pentium code. At the same time that Symantec
  92. bought Zortech, they also bought Multiscope, whose debuggers are included in
  93. the package. As with VC++, SC++ includes excellent tools for quickly
  94. developing Windows applications.
  95.  
  96. SC++ has always been in the forefront of optimizer technology along with
  97. Microsoft and Watcom. A major feature is full IEEE-754 and NCEG (Numerical C
  98. Extensions Group (an ANSI working committee trying to make C a suitable
  99. replacement for FORTRAN) compatibilty.
  100.  
  101. The only negative for the current release is a poor reputation which arose
  102. largely during the period following the Symantec acquisition of Zortech. With
  103. 6.1, these now appear mostly fixed. With the 6.1 release, support of DOS
  104. graphics has been dropped, but an updated version of the excellent Flash
  105. Graphics package shipped with the Zortech versions is available from FlashTek,
  106. which also supplies improved verions of the 32-bit DOS extender and the
  107. pre-Symantec debugger.
  108.  
  109. One caveat - if you got the 6.0 release, be sure to get the free 6.1 update!
  110.  
  111.  
  112. WATCOM C/C++ (WC++)
  113. -------------------
  114.  
  115. Watcom is the technological industry leader, performing feats of optimization
  116. and floating point speed other vendors only dream of. The cost is compile
  117. speed, which has been described (somewhat unfairly) as glacial. For all its
  118. technical excellence, WC++ is still a niche market compiler like SC++. As
  119. such, it's 3rd party support is poor, but many have found that Microsoft C
  120. libraries will work just fine with WC++. Like SC++, and unlike BC++ and VC++,
  121. WC++ provides documented support for embedded systems work, although not to
  122. nearly the same degree as Metaware (see below).
  123.  
  124. Also, like SC++, WC++ supports 32-bit code generation. WC++ is the compiler
  125. of choice for many OEMs, such as Novell, who want only the best supporting
  126. code for their products. MSC/VC++ compatibility is excellent, but watch out
  127. for Watcom's sensitivity to proper _cdecl declarations, implemented in Watcom
  128. via a pragma rather than as a built-in language feature. Watcom sells both
  129. 16- and 32-bit versions of its C/C++ compiler. The best deal is to buy the
  130. 32-bit compiler and then purchase the 16-bit upgrade pack.
  131.  
  132. Where Watcom really shines is its support for a multitude of environments
  133. with the same compiler(s). Supported are DOS, Win3.1, Win32s, NT, OS/2 (1.x &
  134. 2.x), Netware 386, AutoCAD ADS, QNX, Phar Lap and Rational DOS extenders.
  135. With such a bewildering array of targets, compilation is relatively
  136. straightforward but the linker has a steep learning curve.
  137.  
  138. Watcom remains the only one of the "big name" compilers to not ofer an IDE,
  139. if that's important to you or you don't own a "real" programmer's editor.
  140.  
  141.  
  142. METAWARE HIGH-C/C++ (HC++)
  143. --------------------------
  144.  
  145. HC++ is the darling of some segments of the embedded systems market. As such,
  146. it's a lot like WC++, only not quite as good and a lot weirder since it
  147. offers detailed control over every aspect of the executable. Most WC++
  148. comments apply, except for the ones relating to quality of generated code.
  149. HC++'s code is quite good, but seems to be showing its niche market
  150. orientation (any one remember Manx Aztec C?)
  151.  
  152.  
  153. TOPSPEED C/C++ (TSC++)
  154. ----------------------
  155.  
  156. TSC++ has had a rocky life, getting off to a late start in the market and
  157. never having really quite caught on. Originally, TSC++ was a Turbo C clone
  158. .D 112 44
  159. .I 160 1
  160. TSC++'s undisputed biggest strength is its smart linker and various features
  161. .D 161 1
  162. .I 162 8
  163. supports multi-threaded code). Using this technology, you can count on TSC++
  164. to almost always produce the smallest executables for a given piece of source
  165. code. The library, written almost exclusively in assembly, is also excellent
  166. and contributes to the frugal use of run-time memory. Unfortunately,
  167. compiler-generated code is typically not of the same quality.
  168.  
  169. Drawbacks include almost non-existant 3rd party support and the pervasive IDE
  170. which feels more at home to Modula-2 programmers than C programmers.
  171. .D 163 19
  172. .I 190 8
  173. to work in DOS's limited memory. OS/2 ports obviously don't share this
  174. limitation. Along with SC++, WC++, and HC++, the gnu compilers round out the
  175. list of full ISO/ANSI/ARM compilers with explicit support for embedded
  176. systems.
  177.  
  178. Performance is decent, but not earth-shattering, and executable tends to
  179. exhibit lots of bloat. If you plan to use one of these to write commercial
  180. code, be sure and read the license agreement *very* closely.
  181. .D 191 5
  182. .I 202 2
  183. anything. Small C's typically lack structs, unions, bit fields, and even long
  184. integers.
  185. .D 203 2
  186. .I 207 7
  187. First of all, Micro-C is an evolving product which, as of version 3, now
  188. includes many features such as structs and unions not normally associated
  189. with small C's.
  190.  
  191. Also, the source code (available when you register the shareware version) is
  192. quite decent and really can teach you something about compiler internals. But
  193. Micro-C is genuinely useful for a lot more reasons.
  194. .D 208 3
  195. .I 213 4
  196. chips as well. The 80x86 version comes ready to compile either PC or embedded
  197. code. Included in the PC library are support for writing TSR's, interrupt-
  198. driven serial I/O, and screen windowing. Amazingly, it also sports an
  199. optimizer, but requires MASM or equivalent for compiling PC applications.
  200. .D 214 4
  201. .I 219 1
  202. small. "Hello world" programs that run 5-6K on other compilers run under 600
  203. .D 220 1
  204. .I 221 27
  205.  
  206. One other point needs to be mentioned with respect to Micro-C...  Although it
  207. is *a* small C, it has no code commonality with *the* Small C from the book
  208. of the same name. This is important since there are a number of variants of
  209. Small C available, all not much better than the original.  Micro-C, OTOH, was
  210. written by Dave Dunfield completely from scratch and is a *much* better
  211. designed piece of code and certainly much more instructive to fledgling
  212. compiler writers. His better design is evinced in code quality and execution
  213. speed.
  214.  
  215.  
  216. PCC
  217. ---
  218.  
  219. The Personal C Compiler is available as shareware. It used to be marketed as
  220. the deSmet C compiler and had a generally good reputation for quick compile
  221. times and tight code. Unfortunately, the product hasn't been seriously
  222. upgraded in quite a while and can't stand too much comparison. It's horribly
  223. non-ANSI compliant, has a weaker set of library functions than Micro-C,
  224. features non-standard file formats, and is generally incompatible with most
  225. published C code
  226.  
  227. If price is your concern, Mix Power C costs less to buy than PCC and offers
  228. better performance along with the ANSI compliance that PCC lacks. If you plan
  229. on using an unregistered copy, Gnu C/C++ are vastly superior and are legally
  230. free. If you're attracted to its tight, fast code and can live with quirks
  231. and without ANSI compliance, go with Dunfield Micro-C.
  232.