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
-~----------~----~----~----~------~----~------~--~---

Reply via email to