Python reflects a number of growing trends in software development.
It is a very simple language surrounded by a vast library of add-on
modules. It is an open source project, supported by dozens of individuals.
It is an object-oriented language. It is a platform-independent, scripted
language, with complete access to operating system API's.
It supports integration of complex solutions from pre-built components. It
is a dynamic language, allowing more run-time flexibility than statically
compiled languages.
Additionally, Python is a scripting language with full access to
Operating System (OS) services. Consequently, Python can
create high level solutions built up from other complete programs. This
allows someone to integrate applications seamlessly, creating
high-powered, highly-focused meta-applications. This kind of
very-high-level programming (programming in the
large) is often attempted with shell scripting tools. However,
the programming power in most shell script languages is severely limited.
Python is a complete programming language in its own right, allowing a
powerful mixture of existing application programs and unique processing to
be combined.
Python includes the basic text manipulation facilities of Awk or
Perl. It extends these with extensive OS services and
other useful packages. It also includes some additional data types and an
easier-to-read syntax than either of these languages.
Python has several layers of program organization. The Python
package is the broadest organizational unit; it is collection of modules.
The Python module, analogous to the Java package, is the next level of
grouping. A module may have one or more classes and free functions. A
class has a number of static (class-level) variables, instance variables
and methods. We'll lookl at these layers in detail in appropriate
sections.
Some languages (like COBOL) have features that are folded into the
language itself, leading to a complicated mixture of core features,
optional extensions, operating-system features and special-purpose data
structures or algorithms. These poorly designed languages may have
problems with portability. This complexity makes these languages hard to
learn. One hint that a language has too many features is that a language
subset is available. Python suffers from none of these defects: the
language has only 21 statements (of which five are declaratory in nature),
the compiler is simple and portable. This makes the the language is easy
to learn, with no need to create a simplified language subset.