Showing posts with label other languages. Show all posts
Showing posts with label other languages. Show all posts

Sunday, June 27, 2010

Alternatives to Clojure

Other languages you might consider if Clojure isn't quite right for you:

Lisps:
  • Racket: Learning functional programming in a Lisp (Scheme descendent from the most active Scheme group)
  • Scheme: Some of these compile to C and Gambit has been used on the iPhone
  • Common Lisp: Mature and powerful
  • Arc: Paul Graham and Robert Morris's work towards a 100 year language
MLs:
  • OCaml: Practical, fast, mostly imperative, and strictly typed
  • F#: If you want to do functional programming on the CLR (.NET platform)
On the JVM:
  • Scala: Non-Lispy alternative on the JVM
  • A Common Lisp (ABCL) and a Scheme (Kawa) are available
Concurrent:
  • Erlang: Distributed as well as concurrent
Hard core:
  • Haskell: The purest functional language, lazy by default, increasingly influential
Popular:
  • JavaScript: Very functional under the covers, now appearing on the server-side as well as in web-browsers (node.js), and getting faster all the time thanks to V8
Or not:
  • With knowledge and discipline you can write in a functional style in other languages.  For example: Python (although the lambda is limited),  and increasingly in C# (especially with the addition of LINQ and lambda expressions)