The essence of software design is abstraction.
Python is good, but I yearn for the strong-typing of Haskell?