6 ms·
Books that influenced Clojure
- iman 17y agoYou can read the thesis that later became "Purely Functional Data Structures" for free online: http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf It's a great read even for those who don't yet have experience with functional programming.
- anonymousDan 17y agoCan 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?
- sigstoat 17y agoin 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.
- dmlorenzetti 17y agoSince Clojure lacks tail-call optimization, I'm not sure how the book "Programming Clojure" influenced it...
- fogus 17y agoHis list has a head call. -m
- bretthoerner 17y agoFunny. :) 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.
- crc 17y agoOn #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. 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 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/DatalogOverview http://code.google.com/p/clojure-contrib/wiki/DatalogOvervie... for seeing one way of doing FRP in clojure.
- gruseom 17y agoAnother 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.
- menloparkbum 17y agoRepeatedly mentioned by whom? Rich Hickey.
- gruseom 17y agoThat's interesting. I guess I'm missing the value there. I'd give it another look, except I just did.
- menloparkbum 17y agoHe seems to use it to deflect the TDD crowd. Personally, I found it boring.
- plinkplonk 17y agoanything that deflects the TDD crowd is very useful! (and so not boring!)
- icey 17y agoI'm shocked that Java Concurrency in Practice isn't in the list: http://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601/ 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.
- charrington 17y agoI, 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.
- richhickey 17y agoI'm sure I selected it, but I didn't realize it hadn't gone into the list. Now fixed - thanks.