What does it mean to be a functional programmer? Is it using language features, like first-class functions? Is it immutable data? Is it a love of obscure maths? I believe it's none of these. Instead, I believe being a functional programmer means adopting a specific set of values about code, and it's these values that differentiate it from object-oriented and other paradigms.
In this talk I'll explain what I see as the core values of functional programming, and how programming techniques and language features follow from them. We'll see that monads aren't such a big deal when we understand their motivation, and if we squint we can actually see a reflection of object-oriented programming within FP.
Noel started his career using Visual Basic but quickly realised he wasn't cut out for that sort of work. Switching jobs and countries lead him to Java and then functional programming in Racket, O'Caml, Haskell, and most recently Scala. After a detour to study machine learning, Noel returned to industry where he is a founding partner at Underscore. Underscore is a specialist consultancy that help people achieve better results with functional programming, through training, mentoring, and bespoke software development. Underscore's clients are located around the world and range from Fortune 500 corporations to two person startups. Noel is the author of "Scala with Cats", "Creative Scala", and "Essential Scala", and regularly speaks at industry conferences in Europe and the US.
Jemstep is a Silicon Valley-based firm founded in 2008 and acquired in 2016 by Invesco Ltd. Our product is an open investment platform for financial advisors, RIAs, IBDs, banks and insurers. It is built using a functional approach (Scala), by engineering teams in Johannesburg and now other locations around the world.