UnConj
clojure.com
clojure.com
Having Dan and Will around to bounce ideas off at the Clojure/conj was simply incredible. One thing I've disliked about the miniKanren system is that many finite programs do not terminate depending on where the recursion occurs. Dan & Will have been working on that problem for 8 years.
Being the unprincipled fool that I am I decided to tackle this problem head on. Over the past weekend I implemented a version of miniKanren that not only terminates now for an incredible number of programs (it implements fair conjunction), but it does so without sacrificing miniKanren's excellent sequential performance when you so desire it.
So for me, yes modern programs should be written in Lisp. We don't even know what modern programs should look like yet :)
At the moment I use Ruby, which is much less frustrating than clojure ever was. (I seriously love the shit out of rspec).
Last but not least: stacktraces.
This isn't to say I think Ruby is better for all tasks etc, just that it fits where I am right now. Clojure is probably better for people with differing tastes to me.
I jumped on the Ruby ride in mid-2007 and the libraries lacked polish; Rails had performance issues, RSpec its hiccups, and Cucumber was quite a frustrating experience, yet there seemed to be so much potential there that I staid on.
Now Clojure seems to be going through similar evolution. Libraries and frameworks like Enlive, Pinot, and core.logic display immense promise but the full stack feels still a bit wobbly.
But it is as you say; different situations and people need different tools. I still do most of my web dev client work with Ruby but I'm itching to try out Clojure for more complex data processing and, when the libraries mature, full-stack web development.
EDIT: Oh, and I'm with you on the stack traces... Good thing there's an update due in Clojure 1.4.
Instead of concluding that Clojure is not the right language, I'd rather say it is a niche language right now. With great potential to become an awesome mainstream, general purpose technology long-term. After all, it has some features and applications that Ruby will never get.
But is it fair at all to compare two languages with a different paradigm?
Can you elaborate or recommend me some reading that support this point?