Python

Python is probably one of the few programming languages which is both simple and powerful. This makes it good for both beginners as well as experts, and more importantly, is fun to program with.

Python is one of those rare languages which can claim to be both simple and powerful. Those who use Python are pleasantly surprised on how easy it is to concentrate on the solution to the problem rather than the syntax and structure of the language you are programming in. The official introduction to Python is:

''Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming. Python's elegant syntax and dynamic typing, together with its interpreted nature, make it an ideal language for scripting and rapid application development in many areas on most platforms.''

Naming Python
Guido van Rossum, the creator of the Python language, named the language after the BBC show "Monty Python's Flying Circus ".

Simple
Python is a simple and minimalistic language. Reading a good Python program feels almost like reading English, although very strict English! This pseudo-code nature of Python is one of its greatest strengths. It allows programmers to concentrate on the solution to the problem rather than the language itself.

Easy to Learn
For people with some prior programming experience, Python is extremely easy to get started with due to its extraordinarily simple syntax, as already mentioned.

Free and Open Source
Python is an example of a FLOSS (Free/LibrÃÂ© and Open Source Software). In other words, a user can freely distribute copies of Python, read it's source code, make changes to it, and use pieces of it in their own programs. FLOSS was created based on the concept of a community of people that comes together to share knowledge. This is one of the reasons why Python is so good - it has been created and is constantly improved by a community who just want to see a better Python.

High-level Language
When a person writes a program in Python, they are not required to manage low-level details such as managing the memory used by a program, etc.

Portable
Due to its open-source nature, Python has been ported to many platforms. Python programs can work on any of these platforms without requiring any changes at all as long as they do not require any system-dependent features.

Currently, Python runs on Linux, Windows, FreeBSD, Macintosh, Solaris, OS/2, Amiga, AROS, AS/400, BeOS, OS/390, z/OS, Palm OS, QNX, VMS, Psion, Acorn RISC OS, VxWorks, PlayStation, Sharp Zaurus, Windows CE and PocketPC.

Interpreted
A traditional program written in a compiled language like C or C++ is converted from the source language i.e. C or C++ into binary code (0s and 1s) using a compiler with various flags and options. When a person runs a program, the linker/loader software copies the program from the hard disk to the memory and starts running it. Python, on the other hand, does not need compilation to binary. It is simply run directly from the source code. It does this by internally converting the source code into an intermediate form called bytecodes and then translates this into the native language of your computer. This makes using Python much easier since programmers do not have to worry about compiling the program and no longer have to ensure that the proper libraries are linked and loaded. Another benefit of this is that it makes Python programs much more portable and easy to transfer to another computer since the program is almost guaranteed to work the same on any machine.

Object Oriented
Python supports procedure-oriented programming as well as object-oriented programming. In procedure-oriented languages, the program is built around procedures or functions which are nothing but reusable pieces of programs. In object-oriented languages, the program is built around objects which combine data and functionality. Python has a very powerful but simplistic way of doing OOP, especially when compared to big languages like C++ or Java.

Extensible
If you need a critical piece of code to run very fast or want to have some piece of algorithm not to be open, you can code that part of your program in C or C++ and then use them from your Python program.

Embeddable
Python can be embedded within C/C++ programs to give 'scripting' capabilities for a program's users.

Extensive Libraries
The Python Standard Library is huge indeed. It assists programmers when it comes to managing various things, such as regular expressions, documentation generation, unit testing, threading, databases, web browsers, CGI, ftp, email, XML, XML-RPC, HTML, WAV files, cryptography, GUI (graphical user interfaces), Tk, and more. And this is always available wherever Python is installed because of Python's 'Batteries Included' philosophy. Besides the standard library, there are various other high-quality libraries such as wxPython, Twisted, Python Imaging Library and many more.

Resources

 * Python hello world tutorial
 * Python DLL
 * Python home page