by Guido van Rossum - main features: l simple, yet powerful semantics l object-oriented, but multi-paradigm l clean syntax and coherent design l focus on productivity l rich standard library l lots of high quality 3rd-party l several good implementations: CPython, Pypy, IronPython (2.0.1), PyS60, Jython
2000 3.0 – Dec 2008 Latest stable versions: 2.6.1 and 3.0.1 Usable versions: 2.5.x 2.6.x = 2.5 + improvements + 3.0 features (__future__) | | |__ maintenance version | |____ minor version |______ major version
hypothetically speaking, you met someone who told you they had two children, and one of them is a girl. What are the odds that person has a boy and a girl? -Jeff Atwood, December 30, 2008 http://www.codinghorror.com/blog
C” (more than C++/ Java/...), as per ISO C Standard's “rationale”: l trust the programmer l don't prevent the programmer from doing what needs to be done l keep the language small and simple l provide only one way to do an operation l make it fast, even if it's not guaranteed to be portable (the only bit not @100% in Python)
functions, methods, modules, .. l typing: strong, but dynamic - names have no type, objects have types l no “declarations”, just statements - implicit compilation, .pyc files - everything is run-time (compile-time too) l spare syntax, minimal ornamentation - no { } for blocks - no ( ) for conditions - a lot less punctuation
interested in learning everything possible about the American space program, sending all sorts of spies to find every possible piece of information. One afternoon, a breathless spy returned to headquarters with a piece of paper in his hand, excitedly shouting to his superior, "Comrade! Comrade! The Americans are using Lisp to write their rocket launching software!“ The commander was skeptical. "How do you know?" "I broke into their research lab and stole a page from the teletype machine! It's not the whole program, but it's the final page and contains the concluding logic of the program! See for yourself!" The commander looked at the page and smiled:
can generate most of that - code is read a lot more than written l but, your fields are public - Python philosophy l can't we apply this to other languages?
elegance l you don't have to fight the language l the language trusts you l .. it accommodates you l .. and will not go out of it's way to stop you
elegance l you don't have to fight the language l the language trusts you l .. it accommodates you l .. and will not go out of it's way to stop you l good documentation (lots of books) l good support: lots of forums, mailing lists, IRC
elegance l you don't have to fight the language l the language trusts you l .. it accommodates you l .. and will not go out of it's way to stop you l good documentation (lots of books) l good support: lots of forums, IRC, mailing lists l lots of high quality 3rd-party libraries
elegance l you don't have to fight the language l the language trusts you l .. it accommodates you l .. and will not go out of it's way to stop you l good documentation (lots of books) l good support: lots of forums, IRC, mailing lists l lots of high quality 3rd-party libraries l many great web frameworks