SPA Conference session: Functional Programming in the Enterprise

One-line description:All organisations should use functional programming
Session format: Case Study [read about the different session types]
Abstract:An opinionated talk about why functional programming is generally good - make that essential - for the enterprise, backed up with a case study on introducing Clojure to an investment bank.

I will cover:

- Problems with OO languages at large institutions.

The inherent complexity of OO that introduces state to stateless applications, made worse by eagerly modelling the problem domain with static types and an evangelical approach to TDD. The waste these problem areas bring.

- What is functional programming and why is it a good fit.

-- Pragmatism
-- concurrency
-- Immutability (less error prone systems)
-- The REPL
--- What is the REPL and how it changes day-to-day development

- Examples and comparisons against the typed OO approach.

-- A simple example to highlight how FP can make for a simpler approach.

-- Mentioning on how all encompassing open-source frameworks aren't needed with dynamic functional languages, because the interfaces to common APIs are just simple data structures. I.e. you don't need a spring to help you with the complex hibernate type system.

- An honest case study of introducing Clojure to an investment bank

The successes and failures of trying to rewrite a chunk of a large monolithic Java application with Clojure, what learnings have been made and how we would do it differently again.

The impact on the team, morale and the organisation. How we jettisoned certain Agile practices in favour of general anarchy and had to relearn them.

During the talk I may do simple live coding exercise to highlight using functional programming in the REPL. The example I have in mind is to pull back some data from Guardian restful open APIs and to walk some of the articles. This section would likely be 20 mins.
Audience background:I assume the audience will be made mostly out of developers who have seen Java production systems at large.
Benefits of participating:People will learn how some facets of both how to and how not to introduce a paradigm shift in programming at a large institution.
Materials provided:Slides.
Process:It's a case study - I present to the audience then get some questions.
Detailed timetable:40% talk about FP, OO in the enterprise, 40% case study, 20% live coding in the REPL.
History:I performed a similar talk at EuroClojure with Hakan Raberg. I would intend to do this one solo.
1. Jon Pither
2. 3.