Vous êtes sur la page 1sur 4

Python

Introduction

Python is an interpreted, object-oriented, high level scripting and programming


language. Python was first introduced in 1991 by Guido van Rossum, a Dutch computer
programmer who wanted to develop a language that could be used by anyone. The main
goal of Python was to reduce the learning curve by choosing a syntax that is
understandable as plain English.

Python has a very simple programming philosophy, "there should be one and
preferably only one obvious way to do it". This is a characteristic that sets Python apart
from its competitors such as Perl. Python rejects exuberant syntax and favors sparse, less
cluttered syntax. Perl on the other hand sees programming as, "there is more than one
way to do it". This is evident in Perl's regular expressions. The numerous backslashes,
quotations and variable notations can give a novice programmer a headache. Perl is still
considered a powerful language; however, the syntax can be cryptic and hard to read.

Python is a multi-paradigm programming language, which allows users to code in


several different programming styles. A programmer can code in a functional, object-
oriented or imperative format.

Python supports cross platform development and is available through open source and
the latest stable release is version 2.5.1.

Uses for Python

Python is an excellent answer to all those who cried out for a more modern version of
Perl. After being introduced to Perl, the advantages become quite obvious; that being it
is easy to code a small program in a short amount of time. After working with a Perl
application for sometime though, like any other language, it starts to look cryptic and
sloppy. Even worse, just like any command line tool a user needs to first understand
which arguments need to be set for the program to run, and then know how to present
them syntactically. A first view of a Python program shows a language that is not only
readable, but read like English. It is easy to see quite quickly that advanced users would
not only be able to pick it up quickly, but even those with little to no programming
experience could as well.

The second great feature of Python besides readability is the integration. Inevitably
with any scripting language, complex operations might have to be made. Python's
answer to this is its ease as an integration tool. The use of Python with SWIG is already
of frequent use in the gaming industry. Starting from the second version of Sid Meier's
Civilization series, Python has been used for scripting in game menu's effectively. In
addition, the building of levels is often used by gaming companies since it is far cleaner
to hard code level design as a series of scripts separate from program code. This has also
allowed for avid users of these games to write their own Python code to create level
designs of their own. The most recent installment of Civilization has API for creating
new scripts online. This creates further replay value for their customers.

Another great use of the integration functionality is it allows companies who have
grown tired of dealing with legacy code to be able to choose new programming languages
without having to throw away old, still functioning code. With easy to read scripts, it
allows for new programmers, coming on board, to not have to read through thousands of
lines of code to get up to speed. This means the learning curve for legacy systems is less
steep, and there is less reliance on having to pore over documents to understand
code. This works great for updating user interface's for new versions of products without
touching back-end code.

The two main flavors of integration for Python is the C/C++ version dubbed CPython,
and the pure integration language JPython or renamed Jython more recently. CPython
does not actually act as a pure integration language. CPython must by integrated using a
tool such as SWIG. Python allows ease of use of complicated C/C++ functions that are
still useful. Well documented functions could be easily called from Python and the
results could be manipulated and presented within the script. Jython is a purely
integrated language where you can interchangeably use Java and Python code inline in
the program. This allows even more readable code by doing basic overhead operations in
Python code, but using Java code when more detail and control is needed.

With a combination of readability and an ability to integrate between languages, it is


easy to see that in addition to scripting, Python would function as an excellent CGI. With
the use of back end functionality being accomplished in C/C++ code, a developer can
maintain readability while performing complex operations at the same time. This also
forces a user to keep user-interface processing and business logic distinctly separate, and
allows the user-interface potion of the program to remain more flexible, since it is often
the UI that will need to be updated over time rather then core application
functionalities. Python makes an excellent language for use in web development.

Advantages/Disadvantages of Python

Python is a language built to exploit the advantages and circumvent the disadvantages
of several programming languages. In order to cerate a language that developers would
be pleased with Python designers implemented popular features from the most popular
programming languages. Some of the advantages Python is well known for include: ease
of learning, portability, dynamic typing and integration with other languages.

