In this presentation recorded during QCon London 2008, Simon Peyton-Jones advertises the need for programming purity achieved especially through use of functional languages and the increased attention given to functional programming.
Watch: Taming Effects with Functional Programming (1h)
Jones explains how imperative programming – done in languages like C, C++, Java, C# - is done by a flow of control with many side effects. Those side effects can have unpredictable consequences on a program, and they are pretty difficult to detect and the attempt to remove them may result in more side effects.
Jones advertises the need for functional programming, based on flow of data instead of control, and introduces Haskell as the purest language out there. Functional programming is described by one of the following phrases:
- Same inputs always means same outputs
- Purity
- Referential transparency
- No side effects
- Value oriented programming
Jones presents the symbiosis between imperative languages and functional ones, the former gradually evolving by including the functional programming paradigm, while the later, like Haskell, are using new concepts like the software transactional memory (STM).
The main idea of the presentation is that today there is a lot more focus on functional programming than 10 years ago, and will further increase in the future fueled by the need to control the side effects, especially vital in parallel computation.