The Artima Developer Community
Sponsored Link

Python Buzz Forum
Review: Expert Python Programming

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Thomas Guest

Posts: 236
Nickname: tag
Registered: Nov, 2004

Thomas Guest likes dynamic languages.
Review: Expert Python Programming Posted: Apr 16, 2009 12:20 AM
Reply to this message Reply

This post originated from an RSS feed registered with Python Buzz by Thomas Guest.
Original Post: Review: Expert Python Programming
Feed Title: Word Aligned: Category Python
Feed URL: http://feeds.feedburner.com/WordAlignedCategoryPython
Feed Description: Dynamic languages in general. Python in particular. The adventures of a space sensitive programmer.
Latest Python Buzz Posts
Latest Python Buzz Posts by Thomas Guest
Latest Posts From Word Aligned: Category Python

Advertisement

Expert Python Programming cover Tarek Ziadé

If you follow Python blogs you’ll have seen more than one review of Tarek Ziadé’s book, Expert Python Programming. As a result of these reviews I’d decided that, although the book looked interesting, I wouldn’t be investing in a copy for myself; but when the publishers contacted me directly with the offer of a free review copy, I accepted.

You may wonder: Why the need for a book on expert Python programming? Doesn’t Python value simplicity and transparency above all else? (Language lawyers and golfers, look elsewhere!) Why any book on Python, when the online documentation is so well put together?

Yes, that’s what I thought too, but the fact is, Python has steadily expanded over a series of point releases. The standard tutorial omits important new(-ish) features such as decorators and properties, and its treatment of generators and special methods is light. Although the language reference covers these topics, it’s no user guide.

Expert Python Programming starts well, picking up where the Python tutorial leaves off. It soon becomes evident Tarek Ziadé is indeed an expert Python programmer. He walks through some nice real-world examples. He presents guidelines and advanced idioms few Pythonistas would dispute. He points to tools, modules and articles hosted on and away from python.org with accuracy.

Unfortunately the details let the book down. Graphics are poor quality. Some screen shots are barely readable. Here’s a broken code sample — it’s not the only one.

>>> def sum(sequence):   # better !
...     total = 0
...     for arg in args:
...         total += arg
...     return total

(While I’m nit-picking, I wish books didn’t resort to comments for call-out text, and I’d prefer an example which doesn’t shadow a built-in function).

I’m less bothered by the grammatical errors and typos. Tarek Ziadé writes clearly and engagingly. The book is easy to read. That said, I won’t let him get away with this pronouncement on Test-Driven Development (TDD).

[TDD] is widely used in the Python community, and probably more so in communities that work with statically typed languages. This may be due to the fact that developers think that most tests are done by the compiler, which checks many things when it produces a binary.

  1. I’m sure he means “more so than in communities …”.
  2. The negative spin may well irritate some readers unnecessarily.
  3. Which is a shame, since I agree with the point he’s trying to make, that strong testing beats static typing.

Further in, the book covers more general software engineering discipline, with chapters on packaging and distribution, version control, project tracking, documentation, optimisation etc. As ever, Tarek Ziadé provides some welcome pointers to Python best practices, but I see little point in (e.g.) supplying sample Trac configuration file listings — it would be better to direct readers to up to date online documentation.

Once you get beyond the core language, Python becomes a sizable topic. It must have been hard to decide what belongs in a book for expert Python programmers, and what to leave out. I do think there should have been more about Python 3.0. I would also suggest coverage of embedding and extending — of interfacing with other languages.

In summary, then, I enjoyed Expert Python Programming and learned a few things from it. I don’t think I’ll return to it often, but it has provided some useful pointers. With careful editing and design it could have been much better.


At a slight tangent, but still on the topic of expert Python programming, I recommend David M. Beazley’s “A Curious Course on Coroutines and Concurrency”, originally presented at PyCon’09. It sort-of follows on from his equally good “Generator Tricks for Systems Programmers” PyCon’08 presentation but this time he’s pushing rather than pulling.

David Beazley

Dave working on his latest project — “you know, it’s a series of tubes.”

Read: Review: Expert Python Programming

Topic: Review: Expert Python Programming Previous Topic   Next Topic Topic: The other anti-Bush

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use