Python Programming Language


History

Python is a programming language that dates to back to the late 1980s. It's implementation was started in December 1989 by Guido van Rossum at CWI in the Netherlands.

About Python

Python is Open Source, which means that its interpreter and extensive standard library (and thousands of community-built packages) are completely free and can be used in both binary and source form.

 

I wrote 20 short programs in Python yesterday. It was wonderful. Perl, I'm leaving you. Source: XKCD

Python supports multiple programming paradigms such as object-oriented, imperative, functional programming or procedural styles. It features a dynamic type system and automatic memory management.

Python is powerful and fast, plays well with others, runs everywhere, is friendly and easy to learn, is Open Source.

All in all, this allows you to pick it up, learn and develop quickly, with a significantly shorter iteration cycle than many other major programming languages. Add the fact that most Python programmers use a specific style guide (pep8) and even new developers can very easily integrate in the team and start helping out, which is great for any Open Source project.

Philosophy

Python's design philosophy emphasises code readability and clarity. The syntax allows programmers to express concepts easily and with fewer lines of code than would be possible in other 'big' languages such as C or Java.

Tim Peters, a long time Python user who became one of its most prolific and tenacious core developers, attempted to capture the then unstated design principles in what he called The Zen of Python. It has since then been included inside each Python release as an Easter egg and is quoted below in it's entirety.

The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

Python implementations

Many people use Python for their work or as a hobby. What many people do not realise however, is that Python comes with many different implementations. Without going into too many details, let's just say that the most common Python implementation is called CPython and is written in C, but there are various other implementations built with different languages and on top of different virtual machines, such as Jython (using Java and JVM), IronPython (using C# and CLR), RubyPython (using Ruby and Ruby VM), Brython (using JavaScript and Javascript engine) and many more.

For a better explanation you can look at this blog post and this more complete list.

Who uses Python?

Python is now used practically anywhere. People use it to learn programming, for web development, it is used more and more in science, computer simulations, ... Since Python is so flexible, it can be (and more or less is) used practically anywhere.

To list just a few examples of projects using Python:

  1. XBMC, free and open source media player
  2. Dropbox
  3. Blender, a free and open source 3D animation suite
  4. Eve Online, a player-driven persistent world MMORPG using only one 'shard' (everyone plays on the same server)
  5. YouTube

These are just some specific examples which use Python pretty heavily, but Python can also be found in many other big projects such as PayPal, Instagram, Google search engine, eBay, ...