The BookwormUSENIX

 

salus,
peter by Peter H. Salus
<[email protected]>

Peter H. Salus is a member of ACM, the Early English Text Society, the Trollope Society, and is a life member of the American Oriental Society. He has held no regular job in the past lustrum. He owns neither a dog nor a cat.

I've received an abnormally large number of really good books over the past few months ­ even three on Java that made me relent a bit. Perl, Tcl, C++, Icon, Awk, intranets, extranets, Linux, and security are among the other topics.

But the most exciting book to reach me was the new, third edition of Knuth's Art of Computer Programming, vol. 1. That's "Fundamental Algorithms." Knuth is redoing the other volumes as well. I expect to do an entire column on the "set" when it's complete. This is a great and important work, and one that most of you probably are familiar with. It looks as though Knuth has incorporated every erratum and thought about every comment made on the first two editions over nearly 30 years. The results are just stunning. I'm not certain you can be a real programmer and not have read at least part of Knuth (I admit to skipping).

Java

I guess I may as well get it over with.

Englander's Developing Java Beans is an excellent introduction to component architecture and the use of Java Beans in programming. Because Java Beans can be used in graphical programming environments and can be used like "Lego blocks," Englander (and others) claim that applications can be constructed with the writing of any code. I feel I've heard that before. But this is a solid and worthwhile book.

Not Just Java purports to be for "everybody who needs to understand the Internet revolution." I'm not sure that anyone truly understands that phenomenon, but this book does explain Java, CORBA, IIOP, ActiveX, and a lot of other things. Unfortunately, the book is overwhelmingly pro-Sun in a nagging, chauvinistic manner that wore on me. It also eschews references and bibliography. There is an index reference to Scott McNeely, but not to James Gosling.

Flanagan has done an outstanding job on the second edition of Java in a Nutshell. Java, as you know, is a moving target, but this edition covers Java 1.1. It's both a reference and a solid tutorial on "inner classes." The 40+ pages on Java Beans are excellent.

Languages

Most of these books aren't new: they are all extensively revised and expanded editions of reliable favorites.

Icon has long been one of my favorite languages. I was a SNOBOL user in the 1960s, and Ralph Griswold was one of the creators of that while he was at Bell Labs. Mike O'Dell and I published an Icon paper in Computing Systems (2.4 [1989]). My 1983 copy of The Icon Programming Language is held together by a rubber band. I was thrilled when I got my copy of this third edition. Icon is a high-level general purpose language. Thanks to Ralph and Madge for taking the pains that this superb volume must have taken.

Stroustrup's third edition of his C++ tome has waxed: the first edition had 328 pages, the second, 669 pages; it is now 910 pages. Unlike those annoying volumes whose pages are filled with screen dumps, this is full of real information. Bjarne has done a splendid job in this total rewrite of his important work.

The second edition of Welch's Tcl/Tk book covers the Tcl 8.0 and Tk 8.0 releases and covers network sockets and using Tcl for Internet scripting. There's a CD-ROM with Tcl and Tk versions for Windows95, Windows3.1, WindowsNT, Macintosh, and UNIX. As John Ousterhout mentioned at the Tcl/Tk Workshop, the promotion of Tcl is a political thing at Sun. Welch's book may help it break out from being such a well-kept secret. Right now it might be the best language for Internet scripting.

For a long time, Ousterhout's and Welch's works were all there was (well there are others, but I find it hard to take Visual Tcl or Tcl for Dummies at all seriously) and Libes's volume is confined to expect). Now two more books have entered the lists. My advice is to get both.

One is Tcl/Tk Tools. Sixteen contributors, including Ousterhout, McLennan, and Libes, combined with Mark Harrison to produce this extraordinarily useful volume. But be warned: this is no book for beginners. Though it is clearly written and lucidly presented, it is no quick or easy read. But the results of careful reading will be very profitable to you.

At the Tcl/Tk Workshop in Boston, Addison-Wesley gave away two chapters of Harrison and McLennan's forthcoming book. Because it will be out by the time you read this, I'd like to say a few words. One of the chapters is on the canvas widget, which Brian Kernighan has said he considers one (if not the) most valuable. Harrison and McLennan have devoted 70 pages to canvas. If you're using Tcl at all, this book is a must.

The second edition of Robbins's Effective AWK Programming isn't a thorough redoing of the first edition. It's a corrected edition, updated for GAWK 3.0.3 and with a reference card bound in. The card is very useful. Oz Yigit hated the typography of the previous edition. That hasn't improved, but I'm not sure it matters: even if you're not using GNU Awk, this is a very useful book.

The second edition of Learning Perl has acquired Tom Christiansen as Randall Schwartz's co-author. The llama has gained weight, but not as much as might have been anticipated. It's definitely the best introductory book on Perl.

Linux

Linux books are sprouting as though they were Java. Most of the ones I've seen are less than wonderful. However, Sobell's Practical Guide is truly first-rate. After introducing the system and the filesystem, Sobell proceeds to shells and (wonder of wonders!) actually discusses zsh intelligently. He also does a fine job on the utility programs.

Shells

