Forrester has recently released our take on functional programming (FP), "The New Dawn Of Functional Programming." While FP isn't a new concept, for tech professionals "functional programming" is going to become inescapable over the next 18 months -- that is, if it isn't already on your radar. But FP is a complex concept, even for some rockstar developers. Here's what you need to know about functional programming:
Functional programming is a programming paradigm. In layman's terms, functional programming tells software what to do, compared to procedural programming that tells software how to do something. It's a fundamental shift in how most code today is written; and that requires a new set of skills, programming languages, architectures and philosophical approach to how software should work.
What FP is not: Functional programming shares a word with function-as-a-service (FaaS), but the commonality stops there. You can build a serverless implementation using a functional programming model, but there is nothing about serverless that in itself encourages or requires FP.
Why should I care about FP?
The customer-facing software development world is outgrowing stateful, object-oriented (OO) development. The bar for great, intuitive customer experience has been raised by ambient, conversation-driven user interfaces, like through Amazon Alexa. Functional programming allows enterprises to take better advantage of compute power to deliver those experiences at scale; better flexibility for delivering the right output; and a more efficient way of delivering customer value. FP also reduces regression defects in code, simplifies code creation and maintenance and allows for greater code reuse.
Just as object-oriented programming (OOP) emerged as the solution to the limitations of procedural programming at the dawn of the internet boom in the mid-'90s, FP is emerging as the solution to the limitations of OOP today. The shift is already underway -- 53 percent of global developers reported that at least some teams in their companies are practicing functional programming and are planning to expand their usage.
What should I do next?
Your organization won't go all-in on FP the way many enterprises adopted OOP, and the shift will be neither immediate nor intuitive for OO developers. However, FP will be the foundation of how you build next-generation dynamic and scalable experiences. The barriers to entry for FP are low, so get started now by identifying and leveraging early FP skills you likely already have in-house. Developers familiar with hybrid languages like Scala or using functions in Java 8 already have a base layer for understanding FP. Work with them to continue building on that foundation.
-- By Amanda LeClair, Analyst, and Michael Facemire Vice President, Principal Analyst