State can be difficult. Concurrent updates can lead to inconsistency, it can be difficult to scale and have you ever tried testing a component with a random element without having to resort to mocking? Functional purity can help us here. In this talk, we are going to investigate how we can design a pure functional structure that abstracts over state manipulations. We will start with a solution that uses mutable state to solve a problem. Then we will refactor step by step and eventually transform it to pure functional code that never changes state. Familiarity with lambdas is assumed, but no knowledge of functional programming is required. Code examples are in Scala, but no advanced language concepts are used, so knowledge of Java 8 is sufficient. As an audience, I would get a comparative overview of solving a problem in a traditional way with imperative code and with pure functional structures. I would also learn the benefits of purely functional state and its drawbacks.
Remko de Jong
Remko de Jong is an IT enthusiast since (or despite) he met with GW-BASIC when in primary school. Since then he worked professionally with PHP, Java and now Scala. If it is related to IT, technical or methodological, he is interested. He strongly believes in the principles of craftsmanship, the Rhineland model and software quality. Besides that, he believes there are actually three hard problems in Computer Science; the third one being writing bio’s.
Martijn Blankestijn is a consultant with 16 years of experience in Java Development for different enterprises in the Netherlands. Since the beginning of 2015 his primary focus is Scala.