"volatile" is a great choice of name. It sounds like a warning, as well as 
indicating that is mutable. BE AWARE WHAT YOU'RE DOING WITH ME, I CAN BE 
DANGEROUS! 

:)

Jamie

On Jun 22, 2015, at 9:20 PM, Marc Fawzi <marc.fa...@gmail.com> wrote:

> Ah! Thank you very much for this explanation!!
> 
> Sent from my iPhone
> 
>> On Jun 22, 2015, at 4:40 PM, Francis Avila <fav...@breezeehr.com> wrote:
>> 
>>> 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.
> 
> -- 
> 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.

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