Python is a very popular language that has been around for a long time. It has an open government with a free license and is freely available on most platforms out there. The language it self is dynamic and interpreted. It compiles it's script to an internal byte code before running. This byte code is stored in files called .pyc or .pyo and gives the language a rather fast execution to be a dynamic interpreted language. For string handling and web it is ideal and one of the reason that DG3 applications are generated in Python. 

At the moment Python comes in two flavors, the 2.x and 3.x branch. Both officially supported and active developed. These have a few differences that are not backward compatible due to a decision to scrap a few old mistakes done in the early days of creating the anguage. Most of this has to do with string and unicode and the internal object model. The 3.x is unicode only, but 2.x is still both narrow and wide strings. Due to this, DG3 is still running the 2.x branch of Python like most other major projects. We will migrate to 3.x as soon as all our dependent libraries are compatible and actively used in 3.x.

One other thing that is unusual with Python is that it's indentation means something and is used to describe blocks of code. Instead of the curly braces ({}) of C+, C++, C#, Java and Javascript or the endif and end of other languages, python simply used the indentation to know what is in what block. It also is a language where you have to decalre your intentions of what to use by importing it before use. This makes most python programs easy to follow and pretty to look at. There is no automagically execution of code. All that id done has been pulled int at some point. The language also have a rich standard library an thus the motto with batteries include. It it's not in the standard library almost always will find a library doing what you need to get done. In DG3, we add most of these extra libraries you need as well as long they have licenses that allows us to do so. If not, you can always add them your self.