Python Programming Language
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.
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.
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!
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:
- XBMC, free and open source media player
- Blender, a free and open source 3D animation suite
- Eve Online, a player-driven persistent world MMORPG using only one 'shard' (everyone plays on the same server)
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, ...