On Tue, Sep 02, 2008 at 10:14:42AM -0700, [EMAIL PROTECTED] wrote:

With multi-core stuff continuiong to get hotter learning a parallel
programming language seems like a good idea. I still haven't decided
between Erlang and Haskell and Scheme and Common Lisp are still on my
to-learn list as well. I'll probably end up learning all of them to some
small degree and then going from there.

My personal advice, at least as someone who's put the effort into
learning all of those languages:

  - Start with Erlang.  It's a lot easier to learn, and will get you
    used to the functional non-mutating programming paradigm without
    spending your time fighting with the type system, or with
    laziness.

  - Then spend time learning Haskell.  I don't think Haskell is a
    practical language, but I think it is an important language to
    learn.  It demonstrates where the language goes when "purity"
    rather than usefulness is the driving force.  Haskell also has a
    lot of layers and, for example, can be quite useful without
    learning how to create your own Monads.

  - Scheme and Common Lisp are similar enough to make learning both a
    possibility, and different enough to make that an annoying
    prospect.  There are some fairly good Scheme implementations out
    there, and some have decent libraries.  There are also some good
    common lisp libraries.  Common lisp has the advantage of a large
    enough language being standard that it is possible to write
    reasonable amounts of code that is portable.

    I also personally feel that call-with-current-continuation in
    Scheme is an important construct to understand--especially to
    understand why it pervasively destroys the practicality of the
    language (it makes try-finally impossible to do, being the biggest
    example).

David

--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg

Reply via email to