Learning Java functional programming

This site is dedicated to bringing my Java (and maybe yours) to the next level.

I believe it’s possible to learn functional programming and express it in pure Java taking inspiration from an existing toolset: Functional Java. This FJ library looks comprehensive to me, I see that people who know how to use it do interesting things with it. I wish there was a true FJ learning kit, but there is NOT.

Learning means understanding to me; it means becoming able to apply new insights and new methods in my everyday work. I don’t feel like learning Haskell or Scala or Erlang so that I can use the new wonderful operator =>:<= that gets the job done for me, provided I change language, career, friends and partner.

Reality is: I work with Java, I understand its syntax and semantics; I don’t see it disappearing from my life next year and that suits me very well. Since 1997 Java has been the vehicle of my personal growth in computer sciences: while using it I’ve learned patterns, I/O, agile, testing, generics; I’ve become a better programmer; I’ve gotten into javascript (just the good parts) by appreciating its differences with Java. I understand that anonymous inner classes are the poor man’s closures but who cares? by using them my programs got leaner and meaner. It’s still plain old Java: my employers won’t say a word about having it into the code base.

Latest news

Spent the evening listening to a great talk by Mario Fusco (http://code.google.com/p/lambdaj) at the Java User Group Milano meeting. Smelled monads in his “fluent interface”, but apparently they weren’t there. Planning to write to him about this blog.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s