Join us on:

T8. Realizing the benefits of Functional Programming in Object Oriented code

Phil Goodwin, Independent Consultant

Phil Goodwin, has spent the majority of the last ten years building back-end server infrastructure, libraries and APIs in environments demanding high levels of reliability and performance such as the J2EE reference platform and Google's AdWords web application. He was specification lead for the SOAP with Attachments API for Java 1.2 JSR maintenance release, and has presented at multiple conferences and trade shows.

In the face of the rising tide of multi-processor systems and the seemingly endless need for increased robustness and scalability in the data center, language designers find themselves turning more and more frequently to the features and disciplines enforced by the Functional Programming paradigm. This tutorial explains Functional Programming using terms and concepts familiar to the Object Oriented developer and puts the benefits of this paradigm in your hands today. You will learn how these concepts are used to simplify concurrency and improve the correctness, reusability and scalability of the projects that use them. The Functional and near Functional features of popular languages will be called out, and the construction of artifacts and patterns that support a Functional style of programming will be demonstrated. Participants will come away with a new perspective on solving programming problems and the foundational elements of a toolset for building solutions that flex and scale in ways that Object Oriented programs usually don't.


Participants will gain an understanding of Functional Language features such as higher order functions, immutable state, closures, continuations, lazy evaluation, and internal iteration. They will learn to recognize opportunities to use these features in order to gain efficiency, reliability, reuse and scalability. Finally they will become familiar with existing language and library features that support a Functional style in popular languages (mostly Java with a little C++, Ruby and Python), as well as learn design patterns that further support a functional style.


This material will be presented as a lecture supported by demonstration via scripted editing sessions and augmented at intervals by slides. A small amount of time will be reserved for audience directed digressions during selected editing sessions.

Audience: Practitioners
Please email any questions to . This e-mail address is being protected from spambots. You need JavaScript enabled to view it