Functional programming makes it easier to write concurrent, testable and expressive code. Even if you’re working in the object-oriented or imperative paradigm, you can benefit a lot by learning functional programming.
For me, programming in functional languages greatly impacted how I write object-oriented and imperative code, and how I think about problems. My code is better structured, clearer and easier to reason about.
As a completely different paradigm, FP teaches you new ways to think. It helps appreciate benefits of immutability, lack of side effects and decomposition. You get used to expressing desired outcome of code, instead of steps to achieving a goal. This perspective is invaluable in traditional paradigms. And you may as well end up deciding that functional approach is the best fit for your next project.
If you haven’t tried FP yet, you’ll see how you can become a better engineer by learning it. If you have, you’ll get ideas how to encourage developers in your team to benefit from learning functional programming.
Talk by John Hughes and Mary Sheeran
Legendary paper by John Hughes