The Compulsory Features List
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.
Features |
Benefits |
---|---|
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.