Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!unmvax!bbx!bbxsda!scott From: scott@bbxsda.UUCP (Scott Amspoker) Newsgroups: comp.lang.c Subject: Re: This one bit me today Message-ID: <229@bbxsda.UUCP> Date: 9 Oct 89 23:02:24 GMT References: <2432@hub.UUCP> <568@sppy00.UUCP> <750@philmtl.philips.ca> <4147@ncsuvx.ncsu.edu> Reply-To: scott@bbxsda.UUCP (Scott Amspoker) Organization: Basis International, Albuquerque, NM Lines: 77 In article <4147@ncsuvx.ncsu.edu> jnh@ecemwl.UUCP (Joseph N. Hall) writes: > >I certainly hope "Consumer Reports" never rates programming languages ... Allow me :-) IN THIS ISSUE: 8 BUTTER SUBSTITUTES 10 VCRS AN EXCITING NEW PROGRAMMING LANGUAGE SURVEY ON ORAL SEX AND AIDS TRANSMISSION ... Well, there was FORTRAN, COBOL, and PL/1. Now there is a new kid on the block, 'C'. How does 'C' measure up to it's bigger brothers? We had our staffers develop small, medium, and large scale applications using C. The staffers were pick randomly at CU headquarters. Some of them knew programming and some didn't. The applications were chosen because of their mix of calculations, file management, and user interface. The actual programs they had to write consisted of: small - compute PI to 100,000 places medium - realtime MIDI application with interrupt handling large - desktop publishing system A special development system was set up that kept track of the number of compiles, mean time between compiles, and number of compile errors. The staffers were kept in a room with precisely controlled temperature, lighting, and soft music. We were greatly disappointed in C as its disadvantages almost immeadiately surfaced. First of all, you have to declare variables before they may be used. Also, most important, C has reserved words. These are the same major flaws found in Pascal which we rated unacceptable in our March 1987 issue. Also, there were simply *too many operators* (and surprisingly, no exponentiation!) Some of our staffers thought that the heavy use of curley braces '{}' was awkward since they required the shift key. Furthermore, there is a basic attitude among our staffers that any language that provides pointer types is trying to hide *something*. It was hard to tell where C ended and subroutine libraries began. However, C isn't all bad. It's fast. Almost too fast - like a car without brakes. Part of this speed is because of the complete lack of runtime checking of anything. Some of our staffers actually liked that but our more mature staffers didn't. Also, C is normally typed in at a CRT and not punched on cards - a big plus! Finally, it is recursive. All in all, we believe C will become more of a "cult" language and never seriously accepted into the mainstream. While it is fast and small we felt that the lack of string handling, exponentiation, and other omissions are too important to overlook. (A multi-level break would have been a nice touch to eliminate goto's). We do not recommend C. DEFECTS: Our factory sample contain several defects. The most serious were: Generated bad code for returning a structure from a far procedure. #include was limited to 64 levels. Bit fields assigned from left-to-right instead of right-to-left. -- Scott Amspoker Basis International, Albuquerque, NM (505) 345-5232 unmvax.cs.unm.edu!bbx!bbxsda!scott