Software development today is embracing functional programming (FP), whether it's for writing concurrent programs or for managing Big Data. Where does that leave Java developers? This concise book offers a pragmatic, approachable introduction to FP for Java developers or anyone who uses an object-oriented language.
Dean Wampler, Java expert and author of Programming Scala (O'Reilly), shows you how to apply FP principles such as immutability, avoidance of side-effects, and higher-order functions to your Java code. Each chapter provides exercises to help you practice what you've learned. Once you grasp the benefits of functional programming, you’ll discover that it improves all of the code you write.
Learn basic FP principles and apply them to object-oriented programming
Discover how FP is more concise and modular than OOP
Get useful FP lessons for your Java type design—such as avoiding nulls
Design data structures and algorithms using functional programming principles
Write concurrent programs using the Actor model and software transactional memory
Use functional libraries and frameworks for Java—and learn where to go next to deepen your functional programming skills
Chapter 1 Why Functional Programming?
I Have to Be Good at Writing Concurrent Programs
Most Programs Are Just Data Management Problems
Functional Programming Is More Modular
I Have to Work Faster and Faster
Functional Programming Is a Return to Simplicity
Chapter 2 What Is Functional Programming?
The Basic Principles of Functional Programming
Designing Types
Exercises
Chapter 3 Data Structures and Algorithms
Lists
Maps
Combinator Functions: The Collection Power Tools
Persistent Data Structures
Some Final Thoughts on Data Structures and Algorithms
Dean Wampler is a Principal Consultant at Think Big Analytics, where he specializes in "Big Data" problems and tools like Hadoop and Machine Learning. Besides Big Data, he specializes in Scala, the JVM ecosystem, JavaScript, Ruby, functional and object-oriented programming, and Agile methods. Dean is a frequent speaker at industry and academic conferences on these topics. He has a Ph.D. in Physics from the University of Washington.
Comments about O'Reilly Media Functional Programming for Java Developers:
Functional Programming is back! After 2-3 decades of Object Oriented Programming which made languages like Lisp seem like a dinosaur, the software community has turned its focus back on FP. And with good reason! OOP has fallen short of the demands of concurrent programming leading to convoluted code that only a few experts can read and write. New FP languages today like Scala or Clojure address this issue by providing a robust language that can run on the good old reliable JVM. That way you don't need a huge change in your infrastructure - just add a few jars and you are ready to dive in. This book will teach you how.
If you have been wondering about Software Transactional Memory, The Actor Model, MapReduce, and other buzz words that have been going around lately, its time to pick this book. The author does a fine job of explaining what FP is, what it aims to solve, when to use it, and how to get started with it. The author explains very well the differences between imperative (OOP) and declarative (FP) programming.
This book is a brief introductory book that scratches the FP arena. By no means there is any depth provided. Developers looking for developing expertise in a particular FP language have to look elsewhere but might benefit from reading this book to get a good overview.
8/7/2011
4.0
Get Started with FP.
By Rob
from Brisbane, Australia
About Me Developer
Pros
Accurate
Concise
Easy to understand
Helpful examples
Well-written
Cons
Best Uses
Intermediate
Novice
Comments about O'Reilly Media Functional Programming for Java Developers:
It was with eagerness and anticipation that I picked up a copy of "Functional Programming for Java Developers". I'd heard about it on twitter, and conversations with my resident functional guru (Tony Morris) got me excited about the potential for this book.
In the end it made for a quick read. Having spent many hours working through functional exercises with Tony meant that I'd already been introduced to the majority of the ideas covered in the book, and so I fell outside the main target audience of java developers who haven't done functional programming, but are interested. I'd definitely recommend this book to anyone who hasn't done functional programming, and is interested, but not to people who've already had exposure.
As the target audience for the book is for that group of people, I think it gets it spot on, and anyone in that group should grab a copy. The coverage of functional programming using Java is good, and the bibliography and list of next steps is great. I've marked this book for intermediate/novices. It's actually for decent Java Developers, but novices to the Functional Programming ideas.
8/2/2011
5.0
must read for fp learners
By SaadSqrs
from Dallas,TX
About Me Developer
Pros
Accurate
Concise
Easy to understand
Helpful examples
Well-written
Cons
Best Uses
Intermediate
Novice
Student
Comments about O'Reilly Media Functional Programming for Java Developers:
Explains the functional programming concepts well, although examples are in java, non-java developers should have no problem following along. Best part is that it is concise and short I think will read it again. This should be a must read before you start to learn a functional language such as scala.