BKCODEHL.RVW 991121
"Code", Charles Petzold, 1999, 0-7356-0505-X, U$27.99/C$42.99/UK#25.99
%A Charles Petzold
%C 1 Microsoft Way, Redmond, WA 98052-6399
%D 1999
%G 0-7356-0505-X
%I Microsoft Press
%O U$27.99/C$42.99/UK#25.99 +1-800-MSPRESS fax: +1-206-936-7329
%P 393 p.
%T "Code: The Hidden Language of Computer Hardware and Software"
There is a nicely multilayered pun involved in the title and subtitle
of this book. First off, there is the fact that language is code, as
in a system for encoding information. Then, of course, there is code
as a common, if somewhat faulty, synonym for encryption, and
cryptography is derived from the word for "hidden." Computer people
refer to programming, the sets of instructions that make the machinery
worth more than an equivalent weight of sand, as code: source code is
the stuff written in computer languages, and object code (or machine
code) actually runs. Code, either of the programming kind or of the
protocol kind more often related to hardware, is also hidden from most
computer users.
The title, therefore, quite amply describes the book as a whole. This
is a kind of "How Computers Work" for trivia buffs, or "Computers for
the Easily Amused." Petzold takes some very important concepts,
central to the understanding of computers on a fundamental level, and
beats them to death with several large sticks. We start off, for
example, looking at the encoding of information, and particularly
encoding with binary formats. But we meander through friends
communicating after lights out, secret codes, braille, flashlights,
switches, morse code, electrical wiring, counting in different number
bases, bar codes, batteries, alphabets versus ideographs, telegraph,
Arabic numerals, and Tony Orlando and Dawn (don't ask) before we get
there. Indeed, by the time we do get there, we've forgotten where
we're headed.
(Petzold's excess of erudition trips up either himself or the reader
on occasion. Pages 68 and 103, if they aren't absolutely mutually
exclusive in giving credit for the invention of the word "bit," are
certainly confusing.)
The topics meander through logic, logic gates, logic circuits, logic
and function, and a simple adding machine. Then, having dragged the
material along at a technical snail's pace, we suddenly jump to a
"level triggered D-type flip flop," with almost no intervening
content. From that point on, the book races through hexidecimal
notation, memory architecture, programming, microchips,
microprocessors, character sets, bus architecture, operating systems,
floating point arithmetic, high level languages, and graphical
interface design. The radical shift in audience level almost makes it
seem like Petzold himself got tired of the turgid tempo of the book,
and switched texts in mid volume.
I cannot think of an audience to whom I could recommend this book.
For those who do not understand computers, the foundational ideas are
presented so slowly, and in such clouds of examples and sarcastic
humour, that the reader is likely to get lost. For those who are
familiar with computer use, but would like to explore the lower
levels, the slow pace of the work is probably even worse. In any
case, the last half of the book presents a flurry of impressions at
breakneck speed, and probably isn't suitable for anyone. The frantic
pace of this latter content ensures that the technologies really only
get a mention, and, while the background was so tediously belabored in
the first part, absolutely no framework is given in the second.
copyright Robert M. Slade, 1999 BKCODEHL.RVW 991121