[plt-scheme] on which programming languages best to spend your time?

From: Noel Welsh (noelwelsh at gmail.com)
Date: Fri Feb 27 05:03:46 EST 2009

On Thu, Feb 26, 2009 at 8:10 PM, keydana at gmx.de <keydana at gmx.de> wrote:

> So I'm constantly unsure how to employ this time.
> First, it would make sense to constantly proceed with scheme, in order to be
> able to perform real-world tasks with it, and also to some day perhaps be
> able to contribute to a PLT project, which I'd very much like to do.
...
> Second, I wonder if for career reasons I should learn Clojure (I'll
> certainly never find a job where I can use scheme, but who knows what will
> happen with Clojure in the Java world)...

You might be surprised about jobs w/ Scheme.

My opinion is that the big idea in Clojure is concurrency, and I don't
think it is necessary to learn all of Clojure to understand the
concurrency abstractions it provides. However I have not tried
Clojure, so I might be mistaken.

> And third, there's the Haskell temptation...

Haskell is worth learning IMO to 1) see how a lazy language works 2)
get experience with a modern type system 3) get experience with monads
4) understand research papers with examples in Haskell. I found it
very easy to get started with GHC.

You can get some experience of these ideas in PLT Scheme (lazy
language, typed Scheme) but they aren't yet as well developed as
Haskell.

Some people have mentioned Scala. I've just started learning Scala so
I can mess around with Android in a language that isn't Java. Scala is
relatively immature, and I think learning Haskell would teach the same
lessons as Scala (type systems) and more.

Any employer looking for a Scala / Clojure / Erlang programmer would
respect your knowledge of PLT Scheme (or Haskell, or whatever else you
choose). I don't recommend learning things just because you think
they'll be useful for your employment.

HTH,
Noel


Posted on the users mailing list.