Summary
It shouldn't matter the order in which different threads act on your data, and you should be able to easily add functionality that doesn't affect older parts of your application. Following these FP concepts allows you to build code that can easily be used in multithreaded applications, as well as to build code that can be tested very easily for problems and regression bugs. It also often makes your code much more readable.
Using the core concepts of FP that you've learned about in this chapter—pure functions and immutability—can lead to performance issues in some cases, specifically when modifying large datasets. There are ways to get around these, as we'll explore in later chapters.
Because Java was designed for an OOP approach, it can be a bit daunting to get into FP at first, but if you "go functional" in only certain parts of your code, the transition from OOP may become easier.
In the next chapter, we'll focus on...