<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.1" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments for onezero</title>
	<link>http://onezero.org</link>
	<description></description>
	<pubDate>Fri, 30 Jul 2010 01:07:38 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.1</generator>

	<item>
		<title>Comment on Shorter Construction Syntax by April</title>
		<link>http://onezero.org/blog/archives/14#comment-1564</link>
		<author>April</author>
		<pubDate>Tue, 08 Jul 2008 15:12:00 +0000</pubDate>
		<guid>http://onezero.org/blog/archives/14#comment-1564</guid>
					<description>I agree with you completely.  The lack of a more concise syntax in C# is all the more puzzling considering that VB allows a syntax very similar to what you propose:
   Dim a As New Thing2(3,2)</description>
		<content:encoded><![CDATA[<p>I agree with you completely.  The lack of a more concise syntax in C# is all the more puzzling considering that VB allows a syntax very similar to what you propose:<br />
   Dim a As New Thing2(3,2)</p>
]]></content:encoded>
				</item>
	<item>
		<title>Comment on The &#8220;Structs Should Always be Immutable&#8221; Guideline by Jackie</title>
		<link>http://onezero.org/blog/archives/13#comment-1517</link>
		<author>Jackie</author>
		<pubDate>Wed, 23 Apr 2008 10:52:32 +0000</pubDate>
		<guid>http://onezero.org/blog/archives/13#comment-1517</guid>
					<description>You came to bid me good bye, then  you are just in time probably &#60;a href=&#34;http://idisk.mac.com/freemoviesofmusclarl/Public/1/free-movies-of-musclar-lesbians.html&#34; rel=&#34;nofollow&#34;&#62;free movies of musclar lesbians&#60;/a&#62;    What did St John Rivers think of this earthly angel  I naturally sagtdbuzini</description>
		<content:encoded><![CDATA[<p>You came to bid me good bye, then  you are just in time probably &lt;a href=&quot;http://idisk.mac.com/freemoviesofmusclarl/Public/1/free-movies-of-musclar-lesbians.html&quot; rel=&quot;nofollow&quot;&gt;free movies of musclar lesbians&lt;/a&gt;    What did St John Rivers think of this earthly angel  I naturally sagtdbuzini</p>
]]></content:encoded>
				</item>
	<item>
		<title>Comment on Shorter Construction Syntax by Andrew</title>
		<link>http://onezero.org/blog/archives/14#comment-1011</link>
		<author>Andrew</author>
		<pubDate>Sat, 13 Oct 2007 06:23:49 +0000</pubDate>
		<guid>http://onezero.org/blog/archives/14#comment-1011</guid>
					<description>Good point Radu!  This is a nice syntax to use in some cases.

I think that this point leaves the argument largely unchanged, in that it seems helpful to have a concise notation such as new() that could be used consistently for local and non-local variables.</description>
		<content:encoded><![CDATA[<p>Good point Radu!  This is a nice syntax to use in some cases.</p>
<p>I think that this point leaves the argument largely unchanged, in that it seems helpful to have a concise notation such as new() that could be used consistently for local and non-local variables.</p>
]]></content:encoded>
				</item>
	<item>
		<title>Comment on Shorter Construction Syntax by Radu</title>
		<link>http://onezero.org/blog/archives/14#comment-1010</link>
		<author>Radu</author>
		<pubDate>Sat, 13 Oct 2007 06:09:25 +0000</pubDate>
		<guid>http://onezero.org/blog/archives/14#comment-1010</guid>
					<description>Type inference in C# 3.0 makes it much more concise (though it only works for local variables).  So rather than your proposed shorthand
   Dictionary = new();
you can instead do 
   var dict = new Dictionary();
