
Concur.next — Messaging - gthank
http://www.tbray.org/ongoing/When/200x/2009/10/26/Messaging
======
megaduck
One of the things I really like about Concur.next, and Tim Bray in general, is
the humility with which he approaches things. He's totally open to the idea
that maybe he's going down the wrong road, and attempts to back up ideas with
quantifiable results.

Too often, programming language discussions devolve into pointless argument
about aesthetics and edge cases. Concur.next seems to cut away a lot of the
wankery to try and see the true strengths and weaknesses of these tools.

For an excellent example, check out the "Wide Finder" series. It's eye-opening
to see how these languages perform under real workhorse conditions.

------
100k
I just spent the weekend messing around with Clojure. The docs aren't great
(mainly due to lack of examples, IMHO) and it's been 10 years since I
seriously programmed in any Lisp so it's been a bit slow going.

But I am in love with the concurrency model. Clojure's software transactional
memory is amazing. It's like garbage collection for concurrency. Instead of
having to remember to synchronize everywhere concurrent access could occur,
you have to start a transaction any time you want to manipulate shared state.

~~~
ikitat
The clojure wiki has examples.

~~~
100k
Yeah, I know that. I had about 40 tabs open with every page I could find. All
I'm saying is that It takes a while to figure out stuff like:

I would like to call toLowerCase on a list of strings. How do I pass an
argument to the function?

(map #(.toLowerCase %) word-list)

It's not exactly obvious without a bit of searching what # and % and . mean
here.

