I only know about that book because of Rich's mentions of it.
To be honest, I"m also a little surprised that the Pickaxe book is in the list. Not that Ruby isn't the bees knees; it just didn't strike me as being influential on Clojure.
Re:Books that influenced Clojure
by charrington on Saturday June 20, 2009 @01:39AM
(#666175)
I, too, am surprised that Java Concurrency in Practice is missing. Rich has mentioned several times. Odd.
As for the Ruby influence, Rich mentioned that he is a "language nerd" and learns all kinds of languages. Whether any one language shows up in some way in Clojure is another matter ;-) I think the Ruby influence shows up in Clojure's ease of scripting Java, cutting through the ceremony to get things done in minimal code.
Re:Books that influenced Clojure
by crc on Friday June 19, 2009 @11:20PM
(#666093)
On #clojure, Rich once mentioned that Jim Gray's "Transaction Processing.." influenced his design of clojure's STM. IIRC, he mentioned that the MVCC aspect of the STM and the commute operation were some of the ideas that he took from the book.
Re:Books that influenced Clojure
by gruseom on Saturday June 20, 2009 @03:03AM
(#666220)
Another paper that gets repeatedly mentioned as being influential in Clojure's design is ["Out of the Tar Pit" by Moseley and Marks]
Repeatedly mentioned by whom? I've looked at these guys' stuff a few times. While the idea of functional-relational programming is appealing, it is also obvious, and as far as I can tell they're not providing much more than fluff.
Re:Books that influenced Clojure
by anonymousDan on Saturday June 20, 2009 @07:37PM
(#666959)
Can you explain to me what the distinction between persistant and ephemeral data structures are (as mentioned in the thesis)? From a brief reading, my understanding is that persistance implies a record of all changes to a data structure are kept somewhere, but that this is only really useful for multithreaded programs. Is that correct?
Re:Books that influenced Clojure
by sigstoat on Saturday June 20, 2009 @11:13PM
(#667069)
in a persistent data structure, you don't actively remove, delete, or change anything. rather each time you make a 'change', you create a new structure which points to, and reuses as much of the old one as possible. then the garbage collector removes the unused bits, if any.
http://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/...
I only know about that book because of Rich's mentions of it.
To be honest, I"m also a little surprised that the Pickaxe book is in the list. Not that Ruby isn't the bees knees; it just didn't strike me as being influential on Clojure.
As for the Ruby influence, Rich mentioned that he is a "language nerd" and learns all kinds of languages. Whether any one language shows up in some way in Clojure is another matter ;-) I think the Ruby influence shows up in Clojure's ease of scripting Java, cutting through the ceremony to get things done in minimal code.
Another paper that gets repeatedly mentioned as being influential in Clojure's design is http://web.mac.com/ben_moseley/frp/paper-v1_01.pdf
Once you finish the above paper, you should also look at http://code.google.com/p/clojure-contrib/wiki/DatalogOvervie... for seeing one way of doing FRP in clojure.
Repeatedly mentioned by whom? I've looked at these guys' stuff a few times. While the idea of functional-relational programming is appealing, it is also obvious, and as far as I can tell they're not providing much more than fluff.
Rich Hickey.
But really, the book betas were released months before Clojure 1.0, so it's likely Rich saw issues/confusion and adapted the language as necessary.
It's a great read even for those who don't yet have experience with functional programming.