Overview
Explore insights from Erlang and Haskell for building reliable, high-concurrency services in this 41-minute keynote from EuroPython 2014. Delve into functional programming techniques that can enhance performance, robustness, and conciseness in Python development. Examine the challenges of building high-concurrency services, drawing from experiences with Twisted and the transition to Erlang and Haskell. Discover how functional programming concepts can solve problems more effectively than standard Python practices. Investigate potential evolutionary paths for the Python language and its ecosystem to incorporate these beneficial aspects. Compare correctness checks, refactoring challenges, and tool effectiveness across Python, Erlang, and Haskell. Analyze the impact of mutability, explore Algebraic Data Types, and consider their implementation in Python. Evaluate the trade-offs between abstraction and performance, and examine concurrency handling in different languages. Gain valuable insights for improving Python development practices and expanding your programming paradigm knowledge.
Syllabus
next What can python learn from Haskell?
Haskell is not all good!
Ignorance is bliss
Python makes [...] hard
Correctness
Python nonsense
Let's see what Python thinks
pyflakes to the rescue?
What about Pylint?
Do better tools exist?
Erlang dialyzer nonsense
Haskell nonsense
No instance for... WTF?
Why is refactoring hard?
Solution: mypy?
Modest mypy proposal
So what?
Why is mutability wrong?
Can we even fix this?
Expensive Abstractions
Algebraic Data Types
ADT in Haskell
Wrapping can be free
Performance?
Concurrency?
Summary
Taught by
EuroPython Conference