<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Static Methods will Shock You</title>
	<atom:link href="http://simpleprogrammer.com/2010/01/29/static-methods-will-shock-you/feed/" rel="self" type="application/rss+xml" />
	<link>http://simpleprogrammer.com/2010/01/29/static-methods-will-shock-you/</link>
	<description>Software Development from John Sonmez&#039;s Perspective</description>
	<lastBuildDate>Thu, 17 May 2012 13:16:12 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: BEAR.Sunday Coding &#171; BEAR Blog</title>
		<link>http://simpleprogrammer.com/2010/01/29/static-methods-will-shock-you/#comment-2561</link>
		<dc:creator><![CDATA[BEAR.Sunday Coding &#171; BEAR Blog]]></dc:creator>
		<pubDate>Thu, 17 May 2012 13:16:12 +0000</pubDate>
		<guid isPermaLink="false">http://simpleprogrammer.com/?p=250#comment-2561</guid>
		<description><![CDATA[[...] Static Methods will Shock You: When static methods can be good [...]]]></description>
		<content:encoded><![CDATA[<p>[...] Static Methods will Shock You: When static methods can be good [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Static Methods: Time to Hit Rock Bottom &#124; DaedTech</title>
		<link>http://simpleprogrammer.com/2010/01/29/static-methods-will-shock-you/#comment-2193</link>
		<dc:creator><![CDATA[Static Methods: Time to Hit Rock Bottom &#124; DaedTech]]></dc:creator>
		<pubDate>Tue, 01 Nov 2011 16:53:51 +0000</pubDate>
		<guid isPermaLink="false">http://simpleprogrammer.com/?p=250#comment-2193</guid>
		<description><![CDATA[[...] a post with a different device theme, the pun, John Sonmez says: I don’t like static methods. They make me cringe. In the universe of [...]]]></description>
		<content:encoded><![CDATA[<p>[...] a post with a different device theme, the pun, John Sonmez says: I don’t like static methods. They make me cringe. In the universe of [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Getting Up to BAT: Designing an Automation Framework &#171; Making the Complex Simple</title>
		<link>http://simpleprogrammer.com/2010/01/29/static-methods-will-shock-you/#comment-1780</link>
		<dc:creator><![CDATA[Getting Up to BAT: Designing an Automation Framework &#171; Making the Complex Simple]]></dc:creator>
		<pubDate>Thu, 17 Mar 2011 00:02:00 +0000</pubDate>
		<guid isPermaLink="false">http://simpleprogrammer.com/?p=250#comment-1780</guid>
		<description><![CDATA[[...] Stop… take a breath, think about why you think static methods are bad, because I probably agree with you. [...]]]></description>
		<content:encoded><![CDATA[<p>[...] Stop… take a breath, think about why you think static methods are bad, because I probably agree with you. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aspect Oriented Programming with Action&#60;&#62; &#171; Making the Complex Simple</title>
		<link>http://simpleprogrammer.com/2010/01/29/static-methods-will-shock-you/#comment-1105</link>
		<dc:creator><![CDATA[Aspect Oriented Programming with Action&#60;&#62; &#171; Making the Complex Simple]]></dc:creator>
		<pubDate>Mon, 11 Oct 2010 08:50:08 +0000</pubDate>
		<guid isPermaLink="false">http://simpleprogrammer.com/?p=250#comment-1105</guid>
		<description><![CDATA[[...] I’m not a big fan of static methods but in certain cases they make sense.&#160; The alternative is to have all of this code sprinkled throughout your code base. [...]]]></description>
		<content:encoded><![CDATA[<p>[...] I’m not a big fan of static methods but in certain cases they make sense.&#160; The alternative is to have all of this code sprinkled throughout your code base. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Refactoring Step-Wise vs Wrapping and Delegating &#171; Making the Complex Simple</title>
		<link>http://simpleprogrammer.com/2010/01/29/static-methods-will-shock-you/#comment-1012</link>
		<dc:creator><![CDATA[Refactoring Step-Wise vs Wrapping and Delegating &#171; Making the Complex Simple]]></dc:creator>
		<pubDate>Fri, 17 Sep 2010 16:50:20 +0000</pubDate>
		<guid isPermaLink="false">http://simpleprogrammer.com/?p=250#comment-1012</guid>
		<description><![CDATA[[...] the step-wise approach, you are actually getting rid of the bad and evil static methods.&#160; When you wrap and delegate, you are still leaving them there, just hiding them behind a [...]]]></description>
		<content:encoded><![CDATA[<p>[...] the step-wise approach, you are actually getting rid of the bad and evil static methods.&#160; When you wrap and delegate, you are still leaving them there, just hiding them behind a [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Elegant Code &#187; Enforce Correct Usage By Wrapping Types</title>
		<link>http://simpleprogrammer.com/2010/01/29/static-methods-will-shock-you/#comment-678</link>
		<dc:creator><![CDATA[Elegant Code &#187; Enforce Correct Usage By Wrapping Types]]></dc:creator>
		<pubDate>Sun, 11 Jul 2010 22:40:54 +0000</pubDate>
		<guid isPermaLink="false">http://simpleprogrammer.com/?p=250#comment-678</guid>
		<description><![CDATA[[...] Part of the problem of utility methods is that they are not self-discoverable.&#160; I’ve talked about before how DateUtilities like classes can get overlooked if you don’t know the utility class is [...]]]></description>
		<content:encoded><![CDATA[<p>[...] Part of the problem of utility methods is that they are not self-discoverable.&#160; I’ve talked about before how DateUtilities like classes can get overlooked if you don’t know the utility class is [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jsonmez</title>
		<link>http://simpleprogrammer.com/2010/01/29/static-methods-will-shock-you/#comment-378</link>
		<dc:creator><![CDATA[jsonmez]]></dc:creator>
		<pubDate>Wed, 21 Apr 2010 17:03:31 +0000</pubDate>
		<guid isPermaLink="false">http://simpleprogrammer.com/?p=250#comment-378</guid>
		<description><![CDATA[Good question.  I have been meaning to follow up with a post on extension methods.  Perhaps I will do one this week.]]></description>
		<content:encoded><![CDATA[<p>Good question.  I have been meaning to follow up with a post on extension methods.  Perhaps I will do one this week.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jerod Houghtelling</title>
		<link>http://simpleprogrammer.com/2010/01/29/static-methods-will-shock-you/#comment-377</link>
		<dc:creator><![CDATA[Jerod Houghtelling]]></dc:creator>
		<pubDate>Wed, 21 Apr 2010 16:54:38 +0000</pubDate>
		<guid isPermaLink="false">http://simpleprogrammer.com/?p=250#comment-377</guid>
		<description><![CDATA[Do you plan on passing judgment on Extension Methods anytime soon? Our developers got in a argument about helper classes today and one developer is certain that extension methods are better. However, I think most of us agree that they are another form of helper classes.]]></description>
		<content:encoded><![CDATA[<p>Do you plan on passing judgment on Extension Methods anytime soon? Our developers got in a argument about helper classes today and one developer is certain that extension methods are better. However, I think most of us agree that they are another form of helper classes.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jsonmez</title>
		<link>http://simpleprogrammer.com/2010/01/29/static-methods-will-shock-you/#comment-363</link>
		<dc:creator><![CDATA[jsonmez]]></dc:creator>
		<pubDate>Tue, 13 Apr 2010 15:57:10 +0000</pubDate>
		<guid isPermaLink="false">http://simpleprogrammer.com/?p=250#comment-363</guid>
		<description><![CDATA[Good questions.

&lt;strong&gt;System.Math:&lt;/strong&gt; PI and E meet my requirements of being true global constants.  Those values are never going to change, the context for them in almost any application we would build would be universal.

As far as the other methods in Math (and even PI and E to some degree), they are not discoverable by being in System.Math.  They are OK as static methods, because they are truly functions, which do not touch other components of the system.  They just do their thing and don&#039;t have dependencies.  They are also part of the base framework, which makes them less of a problem to be static.

But, I would still rather see a syntax like &quot;32.Math.Cos(3)&quot; which would be extension methods+ a grouping to make it so that I can discover the Math functions available that operate on an integer.  This creates a cohesion to the data the static methods operate on, which makes them less &quot;global&quot;.

For &lt;strong&gt;System.IO.Path, File and Directory&lt;/strong&gt;:  I would prefer to see those as concrete classes.  There really is not a need for them to be static.  For example, lets say these classes were to be concrete and implement and interface.  Then in your code, you could mock out the interface calls and not have to try to unit test classes that would have to write to the file system.]]></description>
		<content:encoded><![CDATA[<p>Good questions.</p>
<p><strong>System.Math:</strong> PI and E meet my requirements of being true global constants.  Those values are never going to change, the context for them in almost any application we would build would be universal.</p>
<p>As far as the other methods in Math (and even PI and E to some degree), they are not discoverable by being in System.Math.  They are OK as static methods, because they are truly functions, which do not touch other components of the system.  They just do their thing and don&#8217;t have dependencies.  They are also part of the base framework, which makes them less of a problem to be static.</p>
<p>But, I would still rather see a syntax like &#8220;32.Math.Cos(3)&#8221; which would be extension methods+ a grouping to make it so that I can discover the Math functions available that operate on an integer.  This creates a cohesion to the data the static methods operate on, which makes them less &#8220;global&#8221;.</p>
<p>For <strong>System.IO.Path, File and Directory</strong>:  I would prefer to see those as concrete classes.  There really is not a need for them to be static.  For example, lets say these classes were to be concrete and implement and interface.  Then in your code, you could mock out the interface calls and not have to try to unit test classes that would have to write to the file system.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: configurator</title>
		<link>http://simpleprogrammer.com/2010/01/29/static-methods-will-shock-you/#comment-362</link>
		<dc:creator><![CDATA[configurator]]></dc:creator>
		<pubDate>Tue, 13 Apr 2010 15:43:14 +0000</pubDate>
		<guid isPermaLink="false">http://simpleprogrammer.com/?p=250#comment-362</guid>
		<description><![CDATA[How do you feel about System.Math? And about System.IO.Path, File and Directory?]]></description>
		<content:encoded><![CDATA[<p>How do you feel about System.Math? And about System.IO.Path, File and Directory?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

