I have recently acquired a copy of Bertrand Meyer's new book "Object
Success".  I would like to say that I have a great deal of respect for
Meyer.  Moreover, I have read many good things in this book so far.

However I take extreme exception to something he wrote in this book.
On page 91 he writes the following which is included in its entirety.
I will comment on it afterwards.

-------------------------------------------------------------------------
PRUDENT HIRING PRINCIPLE: Beware of C hackers.

A "C hacker" is somewone who has had too much practice writing
low-level C software and making use of all the special techniques and
tricks permitted by that language.

Why single out C?  First, interestingly enough, one seldom hears about
Pascal hackers, Ada hackers or Modula hackers.  C, which since the
late nineteen-seventies has spread rapidly throughought the computing
community, especially in the USA, typifies a theology of computing
where the Computer is the central deity and its altar reads
Efficiency.  Everything is sacrificed to low-level performance, and
programs are built in terms of addresses, words, memory cells,
pointers, manual memory allocation and deallocation, unsafe type
conversions, signals and similar machine-oriented constructs.  In this
almost monotheist cult, where the Microsecond and the Kilobyte
complete the trinity, there is little room for such idols of software
engineering as Readability, Provability and Extendibility.  

Not surprisingly, former believers need a serious debriefing before
they can rejoin the rest of the computing community and its progress
towards more modern forms of software development.  

The above principle does not say "Stay away from C hackers", which
would show lack of faith in the human aptitude to betterment.  There
have indeed been cases of former C hackers who became born-again O-O
developers.  But in general you should be cautious about including C
hackers in your projects, as they are often the ones who have the most
trouble adapting to the abstraction-based form of software development
that object technology embodies.
----------------------------------------------------------------------

There is only one word that can accurately describe these sentiments.
That word is biggotry.  I don't like to use a word like that to
describe the words of someone who is obviously intelligent.   Yet
there is no other option.  The words he has written create a class of
people whom he recommends ought to be hired, only with caution.

Who are these "C Hackers"?  Has Dr. Meyer given us any means to
identify them?  Yes.  

     A "C hacker" is somewone who has had too much
     practice writing low-level C software and making
     use of all the special techniques and tricks
     permitted by that language.

What possible recourse can a manager have but to look with prejudice
against anyone who happens to put "C" on their resume.  By associating
"C" with "Hackers", Dr. Meyer damages everyone who uses that language,
whether they are hackers are not.  In effect, Dr. Meyer is making a
statement that is equivalent to: "Beware of the Thieving Frenchmen."

What is a hacker?  A hacker is someone who writes computer programs
without employing sound principles of software engineering.  Someone who
simply throws code together without thought to structure or lifecycle. 

Certainly there are hackers who use C.  But there are Hackers who use
every language.  And in this, Dr. Meyer is quite negligent, for he says
nearly the opposite:

     Why single out C?  First, interestingly enough, 
     one seldom hears about Pascal hackers, Ada hackers 
     or Modula hackers.  

This may or may not be true, I have no statistics.  However, *if* it is
true I would be willing to bet that the reason has something to do with
the difference in the number of C programmers as compared to Ada, Pascal
and Modula programmers.  If there are 20 times as many C programmers,
then there are probably 20 times as many C hackers.

My point is that C does not predispose someone to be a hacker.  And that
the ratio of C hackers to C programmers is probably the same as Ada
hackers to Ada programmers.

So Dr. Meyer casts aspersions upon all C programmers while giving
amnesty to Ada, Pascal and Modula programmers.  According to Dr. Meyer,
it is only, or especially, the "C hacker" that you must be wary of.  He
does not say: "Beware of Hackers", rather he says: "Beware of C
hackers."  And this is simply biggotry, the segregation and defamation
of a class of people based only upon the language that the program in.  

And why this malevolence towards C?  One can only conjecture.  He offers
reasons, but they are nearly mystical in their descriptions.  Consider:

    C [...] typifies a theology of computing where the
    Computer is the central deity and its altar reads
    Efficiency.

Dr. Meyer does not provide any proof, or even a scrap of evidence to
support this rediculous claim.  He states it as fact.  This is an abuse
of authority.  What every author fears, (or ought to fear in my opinion)
is that he cast his own opinions as unalterable truth.  Yet, rather than
proceed with trepdiation, Dr. Meyer seems to glory in his deprication of
C.  His writing becomes almost frenzied as he attacks it. 

     Everything is sacrificed to low-level performance,
     and  programs  are built  in terms  of  addresses,
     words,   memory  cells,  pointers,  manual  memory
     allocation    and   deallocation,    unsafe   type
     conversions, signals  and similar machine-oriented
     constructs.  In this almost monotheist cult, where
     the  Microsecond  and  the  Kilobyte complete  the
     trinity, there is  little room  for such idols  of
     software  engineering as  Readability, Provability
     and Extendibility.

Here he names every evil trick and bad practice that he can, and
ascribes it all to C, as though no other language had the capability of
supporting bad practices.  He also claims that C programmers religiously
follow these bad practices as the sacrements of their religion.

These statements are extremely irresponsible.  There is no basis of fact
that Dr. Meyer has supplied for these extreme accusations and
defamations.  Dr. Meyer has a right to dislike C if he chooses.  But his
vehemence against its programmers is unreasonable, and unreasoned.

It is easy to refute nearly all of Dr. Meyer's claims regarding C
programmers.  I have known many many C programmers who were very
concerned with good software engineering.  Who considered the quest for
ulimate efficiency to be absurd.  Who were careful with their
programming practices.  In fact, I have never met a single C programmer
who fits the description that Dr. Meyer ascribes to them all.

In my opinion, he is very wrong, not only professionally, but moraly.
And he owes the industry an apology and a retraction.