Python does not use any syntax whatsoever, instead tabbing and spacing play an
important role in program flow. With the absence of syntax; developers wishing to use
Python need not learn any new rules. Because developers need only understand the
functionality of Python to use it, it is estimated that the development process proceeds 5
to 10 times faster then in other languages such as Java or C/C++. Rapid development
allows Python to be used extensively in throw-away prototyping. Python is also very
robust because of its lack of syntax. Users with little to no experience with Python can
quickly determine program functionality and begin re-factoring code for upgrades or bug
fixes.

With the capabilities of running on most operating system platforms from Windows to
Linux to OS X, Python is a language with very few boundaries. A program written in
Python, for one platform, using only the standard libraries can easily be ported to another
operating system without need for recompiling or repackaging. Python is even capable of
operating on several types of Nokia cell phones.

Python does not enforce a strict type on containers or variables. With this concept,
developers can design a container to hold different types of data (integer, string, float etc.)
A single container for different data types means less memory is used to create distinct
containers for different data types. Along with less memory usage, the user can
implement the same functions on different data types rather then defining a distinct
function for each type.

Since Python implements the advantageous aspects of several languages it is only


natural that it be able to interact with those languages. The integration of Python with
languages such as Java and C/C++ allows Python to remove some stress from the
interpreter. Functions can be written in another language and compiled so that at runtime
they do not need to be interpreted which leads to a quicker and smoother running
program.

Although Python is a very advantageous language it does have some downfalls. One
of the main disadvantages of Python is that it is an interpreted language. Most of
the other disadvantages of Python deal with the personal preferences of developers. The
disadvantages of Python include: language translation, documentation and the use of
modules.

Rather then compiling a Python program and then running it, the program is
interpreted at runtime. Languages such as Java or C/C++ have overhead before the
program begins execution so that programs run much quicker, with a Python program the
interpreter reads the code and determines what to do while the program is executing.
Python adds the overhead on interpretation to the runtime of the program which can lead
to a slower runtime. It is estimated that Python runs 1-5 times slower then Java or C/C++.

Because of its lack of syntax Python is an easy language to program in; however it is
not very simple to translate a Python program into any other language. The translation
from Python to another language would require the user to carefully examine the
structure of the code and make sure to implement the same structure using the syntax of
the new programming language.

Python is a constantly evolving language and thus has a module to integrate it with
almost every new technology. With a constant evolution there is very little concrete
documentation for Python. The official Python documentation consists of two printed
books as well as a tutorial and library reference present in each release. Although there is
very little official documentation the documentation that does exist is of excellent quality.

Python is a very powerful language. Developers are constantly designing new modules
so that Python can use the latest and greatest technologies. A major disadvantage with
these new modules is that if a developer would like to make use of the technology of a
certain module, the module must be imported into the project. The modules are not
always part of the standard release or the standard library of Python.

Python Examples

Python is not widely used for the front-end of applications, but a simple shopping cart
example was created to demonstrate Python's front-end capabilities. This simple
example illustrates several important aspects to Python. The entire stand-alone
application is contained in a file that is only 60 lines long including empty new-lines for
readability. Also the demonstration gives an opportunity to illustrate that indenting in
Python source code is taken into consideration by the interpreter. What is meant by this is
that if single space is added before one line of code in a series of lines, it will report an
error. Enforcing the look of the code and the succinct way in which it is written are both
key features of Python.

Because CMPUT 410 is a web application course, it would be appropriate to find a


Python example that could be applied to concepts covered in class. Python is not
specifically designed for web development, but there is a publicly available framework
that provides web development capabilities. Karrigell provides a Python web server and
several excellent examples that use HTML and Javascript for the front-end and only
Python in the back-end with CGI like behavior. Another example of a calendar is tied in
with a page from Assignment 2 demonstrating how Python is very flexible in its
capabilities, and at the same time showing how it can be tied into work that students are
doing in class.