News for hackers. Stuff that matters.
Re:UnConj by swannodette on Tuesday November 22, 2011 @09:32AM (#3265618)
Just wanted to communicate how amazing it was to have two of the authors of The Reasoned Schemer (Dan Friedman, William Byrd) there this year. At the first Clojure/conj I was opening up its pages for the very first time. To find out that such a powerful computational model can be described in about ~200 lines of Scheme was a shocker. To find out that it is also efficient was just unbelievable. I'd been doing Clojure for two years already I don't think it really hit me what Lisp had to offer until I spent nearly 6 months understanding those mere 200 lines and reimplementing them in Clojure.

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 :)

Re:UnConj by dpritchett on Tuesday November 22, 2011 @12:33PM (#3266426)
So that's where core.logic came from? I just went and bought TRS so that I can figure out where you're coming from with that.
Re:UnConj by swannodette on Tuesday November 22, 2011 @12:35PM (#3266435)
Yes core.logic is an implementation of miniKanren. Soon as Dan Friedman and William Byrd confirm my approach to fair conjunction is solid, I plan on integrating fairKanren to be followed by cKanren which will bring powerful constraint solving facilities into Clojure.
Re:UnConj by cgrand-net on Tuesday November 22, 2011 @01:09PM (#3266593)
Do you mean fair conjunction like in "Backtracking, Interleaving, and Terminating Monad Transformers" or something else/new?
Re:UnConj by swannodette on Tuesday November 22, 2011 @01:32PM (#3266707)
I don't think so though I'm not totally sure. That paper isn't really about logic programming in general - no vars, no unification.
Re:UnConj by cgrand-net on Friday November 25, 2011 @04:34PM (#3278305)
I think you're right and I had the stupids the other day: what this paper describes is simply your conde (né condi). No?
Re:UnConj by t-crayford on Tuesday November 22, 2011 @08:53AM (#3265488)
Super amused to see my work on clojure-refactoring mentioned there. I don't work on that anymore (nor do I think clojure is the right language for me these days).
Re:UnConj by llambda on Tuesday November 22, 2011 @08:58AM (#3265502)
Interesting. What language do you think is the right language, if I may be so bold? :)
Re:UnConj by t-crayford on Tuesday November 22, 2011 @09:04AM (#3265512)
I think clojure is close in some regards, but running on the JVM really hurts me these days (startup time really hurts TDD as I do it). I also think clojure has too much syntax (for a lisp), and am not convinced modern programs should be written in lisp any more (though that's hazy).

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.

Re:UnConj by asmala on Tuesday November 22, 2011 @09:49AM (#3265672)
Did you do Ruby prior to Clojure? It's interesting to see you making the jump to Ruby right as I'm heading down the opposite direction on the Polyglot Interstate.

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.

Re:UnConj by t-crayford on Tuesday November 22, 2011 @10:34AM (#3265861)
I picked up Ruby just after I picked up Clojure (and well after I picked up lisp in general). I still dislike the ruby community's lack of maturity, but seem to be coping better with it these days. #lolbundler & rvm are still terrible compared to lein though, which often frustrates me a lot.
Re:UnConj by _m4 on Tuesday November 22, 2011 @10:12AM (#3265762)
I use Ruby a lot and love it! But one should be fair and take into account that it has had much more time maturing. From what I can tell, it is plateauing right now. On a high level admittedly.

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?

Re:UnConj by pdelgallego on Tuesday November 22, 2011 @09:11AM (#3265537)
>> and am not convinced modern programs should be written in lisp any more (though that's hazy).

Can you elaborate or recommend me some reading that support this point?

Re:UnConj by t-crayford on Tuesday November 22, 2011 @09:22AM (#3265578)
Like I said, I'm hazy on that point, and don't want to say anything further in public right now.
Re:UnConj by fogus on Tuesday November 22, 2011 @09:49AM (#3265670)
Thanks for the update. I've removed mention of your old project.
Re:UnConj by t-crayford on Tuesday November 22, 2011 @10:41AM (#3265894)
Note that https://github.com/joodie/clojure-refactoring is an active fork of clojure-refactoring. Nice to see the project actually going somewhere.
Re:UnConj by spariev on Tuesday November 22, 2011 @10:07AM (#3265739)
Any chance of having recordings of these talks posted online?
Re:UnConj by nickik on Tuesday November 22, 2011 @10:35AM (#3265864)
They will be. Im sure that the will pop up on HN when the are out.
Re:UnConj by Cieplak on Tuesday November 22, 2011 @10:14PM (#3268584)
I'd really like to see a ClojureCLR Swank server for emacs/SLIME.