My background is Ruby, C#, JavaScript and Java. And now I'm learning Clojure. What makes me feel uncomfortable about the later is that idiomatic Clojure seems to neglect the Uniform access principle ([wiki][1], [c2][2]) and thus to a certain degree encapsulation as well by suggesting to use maps instead of some sort of "structures" or "classes". It feels like step back. So a couple of questions, if anyone informed:

* Which other design decisions/concerns it conflicted with and why it was considered less important?
* Did you have the same concern as well and how it end up when you switched from a language supporting UAP by default (Ruby, Eiffel, Python, C#) to Clojure?


  [1]: http://en.wikipedia.org/wiki/Uniform_access_principle
  [2]: http://c2.com/cgi/wiki?UniformAccessPrinciple