
As software engineers, one of our primary concerns is the maintainability of our code. We all want fewer bugs, better tests, and altogether more comprehensible and predictable software. In other words, we want to hold code complexity at bay. In this workshop, we will explore and apply one of the more powerful tools to achieve these goals: Functional Programming.
We will see how the fundamentals of Functional Programming, the focus on pure functions and the minimization of side-effects, lead to higher quality code that is safer, easier to read, write, test, and refactor. Instead of hiding complexity away behind leaky abstractions, we will remove complexity as we embrace immutability and statelessness. By systematically reducing the amount of “spooky action at a distance” that wreaks havoc in our code, we will end up with software that is more maintainable and fun to work with.
As more and more high-level, modern languages embrace functional features like lambdas and immutable data structures, it has never been easier to apply functional techniques to almost any codebase. Let us kick-start your journey into the adventure that is Functional Programming!