4 ms·
I wanted to learn a functional language, because I was frustrated with C, and none of the OO languages I could use at the time (C++, Java or Python. These were
by madhouse 13y ago
I wanted to learn a functional language, because I was frustrated with C, and none of the OO languages I could use at the time (C++, Java or Python. These were the languages used at work, so I was restricted to these) filled me with confidence. So I went looking, found Haskell and the "Learn You a Haskell (for Great good)" book, skimmed through it, loved it, bought it, studied it for months. But I never did anything with Haskell, it's a great language, but I never found a task I could do with it, to experiment and deepen my knowledge.
At the same time, I've always been fond of Lisp (due to Emacs, Sawfish and partly GIMP-Fu I believe), and one day, reading HN, I came across Clojure. A functional Lisp on the JVM, with great interop, and strong support for concurrency. Hell yes! I toyed around with it too, but shelved it soon after, until I found a problem I could solve with it. And solve I did. The sheer beauty of the language still mesmerises me. It's insanely powerful, yet concise and easy to understand.
The thing that got me hooked into Clojure was that I could express myself a lot easier and a lot better with it, than in any other language I worked with before (and I worked with a lot of languages in the past). Everything else (core.logic, core.async, overtone, riemann, pedestal and ClojureScript) is just an added bonus.
- carterschonwald 13y agoI warmly recommend trying out Simon Marlow's book "Parallel and Concurrent Programming in Haskell" http://chimera.labs.oreilly.com/books/1230000000929 http://chimera.labs.oreilly.com/books/1230000000929 I've a number of friends for whom haskell didn't "click" until they read Simon's book. even ignoring the haskell bits, its also a great walk through of different paradigms of concurrent and parallel programming with working code.