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