Hacker News new | ask | show | jobs
by CarlSmotricz 5883 days ago
I second gtani's suggestion of clojure. It's a lisp that takes some of the pain out of lisp by using fewer parentheses where possible, and different kinds of parentheses (round, square and squiggly) so it's a little easier to eyeball where groupings start and end. Also, good support and interconversion of highly useful data types: vector, hashmap and set, among other things.

It's very FP but you can mutate state explicitly if you insist. It runs on the JVM so performance is very good (much faster than Ruby and Groovy) and Java interop is excellent, even better than with Scala. So you have access to the whole wealth of Java library code.

A big advantage is the very strong concurrency support. Laziness and FP give you some multi-core goodness with no effort, and the STM functionality gives you cleaner and more foolproof inter-activity synchronization.

In other words, recommended.

1 comments

Clojure is nice (I have been using it more often for customer work). For me, Clojure still lacks the totally immersive feeling of using (as examples) Gambit-C with Marc Feeley's Emacs support (unbelievably sweet error handling/debugger) or Common Lisp with Slime. Clojure with swank-clojure is nice, but is still running in second place.

All that said, given a free choice, I use Ruby for most tasks.