Why This Edition?
One consequence of the growing popularity of Python has been an
influx of new users, programming styles, and applications, all of
which have conspired to make parts of the first edition of this book
prime for updates. Python itself has changed in smaller ways, but
important extensions have simplified various aspects of Python
development and merit new coverage.
Perhaps most relevant for this edition is that the Python
"audience" has changed. Over the last five years, Python
has transitioned from an emerging language of interest primarily to
pioneers to a widely accepted tool used by programmers for day-to-day
development tasks. This edition has been refocused for this new
Python audience. You will find that it is now more of a
nuts-and-bolts text, geared less toward introducing and popularizing
the language than to showing how to apply it for realistically scaled
programming tasks.
Because of the breadth of change, this edition is something of an
entirely new book. To readers who enjoyed the first edition, I would
like to express my gratitude, and I hope you will find the same
spirit in this second edition. Although this is a major rewrite, I
have tried to retain as much of the original book's material
and flavor as possible (especially the jokes :-).
Since writing the first edition five years ago, I have also had the
opportunity to teach Python classes in the U.S. and abroad, and some
of the new examples reflect feedback garnered from these training
sessions. The new application domain examples reflect common
interests and queries of both myself and my students. Teaching Python
to workers in the trenches, many of whom are now
compelled to use Python on the job, also
inspired a new level of practicality that you will notice in this
edition's examples and topics.
Other new examples are simply the result of my having fun programming
Python. Yes, fun; I firmly believe that one of Python's
greatest intangible assets is its ability both to kindle the
excitement of programming among newcomers, and to rekindle the
excitement among those who have toiled for years with more demanding
tools. As we will see in this edition, Python makes it incredibly
easy to play with advanced but practical tools such as threads,
sockets, GUIs, web sites, and OOP -- areas that can be both
tedious and daunting in traditional compiled languages like C and
C++.
Frankly, even after eight years as a bona fide
Pythonista, I still
find programming most enjoyable when it is done in Python. Python is
a wildly productive language, and witnessing its application
first-hand is an aesthetic delight. I hope this edition, as much as
the first, will demonstrate how to reap Python's productivity
benefits and communicate some of the satisfaction and excitement
found in a rapid-development tool such as Python.
|