Chapter 6. Where to Go From Here

Hopefully I’ve convinced you why functional programming is important for the challenges of our time. We only scratched the surface of this rich field. I hope you’ll continue learning and applying functional programming on your own.

So, where should you go next? I find it easier to learn abstract principles by writing real code. You could start by learning one of the scripting languages on the JVM, such as Groovy, JRuby, or Jython. While none of these languages is a functional language, per se, all have many functional features missing in Java, such as anonymous functions, collections with filter, map, fold, and other higher-order functions. (The names used by these languages may be different.) Along the way, you’ll find these languages useful for general development needs.

However, consider learning a real functional language, where you can see functional programming fully realized. In a few examples in this book we labored to represent some ideas in Java. Functional languages make them much easier to use.

Scala is my personal favorite, because it strives to unify both object-oriented and functional programming. Scala’s object-oriented support will let you continue to use familiar object-oriented concepts while you learn and start using functional concepts. Just be careful to avoid the trap of staying in familiar territory! [Wampler2011] provides a brief overview of the language and its compelling features. [Eckel2011] discusses how Scala has the succinct ...

Get Functional Programming for Java Developers now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.