<?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"
	>
<channel>
	<title>Comments on: One reason static typing doesn&#8217;t suck</title>
	<atom:link href="http://www.rawblock.com/2007/09/08/one-reason-static-typing-doesnt-suck/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rawblock.com/2007/09/08/one-reason-static-typing-doesnt-suck/</link>
	<description>Random braindumps vaguely related to coding</description>
	<pubDate>Mon, 01 Dec 2008 18:06:31 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
		<item>
		<title>By: random8r</title>
		<link>http://www.rawblock.com/2007/09/08/one-reason-static-typing-doesnt-suck/#comment-161</link>
		<dc:creator>random8r</dc:creator>
		<pubDate>Thu, 28 Feb 2008 06:04:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.rawblock.com/2007/09/08/one-reason-static-typing-doesnt-suck/#comment-161</guid>
		<description>Used netbeans? you oughta look it up. netbeans dot org</description>
		<content:encoded><![CDATA[<p>Used netbeans? you oughta look it up. netbeans dot org</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://www.rawblock.com/2007/09/08/one-reason-static-typing-doesnt-suck/#comment-91</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Sun, 09 Sep 2007 22:03:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.rawblock.com/2007/09/08/one-reason-static-typing-doesnt-suck/#comment-91</guid>
		<description>&lt;i&gt;Show me programming language which will catch bugs in specification?&lt;/i&gt;&lt;br/&gt;&lt;br/&gt;INTERCAL!</description>
		<content:encoded><![CDATA[<p><i>Show me programming language which will catch bugs in specification?</i></p>
<p>INTERCAL!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Qrilka</title>
		<link>http://www.rawblock.com/2007/09/08/one-reason-static-typing-doesnt-suck/#comment-90</link>
		<dc:creator>Qrilka</dc:creator>
		<pubDate>Sun, 09 Sep 2007 08:34:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.rawblock.com/2007/09/08/one-reason-static-typing-doesnt-suck/#comment-90</guid>
		<description>2 ricky clarkson:&lt;br/&gt;Show me programming language which will catch  bugs in specification? :)&lt;br/&gt;Nothing CAN'T catch ALL bugs</description>
		<content:encoded><![CDATA[<p>2 ricky clarkson:<br />Show me programming language which will catch  bugs in specification? <img src='http://www.rawblock.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <br />Nothing CAN&#8217;T catch ALL bugs</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James</title>
		<link>http://www.rawblock.com/2007/09/08/one-reason-static-typing-doesnt-suck/#comment-89</link>
		<dc:creator>James</dc:creator>
		<pubDate>Sun, 09 Sep 2007 04:56:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.rawblock.com/2007/09/08/one-reason-static-typing-doesnt-suck/#comment-89</guid>
		<description>I agree with the overall point, that the code navigation is nice. However, this has absolutely nothing to do with static vs dynamic typing. If anything it has to do with strong vs weak typing. &lt;br/&gt;&lt;br/&gt;Ruby, and Java, are both strongly typed, and there is no problem doing find usages, navigate to definition,  and the other basic refactors. As a matter of fact. The only place that a refactor may fail is in the case of passing blocks, closures and continuations. &lt;br/&gt;&lt;br/&gt;The reason the tools aren't there is support. Ruby didn't have much support until Rails came around. Now Eclipse (via RDT) and NetBeans are making large strides. There is no reason that TextMate shouldn't have the ability to refactor soon.&lt;br/&gt;&lt;br/&gt;Expanding on flexpert's point: Not only did SmallTalk have excellent code navigation and refactoring support, SmallTalk is where the refactoring support was first conceived.</description>
		<content:encoded><![CDATA[<p>I agree with the overall point, that the code navigation is nice. However, this has absolutely nothing to do with static vs dynamic typing. If anything it has to do with strong vs weak typing. </p>
<p>Ruby, and Java, are both strongly typed, and there is no problem doing find usages, navigate to definition,  and the other basic refactors. As a matter of fact. The only place that a refactor may fail is in the case of passing blocks, closures and continuations. </p>
<p>The reason the tools aren&#8217;t there is support. Ruby didn&#8217;t have much support until Rails came around. Now Eclipse (via RDT) and NetBeans are making large strides. There is no reason that TextMate shouldn&#8217;t have the ability to refactor soon.</p>
<p>Expanding on flexpert&#8217;s point: Not only did SmallTalk have excellent code navigation and refactoring support, SmallTalk is where the refactoring support was first conceived.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://www.rawblock.com/2007/09/08/one-reason-static-typing-doesnt-suck/#comment-88</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Sun, 09 Sep 2007 04:45:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.rawblock.com/2007/09/08/one-reason-static-typing-doesnt-suck/#comment-88</guid>
		<description>I couldn't agree with you more: static typing can be indispensable for serious large projects that need to maintained for a long period of time. Signatures of methods and classes can be very helpful in clarifying "what part of code calls other parts". This is an essential question that we have to ask when fixing a bug in legacy code, or when introducing a new feature.&lt;br/&gt;&lt;br/&gt;Sure, one can use "coding and naming conventions" to clarify the design of dynamic code, or "ask the argument to a function about its type", but this can easily become unmanageable in large teams or long projects.&lt;br/&gt;&lt;br/&gt;I have done my share of coding in type-agnostic languages, but in most of these cases, the end result was a quick "one time" script or tool. When I sense that the life of the tool will become relatively long, I typically switch to a "static type" kind of languages.</description>
		<content:encoded><![CDATA[<p>I couldn&#8217;t agree with you more: static typing can be indispensable for serious large projects that need to maintained for a long period of time. Signatures of methods and classes can be very helpful in clarifying &#8220;what part of code calls other parts&#8221;. This is an essential question that we have to ask when fixing a bug in legacy code, or when introducing a new feature.</p>
<p>Sure, one can use &#8220;coding and naming conventions&#8221; to clarify the design of dynamic code, or &#8220;ask the argument to a function about its type&#8221;, but this can easily become unmanageable in large teams or long projects.</p>
<p>I have done my share of coding in type-agnostic languages, but in most of these cases, the end result was a quick &#8220;one time&#8221; script or tool. When I sense that the life of the tool will become relatively long, I typically switch to a &#8220;static type&#8221; kind of languages.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric</title>
		<link>http://www.rawblock.com/2007/09/08/one-reason-static-typing-doesnt-suck/#comment-87</link>
		<dc:creator>Eric</dc:creator>
		<pubDate>Sun, 09 Sep 2007 03:10:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.rawblock.com/2007/09/08/one-reason-static-typing-doesnt-suck/#comment-87</guid>
		<description>Julian - I agree with you... tooling is an issue. Massive systems are even easier to manage thanks to tools like Maven, and far easier to navigate thanks to Mylyn (formerly Mylar. If you haven't used it - I highly recommend it).&lt;br/&gt;&lt;br/&gt;Sadly AFAIK there is only one decent tool for managing large Ruby projects, and that is TextMate. Downside: it's only available for Mac. It is probably the one good reason for owning a Mac, if there were no others. I'd love to see a Linux port - but I don't see that happening (since the developer said they won't).&lt;br/&gt;&lt;br/&gt;Keep up the good work.</description>
		<content:encoded><![CDATA[<p>Julian - I agree with you&#8230; tooling is an issue. Massive systems are even easier to manage thanks to tools like Maven, and far easier to navigate thanks to Mylyn (formerly Mylar. If you haven&#8217;t used it - I highly recommend it).</p>
<p>Sadly AFAIK there is only one decent tool for managing large Ruby projects, and that is TextMate. Downside: it&#8217;s only available for Mac. It is probably the one good reason for owning a Mac, if there were no others. I&#8217;d love to see a Linux port - but I don&#8217;t see that happening (since the developer said they won&#8217;t).</p>
<p>Keep up the good work.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Flexpert</title>
		<link>http://www.rawblock.com/2007/09/08/one-reason-static-typing-doesnt-suck/#comment-86</link>
		<dc:creator>Flexpert</dc:creator>
		<pubDate>Sat, 08 Sep 2007 20:29:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.rawblock.com/2007/09/08/one-reason-static-typing-doesnt-suck/#comment-86</guid>
		<description>I'll agree that the IDE tooling for Ruby is not quite there yet, but you should consider eclipse' roots when discussing it's features.&lt;br/&gt;&lt;br/&gt;Eclipse evolved from VisualAge for Java which had evolved from VisualAge for Smalltalk.  Despite the dynamic nature of Smalltalk, VisualAge for Smalltalk (and other Smalltalk environments) include fantastic code navigation, refactoring, etc.&lt;br/&gt;&lt;br/&gt;It's the dynamic nature of Smalltalk that allowed it's amazing tooling.  Ruby shares that nature with Smalltalk.  It's only a matter of time before the tooling is here for Ruby.</description>
		<content:encoded><![CDATA[<p>I&#8217;ll agree that the IDE tooling for Ruby is not quite there yet, but you should consider eclipse&#8217; roots when discussing it&#8217;s features.</p>
<p>Eclipse evolved from VisualAge for Java which had evolved from VisualAge for Smalltalk.  Despite the dynamic nature of Smalltalk, VisualAge for Smalltalk (and other Smalltalk environments) include fantastic code navigation, refactoring, etc.</p>
<p>It&#8217;s the dynamic nature of Smalltalk that allowed it&#8217;s amazing tooling.  Ruby shares that nature with Smalltalk.  It&#8217;s only a matter of time before the tooling is here for Ruby.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ricky Clarkson</title>
		<link>http://www.rawblock.com/2007/09/08/one-reason-static-typing-doesnt-suck/#comment-85</link>
		<dc:creator>Ricky Clarkson</dc:creator>
		<pubDate>Sat, 08 Sep 2007 15:18:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.rawblock.com/2007/09/08/one-reason-static-typing-doesnt-suck/#comment-85</guid>
		<description>"Static compile time checks only catch the most trivial of bugs"&lt;br/&gt;&lt;br/&gt;That's untrue.  Static checks can catch all bugs.  Perhaps not in your language, or with your tools, but they can, thanks to the Curry-Howard isomorphism.&lt;br/&gt;&lt;br/&gt;"it's amazing how easy understanding a massive code base can become"&lt;br/&gt;&lt;br/&gt;I expect that programmers in dynamic languages tend to modularise their code more to alleviate these issues.&lt;br/&gt;&lt;br/&gt;IDEs fail when you do more interesting things.  For example, Java lacks method references, so I'll make a Runnable:&lt;br/&gt;&lt;br/&gt;new Runnable()&lt;br/&gt;{&lt;br/&gt;. . public void run()&lt;br/&gt;. . {&lt;br/&gt;. . . . otherMethod();&lt;br/&gt;. . }&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;Now I can pass that around to anywhere that takes a Runnable, and the IDE's "who calls this?" feature is useless.  You can get more information from a running program plus source code than source code alone.&lt;br/&gt;&lt;br/&gt;Interfaces and implementations really are not dynamic typing.&lt;br/&gt;&lt;br/&gt;"Got a method with an argument passed in? What is it?"&lt;br/&gt;&lt;br/&gt;Ask it.</description>
		<content:encoded><![CDATA[<p>&#8220;Static compile time checks only catch the most trivial of bugs&#8221;</p>
<p>That&#8217;s untrue.  Static checks can catch all bugs.  Perhaps not in your language, or with your tools, but they can, thanks to the Curry-Howard isomorphism.</p>
<p>&#8220;it&#8217;s amazing how easy understanding a massive code base can become&#8221;</p>
<p>I expect that programmers in dynamic languages tend to modularise their code more to alleviate these issues.</p>
<p>IDEs fail when you do more interesting things.  For example, Java lacks method references, so I&#8217;ll make a Runnable:</p>
<p>new Runnable()<br />{<br />. . public void run()<br />. . {<br />. . . . otherMethod();<br />. . }<br />}</p>
<p>Now I can pass that around to anywhere that takes a Runnable, and the IDE&#8217;s &#8220;who calls this?&#8221; feature is useless.  You can get more information from a running program plus source code than source code alone.</p>
<p>Interfaces and implementations really are not dynamic typing.</p>
<p>&#8220;Got a method with an argument passed in? What is it?&#8221;</p>
<p>Ask it.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.604 seconds -->
