We have a very good mathematician in our team and, as most mathematicians are, he is a big fan of functional programming. He would definitely prefer us using Haskell or Scala over Python and Java, so he seizes every opportunity to use the few functional programming constructs that exists in Python. But when programmers with non-mathematical background take over development of his code, they have quite some problems understanding generators, yields, lambda expressions and other functional programming constructs in python. I’ve heard myself more than once saying to them to just rewrite the code in the procedural style and not to fight with it anymore.
The point I want to make is that traditional computer science education is still very much about procedural and object-oriented programming, and functional programming is mentioned only in passing. If we want to really benefit from introduction of functional programming paradigms into mainstream programming languages, then we will have to spend more effort on making people understand lambda calculus and other concepts of functional programming, both at the universities to teach new generations and at companies to retrain existing developers.
The recent announcement of clojure-py made some noise in the Clojure community, but not, as far as I can tell, in the Python community.
- Why isn’t Python very good for functional programming? (stackoverflow.com)
- QCon London 2012 Day 3: Trends and Conclusions (restreaming.wordpress.com)
- The practice of functional programming (codility.com)