These are all concepts that look useful. The basic criteria for electing a concept to usefulness is: it must have a representation in plain Java.
Each concept has or shall receive its own post, the latter containing the state-of-the-art of my comprehension on each subject.
The list may be updated.
Functional programming in Java: a solution looking for a problem?
Just a little set-aside. By looking around, it is clear that FP in Java had its heyday about three years ago. Lots of expectations and promises. Then it faded. I believe this happened because at the end real-world programmers did not find real added value in the subject: you can avoid nasty side-effects by starting with clear thinking and following up with clean code.
OK, native Java iterators are boring. Today we have the Commons Collections or the Google Collections. Personally I’ve implemented the Block of Bob Di Falco and stuck all the necessary interfaces inside; I carry one class in every project I start and don’t need anything more.
There are countless libraries that implement closures in Java. They may look sexy, but at the end anonymous inner classes do most of the job without creating dependencies. And, as far as I’ve tried, a.i.c. are faster!
I’ve lost count of the pages I visited that explain how good is to be able to bind two functions together. I get to the end, follow the ritual example ending with
Boolean compare(new And(compare(new Gt(),new Integer(10)),compare(new Equal(),new Integer(20))),new Integer(11))
or something like that and I say to myself: so what?