My favourite FP language is Haskell, but I doubt most "code
monkeys"
will ever be able to grasp it, while impure ones are more
approachable
in enterprise environments.

The issues you point out are actually more implementation
issues than language related, right?

--
Paulo

On Tuesday, 10 April 2012 at 17:19:00 UTC, Russel Winder wrote:
Two quite interesting points to make here:

1. OCaml has a GIL and so, like CPython (*), is forced to use operating system processes to obtain parallelism. Also OCaml has imperative features, it is not a pure functional language. Clojure followed this
route as well, using STM to deal with locking issues.

2. Haskell is a lazy language which means:
        a. it can work with infinite data structures; and
        b. it is incredibly difficult to create parallel codes.

Simon Peyton Jones and Simon Marlow have had to do a great deal of very clever work to make Data Parallel Haskell, but it is to Haskell what
NumPy is to Python.

I am a fan of declarative expression, I prefer functional approaches over explicitly imperative ones. For the moment though using single
assignment in imperative languages with all the lambda/closure
technology and using functional programming thinking is the best
compromise. OCaml (and its clone F#) and Haskell are likely to remain
tiny bit part players for a long while.

On the JVM the interesting question is whether Clojure finally makes
Lisp a mainstream language outside of one or two domains.


(*) PyPy is experimenting with STM to replace use of a GIL.


Reply via email to