
On Sat, 28 Apr 2012 15:50:36 -0600
"Nicholas Kormanik"
A bit frustrating that you mention four as candidates: "Groovy, Clojure, Ruby, Python."
I'd not recommend starting with Groovy or Clojure. While Clojure is a great language, the most popular implementation is hooked into the JVM, and you wind up needing to deal with a lot Java infrastructure fairly quickly. Being able to use that infrastructure is a design goal, but adds to the learning curve. I haven't looked into Groovy, but suspect some of the same issues will arise (and hope a Groovy programmer will correct me if I'm wrong). Ruby makes a bad fit if Haskell is a goal (and that's a good goal). Ruby functions aren't first-class objects, and can't simply be passed to other functions as arguments. Last time I looked, there were a half-dozen workarounds for that, none of them really very elegant. That ability is a critical feature in Haskell. Python at least allows it, though it's not as nicely integrated as in Haskell, or even Clojure.
But it sounds like you are leaning toward recommending Python as the best way to start.
Given those for, and that this is a Haskell list, I'd certainly agree
with that.