Python as a statically typed language? Yup, it's possible.
One of the lesser known features that was added in Python 3 was the ability to specify annotations for function arguments and return values. Unfortunately one thing it didn't specify was the form of these annotations.
Recently, JetBrains (the developers of the PyCharm IDE) and Jukka Lehtosalo have been collaborating on a type annotation system that can be used to perform robust static analysis on Python code.
The annotations are very similar to the kind that many developers already do in Python docstrings and can also be used for type hinting (see http://www.jetbrains.com/pycharm/webhelp/type-hinting-in-pycharm.html for a good example). For IDE developers it makes a huge amount of sense - without annotations providing meaningful Intelligent Code Completion (a.k.a IntelliSense) is very hit and miss.
Also take a look at http://blog.pirx.ru/media/files/2013/python-optional-typing/ for a good background into why you would want static typing and some other developments in that area.
One of the lesser known features that was added in Python 3 was the ability to specify annotations for function arguments and return values. Unfortunately one thing it didn't specify was the form of these annotations.
Recently, JetBrains (the developers of the PyCharm IDE) and Jukka Lehtosalo have been collaborating on a type annotation system that can be used to perform robust static analysis on Python code.
The annotations are very similar to the kind that many developers already do in Python docstrings and can also be used for type hinting (see http://www.jetbrains.com/pycharm/webhelp/type-hinting-in-pycharm.html for a good example). For IDE developers it makes a huge amount of sense - without annotations providing meaningful Intelligent Code Completion (a.k.a IntelliSense) is very hit and miss.
Also take a look at http://blog.pirx.ru/media/files/2013/python-optional-typing/ for a good background into why you would want static typing and some other developments in that area.