Every programming language is a (somewhat) unique approach to programming. So they all have their ways. Java is best expressed using Java best practices. Python is best expressed using Python best practices. Of course Clojure too is best expressed using Clojure best practices.
Having said that; I don't think object oriented paradigm makes a lot sense in a dynamic environment. Clojure is a dynamic language. Data can be the API without major issues because we can handle all kinds of data with ease. (= (seq []) nil), select-keys, fnil etc... Encapsulation is a valuable property when we're in a statically typed environment. We want to hide more because it's a more rigid environment. On Fri, Oct 17, 2014 at 12:23 PM, Armando Blancas <abm221...@gmail.com> wrote: > Sure, that's the theory behind encapsulation, but I'm not convinced there >> are many cases in practice where the API can remain consistent while the >> data changes. >> >> > > I'm not, either. Models that have little or no abstraction --basically > aggregates of related items-- end up having APIs that just reflect their > contents. For years, my tools were the Eclipse refactoring features and the > code (re)generation of the Eclipse Modeling Framework, not encapsulation. I > started using Clojure practices, though not totally convinced until a while > ago Stuart Sierra wrote: "The data *is* the API," which helped me > understand what I was really doing. Whereas I never faced the proverbial > computed-field change, I've now taken good advantage of generic functions > over maps and records. > > -- > 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 > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- Kind Regards, Atamert Ölçgen -+- --+ +++ www.muhuk.com -- 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 --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.