<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>What are these &amp;quot;Changeable&amp;quot; things Avalon has, and why does it need them?</title><link>http://blogs.msdn.com/greg_schechter/archive/2003/12/04/41362.aspx</link><description>Frank Hileman wonders about the Changeable class in a comment on a usability post to Steven Clarke's blog. Here is his comment: The Changeable class. This one really has me stumped. I can't figure out why the concept is there at all. Why simulate mutability</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Question any complexity!  Avalon API feedback</title><link>http://blogs.msdn.com/greg_schechter/archive/2003/12/04/41362.aspx#41457</link><pubDate>Fri, 05 Dec 2003 17:24:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:41457</guid><dc:creator>Rob Relyea</dc:creator><description /></item><item><title>re: What are these "Changeable" things Avalon has, and why does it need them?</title><link>http://blogs.msdn.com/greg_schechter/archive/2003/12/04/41362.aspx#41485</link><pubDate>Fri, 05 Dec 2003 16:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:41485</guid><dc:creator>Frank Hileman</dc:creator><description>Wow, thanks for the great explanation!! This sounds like a run-time const. I like the idea of having a flag that prevents objects from being modified, especially good to fix things like Brushes.Red. These objects aside, aren't many objects going to be modified at runtime, with all the animation going on?&lt;br&gt;&lt;br&gt;Well, you guys know what is best to do internally. I see Changeable is an advanced concept, to provide a handle to something that is internally immutable, similar to String. It does seem useful for the constant brushes. I don't yet understand why it is important to share all these other things across contexts.&lt;br&gt;&lt;br&gt;It would be best if the whole concept of Changeable was completely hidden from the naive user, so they do not have to read &amp;quot;Using Changeable Objects&amp;quot;. Think of the user who does not even have a good grasp on the term &amp;quot;immutable&amp;quot; -- these users are common. Changeable is a low level internal optimization detail with no perceived benefit to the user at coding time. Perhaps a combination of simplicity and optimization is not possible without CLR changes, but I can see users scratching their heads already.&lt;br&gt;&lt;br&gt;The concept could could be hidden using the traditional pattern of putting the const data in another object and using it through a thin handle object that appears mutable, except for the consts like Brushes.Red (const flag in the handle). Then make the const data type completely private. This idea must have been discussed and rejected. If you feel like commenting on that I would be interested; it is an interesting problem.</description></item></channel></rss>