GNU Info

Info Node: (python2.1-tut.info)Whetting Your Appetite

(python2.1-tut.info)Whetting Your Appetite


Next: Using the Python Interpreter Prev: Front Matter Up: Top
Enter node , (file) or (file)node

Whetting Your Appetite
**********************

If you ever wrote a large shell script, you probably know this feeling:
you'd love to add yet another feature, but it's already so slow, and so
big, and so complicated; or the feature involves a system call or other
function that is only accessible from C ...Usually the problem at hand
isn't serious enough to warrant rewriting the script in C; perhaps the
problem requires variable-length strings or other data types (like
sorted lists of file names) that are easy in the shell but lots of work
to implement in C, or perhaps you're not sufficiently familiar with C.

Another situation: perhaps you have to work with several C libraries,
and the usual C write/compile/test/re-compile cycle is too slow.  You
need to develop software more quickly.  Possibly perhaps you've written
a program that could use an extension language, and you don't want to
design a language, write and debug an interpreter for it, then tie it
into your application.

In such cases, Python may be just the language for you.  Python is
simple to use, but it is a real programming language, offering much
more structure and support for large programs than the shell has.  On
the other hand, it also offers much more error checking than C, and,
being a _very-high-level language_, it has high-level data types built
in, such as flexible arrays and dictionaries that would cost you days
to implement efficiently in C.  Because of its more general data types
Python is applicable to a much larger problem domain than _Awk_ or even
_Perl_, yet many things are at least as easy in Python as in those
languages.

Python allows you to split up your program in modules that can be
reused in other Python programs.  It comes with a large collection of
standard modules that you can use as the basis of your programs -- or
as examples to start learning to program in Python.  There are also
built-in modules that provide things like file I/O, system calls,
sockets, and even interfaces to GUI toolkits like Tk.

Python is an interpreted language, which can save you considerable time
during program development because no compilation and linking is
necessary.  The interpreter can be used interactively, which makes it
easy to experiment with features of the language, to write throw-away
programs, or to test functions during bottom-up program development.
It is also a handy desk calculator.

Python allows writing very compact and readable programs.  Programs
written in Python are typically much shorter than equivalent C or C++
programs, for several reasons:
   * the high-level data types allow you to express complex operations
     in a single statement;

   * statement grouping is done by indentation instead of begin/end
     brackets;

   * no variable or argument declarations are necessary.

Python is _extensible_: if you know how to program in C it is easy to
add a new built-in function or module to the interpreter, either to
perform critical operations at maximum speed, or to link Python
programs to libraries that may only be available in binary form (such
as a vendor-specific graphics library).  Once you are really hooked,
you can link the Python interpreter into an application written in C
and use it as an extension or command language for that application.

By the way, the language is named after the BBC show "Monty Python's
Flying Circus" and has nothing to do with nasty reptiles.  Making
references to Monty Python skits in documentation is not only allowed,
it is encouraged!

Where From Here

automatically generated by info2www version 1.2.2.9