[FRPythoneers] Book Review

Cary Miller cmiller at math.cudenver.edu
Tue Jun 13 10:10:02 MDT 2000


Book Review
Programming with Python
	    by Tim Altom with Mitch Chapman
	    publisher Prima Tech

The good news is there are now several Python books in print.  The bad
news is this one suffers from some serious shortcomings.


The author takes a very different approach than the standard 'here is
the syntax, here are some examples' kind of book.  I have not heard
anybody say anything good about this book.  For example, Dave Hughes
dismisses it with a paragraph at the end of a review of several Python
books in the May issue of Linux Journal (in the Python supplement).
After spending some time reading it I thought my friends were a bit
too harsh but after trying to run some of the programs on the
accompanying CD I see that they were not harsh enough.


The book and the CD are full of code examples, some written by the
author some written by others.  It is interesting to see the variety
of coding styles.  Some are good, some are quite bad.  Some are just
plain sloppy, for example in the section devoted to mathematical
programs we find a program called 'cross.py' that starts out like
this:

    Note, however, that if what you have is a set of event times, then
    this function is not appropriate.  Instead, one must construct an
    array with a regular time sampling, and fill it with the number of
    events in each time bin.  This can be done automatically with the
    correlateEvents function.

Very sloppy.  Who knows what originally appeared at the top of this
file?  Whatever it was is gone.

The CD is incredibly annoying.  The author says he included the CD so
that people could run the programs.  I tried to run several of the
programs and *NONE* of them worked.  There is a file called '?' that
appears to be a postscript file but it would not open under my
postscript viewer.  In fact the only file that worked was an ASCII
readme that informs the reader that the programs are unaltered from
their original form and that they probably will not work.  The readme
promised to explain how to fix the broken examples but by this time I
was fed up and quit reading.

For anyone who is still curious about the book here is a little bit
about the contents.


Part I is a sort of mini-reference.

Ch 2 contains an alphabetical list of built-in functions and control
statements and has examples.  This is useful though it might be better
to organize by types of command/function rather than alphabetic.

Ch 2 contains a section called 'methods and operations on specific
types'.   This part had some useful examples.

Ch 3 is a list of modules.  Not very useful.  Most of the descriptions
give barely more than the name of the module.  The typographic
conventions become rather annoying in this chapter.  Each module gets
a large, bold subhead and then most get a skimpy, one or two line
description.  Lots of wasted paper.


Ch 4 is a list of Tkinter widgets.



Part II consists of code examples with annotations.

I find this part very interesting.  The examples vary widely in
quality but it is interesting to see how people do real programming.
The examples vary widely in style.  An intermediate programmer, one
who understands the syntax, may find this part useful.  The differing
styles give one a variety of role-models.



A good quote:  ch. 9: servers p.204
Contributor Sam Rushing (who-owns.py): "Strong typing is for weak
minds."



Conclusion:
The book is probably good for a programmer who is beyond the beginner
stage and ready to learn about real programming.  This is not the
book for the beginner or for the very advanced.  It fills a relatively
narrow niche.

That last paragraph was what I wrote before trying to run the programs
on the CD.  The author and the publisher need to give some serious
attention to fixing the programs.  The whole thing has the look of
something that was rushed into print to cash in on the popularity of
Python.  Unfortunately this book will not help to increase the
popularity of Python.  I feel sorry for any newbie who tries to learn
the language from this book.





More information about the FRPythoneers mailing list