One way to describe a language is by listing its features. Of course,
this will be more meaningful after you've seen Python in
action; the best I can do now is speak in the abstract. And
it's really how Python's features work together, that
make it what it is. But looking at some of Python's attributes
may help define it; Table 1-1 lists some of the
common reasons cited for Python's appeal.
Table 1-1. Python Language Features
No compile or link steps
|
Rapid development cycle turnaround
|
No type declarations
|
Simpler, shorter, and more flexible programs
|
Automatic memory management
|
Garbage collection avoids bookkeeping code
|
High-level datatypes and operations
|
Fast development using built-in object types
|
Object-oriented programming
|
Code reuse, C++, Java, and COM integration
|
Embedding and extending in C
|
Optimization, customization, system "glue"
|
Classes, modules, exceptions
|
Modular "programming-in-the-large" support
|
A simple, clear syntax and design
|
Readability, maintainability, ease of learning
|
Dynamic loading of C modules
|
Simplified extensions, smaller binary files
|
Dynamic reloading of Python modules
|
Programs can be modified without stopping
|
Universal "first-class" object model
|
Fewer restrictions and special-case rules
|
Runtime program construction
|
Handles unforeseen needs, end-user coding
|
Interactive, dynamic nature
|
Incremental development and testing
|
Access to interpreter information
|
Metaprogramming, introspective objects
|
Wide interpreter portability
|
Cross-platform programming without ports
|
Compilation to portable bytecode
|
Execution speed, protecting source code
|
Standard portable GUI framework
|
Tkinter scripts run on X, Windows, and Macs
|
Standard Internet protocol support
|
Easy access to email, FTP, HTTP, CGI, etc.
|
Standard portable system calls
|
Platform-neutral system scripting
|
Built-in and third-party libraries
|
Vast collection of precoded software components
|
True open source software
|
May be freely embedded and shipped
|
To be fair, Python is really a conglomeration of features borrowed
from other languages. It includes elements taken from C, C++,
Modula-3, ABC, Icon, and others. For instance, Python's modules
came from Modula, and its slicing operation from Icon (as far as
anyone can seem to remember, at least). And because of Guido's
background, Python borrows many of ABC's ideas, but adds
practical features of its own, such as support for C-coded
extensions.