InfoQ

News

Haskell the next language for Rubyists?

Posted by Alexis Midon on Mar 16, 2007 05:00 AM

Community
Ruby
Topics
Dynamic Languages
Tags
Erlang,
Haskell,
Languages

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.

6 comments

Reply

Broken link by Ricky Clarkson Posted Mar 16, 2007 8:08 AM
Re: Haskell the next language for Rubyists? by Neil Bartlett Posted Mar 19, 2007 3:38 AM
Re: Haskell the next language for Rubyists? by Michel Löhr Posted Mar 19, 2007 4:16 AM
Check out the "rubyonrails" framework for erlang by Christian Kvalheim Posted Mar 19, 2007 3:01 PM
making these work with Java and .NET is important too by alexis richardson Posted Mar 20, 2007 11:06 AM
Re: making these work with Java and .NET is important too by berkay NiQuiL Posted Jun 30, 2008 5:58 PM
  1. Back to top

    Broken link

    Mar 16, 2007 8:08 AM by Ricky Clarkson

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

  2. Back to top

    Re: Haskell the next language for Rubyists?

    Mar 19, 2007 3:38 AM by Neil Bartlett

    I'm skipping Ruby and going straight to Haskell!

  3. Back to top

    Re: Haskell the next language for Rubyists?

    Mar 19, 2007 4:16 AM by Michel Löhr

    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.

  4. Back to top

    Check out the "rubyonrails" framework for erlang

    Mar 19, 2007 3:01 PM by Christian Kvalheim

    http://erlyweb.org/

  5. Back to top

    making these work with Java and .NET is important too

    Mar 20, 2007 11:06 AM by alexis richardson

    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: www.rabbitmq.com. 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. alexis

Exclusive Content

Rationalizing the Presentation Tier

Thin client paradigm characterized by web applications is a kludge that needs to be repudiated. Old compromises are no longer needed and it's time to move the presentation tier to where it belongs.

Agile Project Management: Lessons Learned at Google

In this presentation filmed during QCon 2007, Jeff Sutherland, the creator of Scrum, talks about his visit at Google to do an analysis of Google's first implementation of Scrum.

AtomServer – The Power of Publishing for Data Distribution

In this article, Bryon Jacob and Chris Berry introduce AtomServer, their implementation of a full-fledged Atom Store based on Apache Abdera, which is now available as open source.

An Introduction to Virtualization

It is easy to think that virtualization applies only to servers. In reality the recent resurgence of the concept is also being applied to networking, storage, and application infrastructure.

REST Anti-Patterns

In this article, Stefan Tilkov explains some of the most common anti-patterns found in applications that claim to follow a "RESTful" design and suggests ways to avoid them.

Choosing between Routing and Orchestration in an ESB

In this article, Adrien Louis and Marc Dutoo discuss the differences and relative merits of using orchestration vs. routing in a typical ESB setup, and discuss various implementation options.

Enterprise Batch Processing with Spring

Wayne Lund discusses batch processing, Spring Batch objectives and features, scenarios for usage, Spring Batch architecture, scaling, example code, failures and retrying, and the future roadmap.

User Story Estimation Techniques

Developer Jay Fields draws on his experiences as a ThoughtWorks consultant to describe effective user story estimation techniques.