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