Heads up... You're reading this book for free, with parts of this chapter shown beyond this point astext.
During his career, Paco has experimented with early prototypes and bleeding edge software, at-scale video services, and a bit of video game development. These days, the challenges he faces revolve around applying functional concepts to improve development experience workflows, learning and efficiency.
Connect with Paco
“Code is not always the hardest part of the job… The primary challenges are still interpersonal relationships, communicating with stakeholders, and gathering information.”
What are the three books that have positively influenced you?
As a kid, I was influenced by Terry Pratchett’s books. My favorite is Night Watch, and you need to have read some of the previous books to get all the references. Generally, Pratchett presents a way of living that was completely different from my life in Spain. A couple of decades later I’m living in London and I have a raison de vivre that is completely different from people in my home country.
You have a great reputation in the functional programming community. For those on the outside, the functional programming world seems like a magical universe. How would you explain functional programming to a developer that doesn’t have any experience with this world?
Functional programming can be thought of in terms of constraints. It’s an approach to programming that is very structured. When learning programming you were told you could do anything you wanted. On the other hand, what functional environments offer is a limited set of approaches to solving a problem, that you have to compose together into a larger solution. Those limitations are actually liberating. Instead of potentially endless options for how to create a program, functional programming, or FP, defines a set of tools that work in combination. Think of FP as more like putting a puzzle together rather than sketching or inventing a world from scratch.
How would you explain the relevance of functional programming to someone developing software to manage a database or an interface? How can they benefit from functional programming?