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.

Table 1-1. Python Language Features

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.

Категории