I had a good time presenting an overview of Clojure at this years TheServerSide Java Symposium.
A few questions from the crowd (of about 15 attendees) that I couldn't accurately respond to: 1) What prevents thread starvation when using (dosync) and ref's? It seems to me that conflicting transactions won't cause thread starvation since one will succeed and the other(s) retry. Still, is there a mechanism to ensure that a transaction eventually succeeds? 2) Are Clojure collections garbage collectors? If you have a long running process that continually modifies a collection and retains the new version ... does the new version retain the old version? For how long? This actually affects some work I'm doing, where a graphics program will render a list of maps; on each pass, the existing list and existing maps are modified for the animation, then rendered. The List and the Maps within the List will evolve over time ... but will unnecessary memory ever be freed? Is there a point after which sufficient changes to a Map results in an entirely new Map with no reference to the old one? 3) Which is going to "win", Scala or Clojure? This was one a could answer; there is no "win", there's just inter-operation. I prefer Clojure's concepts to Scalas, and Clojure's syntax to Scala's. I think that "type safety" is a dead end in the Java world (though not, perhaps, in the Haskell world). However, my response was that there is no "winner", both are building followings. Interestingly, this conversation segued into a broader discussion of whether "average" developers could learn functional programming. My response was, essentially, to compare this to the question in (say) 1992 about C and Basic coders learning Object Orientation and Java. The "average" developers did then, but now there's a responsibility of leaders to be the thin edge of the wedge and drive adoption. -- Howard M. Lewis Ship Creator Apache Tapestry and Apache HiveMind --~--~---------~--~----~------------~-------~--~----~ 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 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 -~----------~----~----~----~------~----~------~--~---