Facilitating the spread of knowledge and innovation in professional software development



Choose your language

InfoQ Homepage News Haskell the next language for Rubyists?

Haskell the next language for Rubyists?


In his last post, Antonio Cangiano gives his personal definition of evangelism:

Bringing to the attention of other programmers innovations that I find, which can make us more productive or help us produce better software. It's a matter of awareness, there is no intention of pushing anything on anyone.

He explains that finding interesting innovations requires to explore new languages and frameworks and that passion for learning is the only motivation.

Now that Ruby has no secret for him, Antonio Cangiano lists the main criteria for selecting a new language to learn. He argues that only functional languages could meet the new concurrency requirements introduced by multiple core/processor architectures. In passing, he points out that Ruby green threading model cannot leverage such architectures.

If we have 2,4 or 16 cores, we better start thinking about how to develop applications that take full advantage of them. Concurrent and parallel programming can be quite tedious and error prone when adopting languages that are not designed for these requirements. Ruby's current lack of native threads is then particularly unfortunate in these scenarios, as it implies that Ruby will take advantage of a single processor only.

Keeping only Erlang and Haskell on his short list, Antonio Cangiano explains his personal choice for Haskell as a new personal challenge and concludes with a "How to get started with Haskell" section.

We need your feedback

How might we improve InfoQ for you

Thank you for being an InfoQ reader.

Each year, we seek feedback from our readers to help us improve InfoQ. Would you mind spending 2 minutes to share your feedback in our short survey? Your feedback will directly help us continually evolve how we support you.

Take the Survey

Rate this Article


Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Broken link

    by Ricky Clarkson,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Take out the ;jsessionid stuff from the link and it will work.

  • Re: Haskell the next language for Rubyists?

    by Neil Bartlett,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I'm skipping Ruby and going straight to Haskell!

  • Re: Haskell the next language for Rubyists?

    by Michel Löhr,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Well that depends on what you actually want to do!

    For example, if you want to create a web app, then you are still better off with Ruby on Rails (as far as I know Haskell is still lacking such web framework).

    Two other notes:
    1. You can still combine with languages, each for their own strenghts.
    2. Ruby also has functional (lambda) support builtin, so you can use a (limited) functional approach within Ruby.

  • Check out the "rubyonrails" framework for erlang

    by Christian Kvalheim,

    Your message is awaiting moderation. Thank you for participating in the discussion.

  • making these work with Java and .NET is important too

    by alexis richardson,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Hi all, I'd like to submit that there is a healthy middle ground making the best use of all of these. We use Erlang/OTP for concurrency and reliability in our AMQP broker implementation: We offer clients in other languages such as Java. OTP has awesome power as a commercial messaging broker platform, and people can use whatever languages they like to access the messaging infrastructure over AMQP. And, if you want to see Erlang in action, you can examine the broker code too. Please take a look and get involved! The RabbitMQ FAQ has helpful references on all this as well.


Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p


Is your profile up-to-date? Please take a moment to review and update.

Note: If updating/changing your email, a validation request will be sent

Company name:
Company role:
Company size:
You will be sent an email to validate the new email address. This pop-up will close itself in a few moments.