Note that there are some explanatory texts on larger screens.

plurals
  1. POWhat general purpose language should I learn next?
    text
    copied!<p>I'm currently participating in a programming contest (<a href="http://contest.github.com" rel="nofollow noreferrer">http://contest.github.com</a>), which has as goal, to create a recommendation engine. I started coding in <strong>ruby</strong>, but soon realised it wasn't fast enough for the algorithms I had in mind. So I switched to <strong>C</strong>, which is the only non-scripting language I know. It was fast, of course, but I cringed every time I had to write a <code>for</code> loop, to go through the elements of an array (which was very often).</p> <p>That's when it dawned: I wish I knew a fast, yet high-level language, to program all these intensive computations with ease!</p> <p>So I looked at my options, but there are a lot of options these days! Here the best candidates I've found over the months, with something which bothers me about each of them (that hopefully you can clear up):</p> <ul> <li><strong>Clojure</strong>: I'm not sure I want to get into the whole <code>lisp</code> thing, I like my syntax and cruft. I could be convinced, though.</li> <li><strong>Haskell</strong>: Too academic? I don't really care for <em>pure</em> functional, I just want something which works. But it has nice syntax, and I don't mind static typing.</li> <li><strong>Scala</strong>: Weird language. I tried it out but it feels messy/inconsistent to me.</li> <li><strong>OCaml</strong>: Also wondering if this is too academic? The poor concurrency support also bothers me.</li> <li><strong>Arc</strong>: Paul Graham's lisp, too obscure, and again, I'm not sure I want to learn a lisp. But I trust this man!</li> </ul> <p>Any advice? I really like the functional languages, for their ability to manipulate lists with ease, but I'm open to other options too. I'd like something about as fast as Java..</p> <p>The kind of things I want to be able to do with lists are like (ruby): </p> <pre><code>([1, 2, 3, 4] - [2, 3]).map {|i| i * 2 } # which results in [2, 8] </code></pre> <p>I would also prefer an open-source language.</p> <p>Thanks</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload