Patrick Prémont, functional programming architect from local consulting firm Tindr, came to speak to my Programming Paradigms class last week. We're currently learning functional programming in Racket, so who better to speak to the class than someone who actually uses the functional paradigm in industry? The theme of Patrick's talk was that functional programming can create very reliable software when you combine the safety of functions without side effects with the compile-time checking of a good type system.
I personally got a lot out of the talk, so hopefully my students did, too. I appreciated hearing that real companies are using functional programming in real applications. I've really enjoyed learning Scheme/Racket as a student, but never really heard of anyone using the paradigm beyond perhaps the ability to create anonymous functions in otherwise imperative or object oriented languages. The pitch about reliability made a lot of sense to me.
Another theme that struck a chord was the focus on using types to make the compiler tell you when you've done something wrong. I've developed my own philosophy of effective programming throughout my (almost) 12 years of experience, and getting the compiler to catch your mistakes is a big part of it. I always try to write code that doesn't assume its user will use it correctly, but instead try to produce an error when it's used incorrectly. I usually think about this from an object-oriented viewpoint, so it was neat to learn how carefully designed types in a functional language can accomplish the same.
Check out the slides above for more details, and share your thoughts on the potential of functional programming when it comes to reliable software!