On Monday, June 22, 2015 at 5:09:49 PM UTC-5, marc fawzi wrote:
> It's what I had imagined. So is it fair to say that what is idomatic in 
> Clojure may not be idiomatic in ClojureScript? 
> 

ClojureScript itself uses volatile! in all its stateful transducer 
implementations (just like Clojure), which is a pretty strong argument that it 
is idiomatic cljs.

> The negligible advantage it offers in ClojureScript does not justify losing 
> the functionality of the atom IMO but I may be wrong


Volatile is used in precisely those circumstances where the additional features 
of atom should *not* be used. Not merely aren't needed, but should be 
prohibited from use because the state it holds is not meant to be shared. 
Validation and notification are features to facilitate sharing state.

This is to me the advantage it has over an atom in cljs: it makes clear that 
this is a mutable local that is not meant to escape to the caller or provide 
access to shared state. Volatile says "mutation for speed, not for shared 
access." Atoms do not signal that by themselves because they are meant for 
shared access.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.

Reply via email to