For me (a similarly entrenched OO guy) I found it very challenging. Nothing to do with the syntax, but you are moving from a world of locked up bits of data behind a (hopefully) impenetrable API to a world full of lightweight data with a myriad of tiny functions which pretty much all perform data transformations. "Let your data free!" is the battle cry it seems.
After a number of years people start to become unconsciously competent which is where the pain lives - you need to deconstruct your "intuition" and "gut feel", figure out the decisions you are taking and then challenge them. At least for me I found a lot of the "intuitively good" solutions were actually quite poor when compared to the benefits and freedom FP brings. They were still good solutions/implementations in the locked down Java land, but not over in FP land. This is particularly prevalent because a lot of people don't separate out 'design' and 'implementation'. Does the solution require encapsulation? Yep, but that doesn't mean reaching for a class (or protocols or multi-methods for that matter). And so on. For me, forcing myself to learn Clojure (and Scala before hand) has made me a much better developer in general, even when working on OO implementations. It is worth mentioning that 99% of the battle is changing the way you think, it has little to do with the tools. Go watch every single Rich Hickey video. Go watch them again. Particularly the "simple made easy" and the one where he talks about time. Pick up a really simple 'Clojure syntax' book or tutorial and then read 'Joy of Clojure'. Now read through the core API. You need to internalise that API and the code is pretty idiomatic (arguably by definition given the authors). Keep going though - it really really is worth it. On Friday, 10 January 2014 12:52:53 UTC, christian jacobsen wrote: > > I have +10 years experience of OO programming (C++, C# and a little Java) > and a couple of years of FP programming (mainly F#, some Scala and a little > Haskell). > Are there any resources for learning Clojure that are particular good for > someone with the above background? > -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.