Functional programming is a paradigm with origins in lambda calculus and the 1930's. Stack Overflow's developer surveys from both 2017 and 2018 show that the languages optimized for functional programming are low in popularity. However, the same survey recognizes that developers actually working in Elixir, Clojure, F#, and Haskell, actually love their languages much more than PHP or C developers.
So functional programming is unpopular but fun!
The good news is that it can be applied in a popular language like PHP. Whilst the bad news is that PHP might not be 100% optimized for functional programming, we already have pretty nice libraries of functional primitives for PHP. Accepting functional programming style promises to help PHP developers develop a bit cleaner or more interesting code. More importantly, it will make it a whole lot easier to pick up a purely functional language (Hello, Haskell!) or make use of serverless architectures such as AWS Lambda. This session will cover:
- Introduction to lambda calculus with its historical context
- Basic principles of functional programming
- Performance, compared to imperative programming style
- Reusability, compared to object-oriented coding
- Overview of the contributed libraries of functional primitives (e.g. lstrojny/functional-php)
- Combination of object-oriented and functional concepts FTW
- Serverless computing as one of the great applications for the functional programming paradigm
The target audience for the session would be juniors or students interested in learning about the logic behind the decision which approach or language to choose to solve a problem. It would also be informational and fun for experienced PHP developers to join, especially if they consider switching to a functional language for a project.