Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Nice article!

I have been using Clojure for years, initially because a repetitive customer mandated its use, later for my own projects because it reduced my development time and is fun to code in. I tried Scala (really liked Martin Odersky's Coursera class!) but it did not stick.

That said, Haskell has started to win my mind share. At least for my own projects I have been mostly using Haskell this year, with some bits of Ruby for quick text processing and munging. When my Haskell abilities improve I would like to start using it for small text processing utilities also.

Sometimes Haskell can be as frustrating as hell (yes, cabal, I am thinking of you). It can be frustrating also when writing a bit of useful code took a while because of the never ending (for me) learning curve. However when I am in the flow with Haskell, it feels like my 30+ years of Lisp experiences, but with a stronger language. It has become a cliche about Haskell's type system guiding you away from bugs, but it is true. I never had that feeling with Common Lisp and Scheme (but I have not tried strongly typed Racket yet).



That's a bit of an off-topic but may I ask, why Haskell over Clojure. What are the differences? You partly asked that in the 2nd part, but I would like to know more. I never did any serious FP so would love to know where to start: Scala? Clojure(Script)? Haskell? F#?


Here's an article that was on the frontpage recently; some reflections from a Clojurist that switched to Haskell:

http://bitemyapp.com/posts/2014-04-29-meditations-on-learnin...


I'd start with Haskell or Scheme. They are a lot easier to get started and learn than anything JVM. For Haskell, this course is awesome: http://www.seas.upenn.edu/~cis194/lectures.html

For Scheme, just do the first two chapters of SICP. In fact, do that anyway!


It is mainly the stronger type system. I like the upfront checks. That said, I have used Clojure a lot - a fine language. BTW, I think that learning some Haskell will help with Clojure.


I'm pretty ignorant of both languages (but I have novice experience in both): Moving to Haskell, don't you miss Lisp macros? How do you deal with that?


For the basic "I want a better conditional abstraction", no, I don't miss it. Lazy-by-default Haskell makes that sort of tool even easier to make.

I've also been realizing that a lot of things I would use a macro for in Lisp I can get with monads. Not everything, but so far, I haven't really missed macros much at all. They are both powerful tools for abstraction. I'm starting to think monads are a bit less powerful, but much simpler to get right and maintain long term.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: