Java is object oriented and Haskell is functional. How about Python? Is it really OO with free-standing functions and weak encapsulation? Python has lambdas and closures, but is it functional? Are these useful questions?
In the last 10 years a new approach to the study of programming languages has emerged: focus on features, not paradigms. This approach offers more direct, practical advice for programmers learning a new language, taking up coding idioms, and choosing suitable design patterns.
- The problem with programming paradigms, and categories in general
- The language features approach
- Language features and design patterns
- Case study: Strategy pattern with first-class functions
- Conclusion and key take-aways
Author of Fluent Python, published in 9 languages. Co-founder of the Python Brasil Association and of the Garoa Hacker Clube — the first hackerspace in Brazil. PSF Fellow. Principal Consultant at ThoughtWorks.