On Thu, Sep 2, 2010 at 9:29 PM, HB <hubaghd...@gmail.com> wrote: > Hey, > I finished reading "Programming Clojure" and "Practical Clojure" and > I'm hooked :) > Please count me in the Clojure club. > But I failed how to think in Clojure. > My main career is around Java web applications (Hibernate, Spring, > Lucene) and Web services. > Lets not talk about Java web frameworks neither Clojure ones, I want > to talk in general. > Usually we create some domain entities, map them with Hibernate/ > iBatis. > I don't know how a Clojure application would be build without objects. > I think Scala really shines here, this OOP/FP is really powerful > approach (please note I'm not saying Clojure isn't good, I don't seel > flame war) > How to think in Clojure? how to achieve this shift? >
Reading a bit about OOP in either Common Lisp or Dylan might help ease you into 'thinking clojure'. It can provide a bridge between then Java OOP way and other ways of doing OOP. I had the opposite problem from you. When I started programming, Dylan and Common Lisp style OOP made far more sense to me then the C++/Java way ( and the Smalltalk way but I didn't want to group it with C++/Java ). There is a fundamental difference in OOP in Lisp style languages from the Algol ones and knowing more about those other forms of OOP might make the path easier to see. There is an older Guy Steele essay that talks in part about Scheme and OOP ( something that most people consider anti-ethical ) http://dreamsongs.com/ObjectsHaveNotFailedNarr.html Basic message, some form of OOP is possible in any language, it is just how easy it is made. As David said, I would be careful about reaching for the methods in Clojure that makes OOP easier and work more with maps, vectors, fns etc and then look at the others. - for more info on OOP in dylan see: http://www.opendylan.org/books/drm/ for more info about OOP in Common Lisp, I would recommened: http://www.amazon.com/Object-Oriented-Programming-Common-Lisp-Programmers/dp/0201175894/ref=sr_1_9?ie=UTF8&s=books&qid=1283484149&sr=8-9 -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en