
Real world Clojure - puredanger
http://tech.puredanger.com/2011/10/20/real-world-clojure/
======
cgag
I saw he mentioned switching to Emacs. Is the emacs - clojure workflow really
as good as it's made out to be, as in good enough to both switching from Vim?
I was planning on getting into Clojure this weekend, and if it's actually
worth doing I suppose I could learn Emacs at the same time, but I've always
been turned off by the weird key chords.

~~~
fpgeek
The last time I used it, SLIME integration for Clojure was very slick. It was
a while back so there were a fair number of moving parts to align, but I'd
guess that has gotten better.

It is worth doing, especially if you've never used another integrated Lisp
environment, but I wouldn't recommend laying it on top of learning Clojure.
I'd say learn Clojure first, then try out emacs and the emacs integration.

~~~
scottjad
Slime and Clojure have improved, mainly through clojure-jack-in and ritz. Of
course the Common Lisp Slime experience is still better but the essentials are
definitely there with Clojure.

There are several heavyweights in the Clojure community that use VIM and have
developed good plugins, and Rich never seems to be using SLIME during
presentations, so you can definitely get by fine without it.

~~~
puredanger
Agreed. There are many ways to fly. I'd say Emacs is well-developed and
probably the most common, but certainly not the only choice.

------
eldina
It would be interesting to see an explicit example of

"In the area of query planning and optimization, I found that at some point I
hit a wall with what I could do in Java. There was latent abstraction that I
understood but could not express in the code."

~~~
puredanger
Unfortunately, this is one of things that I have found very challenging to
convey due to the scope of the code base.

------
afdssfda
"I don’t find that using Clojure making the overall process of writing new
code faster. My thinking/typing ratio is much higher though. I think the
reason is that I have a huge confidence in Java refactoring tools and my
abilities to morph the code towards where it should go. In Clojure, if you
start writing code there is no ceremony and within two minutes you realize
that your first idea was dumb and your data structure should be totally
different and it drives you back into the thinking phase."

I'm not sure that convinces me to try Clojure. To me less typing is great, but
only if it still makes sense and I don't have to come at it a few ways before
I get it right. That is probably why I never took to Perl. It just looks like
garbage and I couldn't get past that.

~~~
technomancy
> I don’t find that using Clojure making the overall process > of writing new
> code faster

He's talking specifically about writing _new_ code. I think the implication
here is that Clojure encourages more consideration up-front, resulting in
designs that are easier to modify down the road.

Given how much time is spent maintaining code vs writing new code this seems
like a reasonable trade-off.

~~~
tom_b
I find that with a REPL in hand, I tend to play with functions while letting
my mind almost drop into the problem space.

So I do less up-front design, but wind-up with somewhat better code at the
end.

The other weird effect is that I find that this helps me think better about
coding in something like C as well. A little experimentation at the REPL helps
me understand pieces of the solution better.

