2.2 Why Python Here?
Python's system interfaces span application domains, but for
the next four chapters, most of our examples fall into the category
of system tools -- programs sometimes called
command-line utilities, shell scripts, or some permutation of such
words. Regardless of their title, you are probably familiar with this
sort of script already; they accomplish tasks like processing files
in a directory, launching test scripts, and so on. Such programs
historically have been written in nonportable and syntactically
obscure shell languages such as DOS batch files, csh, and awk.
Even in this relatively simple domain, though, some of Python's
better attributes shine brightly. For instance, Python's ease
of use and extensive built-in library make it simple (and even fun)
to use advanced system tools such as threads, signals, forks,
sockets, and their kin; such tools are much less accessible under the
obscure syntax of shell languages and the slow development cycles of
compiled languages. Python's support for concepts like code
clarity and object-oriented programming also help us write shell
tools that can be read, maintained, and reused. When using Python,
there is no need to start every new script from scratch.
Moreover, we'll find that Python not only includes all the
interfaces we need to write system tools, it also fosters script
portability. By employing Python's
standard library, most system scripts written in Python are
automatically portable to all major platforms. A Python
directory-processing script written in Windows, for instance, can
usually also be run in Linux without changing its source code at
all -- simply copy over the source code. If used well, Python is
the only system scripting tool you need to know.
This chapter and those that follow deal with both the Python language
and its standard library. Although Python itself provides an
easy-to-use scripting language, much of the action in real Python
development involves the vast library of programming tools (some 200
modules at last count) that ship with the Python package. In fact,
the standard libraries are so powerful that it is not uncommon to
hear Python described by the term "batteries
included" -- a phrase generally credited to Frank Stajano,
meaning that most of what you need for real day-to-day work is
already there for the importing.
As we'll see, the standard libraries form much of the challenge
in Python programming. Once you've mastered the core language,
you'll find that most of your time is spent applying the
built-in functions and modules that come with the system. On the
other hand, libraries are where most of the fun happens. In practice,
programs become most interesting when they start using services
external to the language interpreter: networks, files, GUIs,
databases, and so on. All of these are supported in the Python
standard library, a collection of precoded modules written in Python
and C that are installed with the Python interpreter.
Beyond the Python standard library, there is an additional collection
of third-party packages for Python that must be fetched and installed
separately. At this writing, most of these third-party extensions can
be found via searches and links at http://www.python.org, and at the
"Starship" and "Vaults of Parnassus" Python
sites (also reachable from links at http://www.python.org). If you have to do
something special with Python, chances are good that you can find a
free and open source module that will help. Most of the tools
we'll employ in this text are a standard part of Python, but
I'll be careful to point out things that must be installed
separately.
|
|