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