As if Reactive and Reagent weren't enough reminders of chemistry. Now we have 
volatile too! Sheesh.

Sent from my iPhone

> On Jun 23, 2015, at 7:57 AM, Jamie Orchard-Hays <jamie...@gmail.com> wrote:
> 
> "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.

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