(where "var" is still strongly typed, not to be confused with the loose typing "var" in javascript)</description>
		<content:encoded><![CDATA[<p>Type inference in C# 3.0 makes it much more concise (though it only works for local variables).  So rather than your proposed shorthand<br />
   Dictionary = new();<br />
you can instead do<br />
   var dict = new Dictionary();<br />
(where &#8220;var&#8221; is still strongly typed, not to be confused with the loose typing &#8220;var&#8221; in javascript)</p>
]]></content:encoded>
				</item>
	<item>
		<title>Comment on The Worst Songs Ever by Trace</title>
		<link>http://onezero.org/the-worst-songs-ever/#comment-967</link>
		<author>Trace</author>
		<pubDate>Thu, 27 Sep 2007 05:27:14 +0000</pubDate>
		<guid>http://onezero.org/the-worst-songs-ever/#comment-967</guid>
					<description>The jackpot CD you mention is "Sounds of the Seventies: AM Top Twenty" by Time Life Music.</description>
		<content:encoded><![CDATA[<p>The jackpot CD you mention is &#8220;Sounds of the Seventies: AM Top Twenty&#8221; by Time Life Music.</p>
]]></content:encoded>
				</item>
	<item>
		<title>Comment on The Worst Songs Ever by Deb Hoppe</title>
		<link>http://onezero.org/the-worst-songs-ever/#comment-899</link>
		<author>Deb Hoppe</author>
		<pubDate>Thu, 13 Sep 2007 03:11:55 +0000</pubDate>
		<guid>http://onezero.org/the-worst-songs-ever/#comment-899</guid>
					<description>What about The Brothers Johnson?
"strawberry letter number 23, oooow woo wooo woo woooo!"</description>
		<content:encoded><![CDATA[<p>What about The Brothers Johnson?<br />
&#8220;strawberry letter number 23, oooow woo wooo woo woooo!&#8221;</p>
]]></content:encoded>
				</item>
	<item>
		<title>Comment on The &#8220;Structs Should Always be Immutable&#8221; Guideline by Georg Kolling</title>
		<link>http://onezero.org/blog/archives/13#comment-416</link>
		<author>Georg Kolling</author>
		<pubDate>Thu, 19 Jul 2007 14:22:43 +0000</pubDate>
		<guid>http://onezero.org/blog/archives/13#comment-416</guid>
					<description>The first argument ist very weak. I don't really see how immutable types are supposed to be simpler. Is it simpler to always create new objects instead of changing existing ones?

The second argument is plain wrong. In your example, s is already a copy of the argument passed to threadSafeMethod. There is no need for t at all because C# passes method arguments by value, unless you explicitly declare it a reference argument with the ref keyword. Which is required both in the argument list as well as at the call site, so it's instantly obvious you're dealing with a reference.

The third argument is a matter of perspective. You may actually consider the primitive types mutable, given operators such as ++, +=, *=, etc.

The fourth argument is based on a flawed assumption.
"This scenario violates reasonable client assumptions that values residing inside a box will not be modified."
What is the reasoning behind this assumption to make it a "reasonable" one?

The correct assumption is: when I'm dealing with a variable of type Object, or an interface variable (like boxed, cast to IChangeable in your example), I expect it to behave as if it refers to an instance of a reference type.

IChangeable.Change _should_ change the instance it's called on, whether that's a boxed value type or a "real" reference type.

Regards,
  Georg</description>
		<content:encoded><![CDATA[<p>The first argument ist very weak. I don&#8217;t really see how immutable types are supposed to be simpler. Is it simpler to always create new objects instead of changing existing ones?</p>
<p>The second argument is plain wrong. In your example, s is already a copy of the argument passed to threadSafeMethod. There is no need for t at all because C# passes method arguments by value, unless you explicitly declare it a reference argument with the ref keyword. Which is required both in the argument list as well as at the call site, so it&#8217;s instantly obvious you&#8217;re dealing with a reference.</p>
<p>The third argument is a matter of perspective. You may actually consider the primitive types mutable, given operators such as ++, +=, *=, etc.</p>
<p>The fourth argument is based on a flawed assumption.<br />
&#8220;This scenario violates reasonable client assumptions that values residing inside a box will not be modified.&#8221;<br />
What is the reasoning behind this assumption to make it a &#8220;reasonable&#8221; one?</p>
<p>The correct assumption is: when I&#8217;m dealing with a variable of type Object, or an interface variable (like boxed, cast to IChangeable in your example), I expect it to behave as if it refers to an instance of a reference type.</p>
<p>IChangeable.Change _should_ change the instance it&#8217;s called on, whether that&#8217;s a boxed value type or a &#8220;real&#8221; reference type.</p>
<p>Regards,<br />
  Georg</p>
]]></content:encoded>
				</item>
</channel>
</rss>
