microsoft C considered stupid

VLD/VMB gwyn at brl.arpa
Sun Jun 22 15:29:55 AEST 1986


Alan "IBM-hater" Rosenthal posted an article flaming MicroSoft C for
its "stupidity" (in his opinion).  While I don't much like IBM PCs, I
like ignorant flames even less.  Rosenthal's posting may have confused
some inexperienced C programmers, so correction may be useful.  In the
following, lines starting with > are Rosenthal's original remarks.

>The manuals, besides being poorly and sometimes inaccurately written,
>encourage all sorts of stupid things.  I would like to share two things
>with you.
>
>1. They have instituted a pre-processor conditional of the form
>	#if defined(MANIFEST_CONSTANT).  Furthermore, the manual notes that
>	use of #ifdef is "discouraged" (though at least they support it).
>	Here in net.lang.c several C revision proposals have been rejected on
>	the grounds that they don't add enough to the language to merit the
>	inconvenience of a change.  This change from #ifdef adds absolutely
>	nothing to the language!

First, this is not a MicroSoft invention.  It has been in many C
compilers, including UNIX PCC, for years.  (Actually it is "macro name"
that is tested, not just "MANIFEST_CONSTANT".)  Second, having an
explicit predicate does add something over #ifdef; it is more general:
	#if defined(BRL) && !defined(pdp11)	/* I use this a lot! */

>2. The manual does not permit something of the form:
>	struct tag { typedeclaration value; ... };
>	although the compiler does.  The manual requires that you actually
>	declare something with the struct.  This is not a feasible restriction
>	on C and in fact MS C is not so restricted.

It's hard to make sense of this out of context, but if it precludes
	struct foo { int bar 123; };
as I suspect it does ("value" smacks of initializer to me), then it is
a perfectly correct restriction.

>In other words, my complaint about MS C is that there are mindless restrictions
>(in typical IBM style).  The examples in the book are all stupid and unclear.
>I don't know how I would learn C there if I hadn't first learned it here.

It is not clear that Rosenthal *has* learned C or even how to read
manuals.  One has to admit that at least one MicroSoft C user was
apparently not adequately served by their documentation; not having
seen it, I don't know whether the blame for that lies with MicroSoft
or with the user.  But the flame was certainly off the mark.



More information about the Comp.lang.c mailing list