21.5 Enter Python
If this book has achieved its goals,
you should by now have a good understanding of why Python has been
called a "next-generation scripting language." Compared
with similar tools, it has some critical distinctions that
we're finally in a position to summarize:
- Tcl
-
Like Tcl, Python can be used as an
embedded extension language. Unlike Tcl, Python is also a
full-featured programming language. For many, Python's data
structure tools and support for programming-in-the-large make it
useful in more domains. Tcl demonstrated the utility of integrating
interpreted languages with C modules. Python provides similar
functionality plus a powerful, object-oriented language; it's
not just a command string processor.
- Perl
-
Like Perl, Python can be used for writing
shell tools, making it easy to use system services. Unlike Perl,
Python has a simple, readable syntax and a remarkably coherent
design. For some, this makes Python easier to use and a better choice
for programs that must be reused or maintained by others. Without
question, Perl is a powerful system administration tool. But once we
move beyond processing text and files, Python's features become
attractive.
- Scheme/Lisp
-
Like Scheme (and Lisp), Python supports
dynamic typing, incremental development, and metaprogramming; it
exposes the interpreter's state and supports runtime program
construction. Unlike Lisp, Python has a procedural syntax that is
familiar to users of mainstream languages such as C and Pascal. If
extensions are to be coded by end users, this can be a major
advantage.
- Smalltalk
-
Like Smalltalk, Python supports
object-oriented programming (OOP) in the context of a highly dynamic
language. Unlike Smalltalk, Python doesn't extend the object
system to include fundamental program control flow constructs. Users
need not come to grips with the concept of if
statements as message-receiving objects to use Python -- Python is
more conventional.
- Icon
-
Like Icon, Python supports a variety of
high-level datatypes and operations such as lists, dictionaries, and
slicing. Unlike Icon, Python is fundamentally simple. Programmers
(and end users) don't need to master esoteric concepts such as
backtracking just to get started.
- BASIC
-
Like modern structured BASIC dialects, Python
has an interpretive/interactive nature. Unlike most BASICs, Python
includes standard support for advanced programming features such as
classes, modules, exceptions, high-level datatypes, and general C
integration.
All of these languages (and others) have merit and unique strengths
of their own -- in fact, Python borrowed most of its features from
languages such as these. It's not Python's goal to
replace every other language; different tasks require different
tools, and mixed-language development is one of Python's main
ideas. But Python's blend of advanced programming constructs
and integration tools make it a natural choice for the problem
domains we've talked about in this book.
|