I do Haskell in my spare time too. Once you’re used to FP, going back to imperative languages feel like a terrible regression.
I do Haskell in my spare time too. Once you’re used to FP, going back to imperative languages feel like a terrible regression.
Of course, Common Lisp spoiled me beyond words. I've tried OCaml the other day. It might be a good language, but I can't seem to make it integrate nicely with the Emacs workflow that I was used to from Common Lisp. You need ;; at the end of your expression when in the REPL, but not when building a standalone app in OCaml. When compiling it's considered bad practice to put ;; But without it, the REPL doesn't know where the expression ends. Or something like that, anyway.
Same story with Prolog. It might be a good language, but there are all sorts of special cases and exceptions when working with it interactively. I've gotten so much used to working interactively, to have a live, one-on-one honest conversation with my language and environment that languages without it seem brain-dead somehow.
I agree with your "terrible regression" comment.
I think Tuareg-mode also makes the OCaml part a lot less painful. It's a bit unfair to compare Lisp used with tight Emacs integration to OCaml used seemingly without the corresponding integration.
You still can't compare to the SLIME experience for CL of course, though tools like Utop are nice. That and a few other add-ons try to fill some gaps.
I don't know if I could ever going back to an imperative language full-time, I think I'd feel very hampered.