Arthur and Burns's fourth edition still confines itself to the Bourne, C, Korn, and BASH shells. I wish someone would do a book on zsh. In fact, I wish someone would do a book on all the UNIX shells. This is the fourth book on shells in under a year. And they all cover the same stuff. Arthur and Burns's is above average, but not the best.

Nets

Extranets informs me that "Extranets, the next generation of Intranet, are dynamic wide-area networks that link a company's employees, suppliers, customers, and other key business partners in a secure, electronic on-line environment for business communications." That's overblown enough that I nearly threw the book away. I'm glad I didn't. Although I found Extranets verbose and occasionally unfocused, it's far from worthless.

Bort and Felix's Building an Extranet is both shorter and has a really good chapter on vendors/sources. Unfortunately, other books aren't resources ­ there are no references and no bibliography.

Hinrichs's Intranets is the sort of book Dilbert's manager would love: it will give him all the jargon he needs with no need to actually understand anything. It contains an "executive briefing" and "critical lessons." It has a section on how "networks evolve to the Intranet." Wouldn't Darwin be pleased!

Web Security & Commerce is a first-rate book: it not only supplies the reader with a lot of well-presented information; it contains a list of online and print resources. It is more than a slimmer version of the authors' 1,000-page epic on UNIX security; it concerns non-UNIX systems, and talks about encryption, SSI, digital signatures, etc.

Smith's Internet Cryptography provides an excellent overview of the strengths, weaknesses, and uses of cryptography. But if what you need is a how-to, the second edition of Bruce Schneier's 1996 book is the one for you.

Coda

Remember, next issue is December and will contain my traditional top ten list. If you fear I might miss considering something, email me.

Books reviewed in this column:

Donald A. Knuth
The Art of Computer Programming
vol. 1, "Fundamental Algorithms.," 3rd ed.
Reading, MA: Addison-Wesley, 1997.
ISBN 1-201-89683-4. Pp. 650.

Robert Englander
Developing Java Beans
Sebastopol, CA: O'Reilly & Associates, 1997.
ISBN 1-56592-289-1. Pp. 298.

Peter van der Linden
Not just Java
Upper Saddle River, NJ: Prentice Hall, 1997.
ISBN 0-13-864638-4. Pp. 313.

David Flanagan
Java in a Nutshell
2nd ed. Sebastopol, CA: O'Reilly & Associates, 1997. ISBN 1-56592-262-X. Pp. 610.

Ralph E. Griswold & Madge T. Griswold
The Icon Programming Language
3rd ed. San Jose, CA: Peer-to-Peer, 1996.
ISBN 1-57398-001-3. Pp. 386.

Bjarne Stroustrup
The C++ Programming Language
3rd ed. Reading, MA: Addison-Wesley, 1997.
ISBN 0-201-88954-4. Pp. 910.

Brent B. Welch
Practical Programming in Tcl and Tk
2nd ed. Upper Saddle River, NJ: Prentice Hall, 1997. ISBN 0-13-616830-2. Pp. 630+CD-ROM.

Mark Harrison et al.
Tcl/Tk Tools
Sebastopol, CA: O'Reilly & Associates, 1997.
ISBN 1-56592-218-2. Pp. 680+CD-ROM.

Mark Harrison & Michael McLennan
Effective Tcl/Tk Programming
Reading, MA: Addison-Wesley, 1997.
ISBN 0-201-63474-0.

Arnold Robbins
Effective AWK Programming
2nd ed. Seattle, WA: SSC, 1997.
ISBN 1-57831-000-8. Pp. 322+reference card.

Randall L. Schwartz & Tom Christiansen
Learning Perl
2nd ed. Sebastopol, CA: O'Reilly & Associates, 1997. ISBN 1-56592-284-0. Pp. 269.

Mark G. Sobell
A Practical Guide to Linux
Reading, MA: Addison-Wesley, 1997.
ISBN 0-201-89549-8. Pp. 1,011.

Lowell Jay Arthur & Ted Burns
UNIX Shell Programming
4th ed. New York: John Wiley, 1997.
ISBN 0-471-16894-7. Pp. 518.

Richard H. Baker
Extranets
New York: McGraw-Hill, 1997.
ISBN 0-07-006302-8. Pp. 576.

Julie Bort & Bradley Felix
Building an Extranet
New York: John Wiley, 1997.
ISBN 0-471-17910-8. Pp. 326.

Randy J. Hinrichs
INTRANETS: What's the Bottom Line?
Upper Saddle River, NJ: Prentice Hall, 1997.
ISBN 0-13-841198-0. Pp. 424.

Simson Garfinkel with Gene Spafford
Web Security & Commerce
Sebastopol, CA: O'Reilly & Associates, 1997.
ISBN 1-56592-269-7. Pp. 481.

Richard E. Smith
Internet Cryptography
Reading, MA: Addison Wesley, 1997.
ISBN 0-201-92480-3. Pp. 356.

 

?Need help? Use our Contacts page.
First posted: 21st November 1997 efc
Last changed: 21st November 1997 efc
Issue index
;login: index
USENIX home