Python is a relatively new, interpreted, object oriented very high level programming language which can be used for a wide range of applications. Python has many advanced features:

Language `comparisons'

Python and Perl

As the main Python namespace is so sparse, users are encouraged to use modules and classes. This way Python beginners will model their programs structuredly from start almost without noticing it. And the way how things work in Python is IMHO very intuitive. Python objects offer same kind of interface for doing similar jobs. Builtin and standard Python operations which modify the `argument' object are normally methods, and other operations are (also available as) functions.

If we compare Python and Perl, two internally very similar languages which also offer about the same functionality, we'll notice that their programming filosofies differ greatly. Whereas Perl concentrates on efficiency, Python tries first to be simple (=elegant) and structured. Neither of them enforces user to that, though.

Making easily maintainable code in Perl needs much stronger coding guide lines and dicipline than in Python, in which that sort of grows out of the nature of the language (orthogonality). Part of Perl's efficiency comes from there being many different ways for making slightly different things, but that way Python progammer and maintainer have to be much more intimate with the Perl language. I personally find the practise of doing different operations for a variable based on how variable is written(!) slightly revolting...

Python and C++

C++ has a lot of baggage from C. It's understandable, but makes the language `un-clean'. Therefore users can more easily make lousy code. Templates try to emulate dynamic binding and Standard Template Library, which is nowadays part of the `standard' C++, offers C++ similar functionality (`containers' and `iterators') as lists and dictionaries offer for Python. Python syntax is just cleaner and simpler to use. For example, Python `for' loops operate over a range like list (`for obj in objects: obj.draw()').

The reasons for using statically bound languages are:

but especially pointer operations are much more prone to errors.

Python is a good candinate for application prototyping. Time-critical parts of the program could be changed into ones compiled with statically bound language as they get ready, until (almost) whole program is done on faster language. Python's extendability (through `C-interface') makes this quite easy. `Cooked up' python with scripts using it should be well suited for inside tools (especially for ones which need to change often) even if that wouldn't be acceptable for a sold product. On a multiplatform enviroment scripts have certain advantages over binaries...

Although dynamically bound languages are normally at least order of a magnitude slower than statically bound ones, one should note that `naive' algorithms may also be an order of magnitude slower than `sophisticated' (= more efficient, not necessarily larger or more complex) ones.

Python and Java

Python could be used for similar things as Java. Python's namespace restriction based security model is much more versatile and IMHO elegant than Java's. And although Java is cleaner than C++, it can't beat Python (Am I biased? That's my right! :-)). Although Python isn't much older than Java, it's available for far more wider range of computers as thread support is optional (actually thread support isn't yet very well integraged into the interpreter). For using Python instead of Java we need `just' to make a Python -> Java bytecode converter / interpreter. For now you could use COM and ILU to `program Java' with Python.

Python projects

Here are all my Python programs. They are in chronological order and first ones are pretty low level for Python programs...

Python on Atari platform

Chris Herborth has ported Python v1.3 for MiNT (available on most Atari ftp-sites like umich). I have myself converted a couple of Python documents to formats better accessable on Atari computers:

Some links grabbed from Python newsgroup which I need to check out:

Here are some of the people on board the Python starship: :-)

Hmm... I wonder whether the amazing tim-petersly-yours is also one of the crew? ;-)

Btw. AFAIK Guido Rossum borrowed the name of the language from `The Monty Python Circus' comedy group name. Although Python logo is now a bespectacled snake, here are interpretions for word `python' listed in the Webster's Encyclopedic Unabridged Dictionary of the English Language:

  1. A spirit or demon or prophesying person possessed by such.
  2. Any of several Old World constrictors of family Boidae.
  3. A large dragon guarding the chasm at Delphi from which the prophetic vapours emerged. (mythological)
I would have liked more of a bespectacled (like Guido) dragon than snake, but I guess that would be harder to put onto script icons... :-)

Python, the language that wraps itself around a problem to squeeze out a solution, swallowing it whole -- Aaron Watters