<?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/"
		>
<channel>
	<title>Comments on: Static Typing and the Paranoid Style of Programming</title>
	<atom:link href="http://pathfindersoftware.com/2009/04/static-typing-and-the-paranoid-style-of-programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://pathfindersoftware.com/2009/04/static-typing-and-the-paranoid-style-of-programming/</link>
	<description>The Fastest Way to Launch Successful Software</description>
	<lastBuildDate>Thu, 19 Jan 2012 16:36:03 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: mirdones</title>
		<link>http://pathfindersoftware.com/2009/04/static-typing-and-the-paranoid-style-of-programming/#comment-9416</link>
		<dc:creator>mirdones</dc:creator>
		<pubDate>Mon, 07 Feb 2011 09:40:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=2124#comment-9416</guid>
		<description>Another thing to be said is that, to critical applications, the kind that someone dies (or fails to be killed in the case of a miltary application) if the SW does not work properly, you always should get even the most improbable error, including hardware ones.

For that I prefer to work with ADA, as it is very strong typed, so you can never assign a temperature value to a pressure value, even when both are normal floats.

There is room for dynamic typing in the not so critical SW, but to dismiss strong typing is to dismiss a whole set of applications.

Now we are even studying SPARK, that is a subset of ADA that proves mathematically that your SW is correct using authomatic theorem proffing.</description>
		<content:encoded><![CDATA[<p>Another thing to be said is that, to critical applications, the kind that someone dies (or fails to be killed in the case of a miltary application) if the SW does not work properly, you always should get even the most improbable error, including hardware ones.</p>
<p>For that I prefer to work with ADA, as it is very strong typed, so you can never assign a temperature value to a pressure value, even when both are normal floats.</p>
<p>There is room for dynamic typing in the not so critical SW, but to dismiss strong typing is to dismiss a whole set of applications.</p>
<p>Now we are even studying SPARK, that is a subset of ADA that proves mathematically that your SW is correct using authomatic theorem proffing.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: CurtainDog</title>
		<link>http://pathfindersoftware.com/2009/04/static-typing-and-the-paranoid-style-of-programming/#comment-9415</link>
		<dc:creator>CurtainDog</dc:creator>
		<pubDate>Sat, 05 Feb 2011 02:25:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=2124#comment-9415</guid>
		<description>My incredulity at the Bruce Tognazzini comment forced my to look it up (see http://www.asktog.com/TOI/toi06KeyboardVMouse1.html). Needless to say, this has not been my experience. I can only surmise that such thinking was in part responsible for Apple&#039;s banishment to near obscurity for the 15 years following the study.</description>
		<content:encoded><![CDATA[<p>My incredulity at the Bruce Tognazzini comment forced my to look it up (see <a href="http://www.asktog.com/TOI/toi06KeyboardVMouse1.html" rel="nofollow">http://www.asktog.com/TOI/toi06KeyboardVMouse1.html</a>). Needless to say, this has not been my experience. I can only surmise that such thinking was in part responsible for Apple&#8217;s banishment to near obscurity for the 15 years following the study.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Emily</title>
		<link>http://pathfindersoftware.com/2009/04/static-typing-and-the-paranoid-style-of-programming/#comment-9414</link>
		<dc:creator>Emily</dc:creator>
		<pubDate>Fri, 04 Feb 2011 19:16:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=2124#comment-9414</guid>
		<description>&quot;Still, static typing requires more code to be written by the programmer. &quot;

Take a look at Haskell. Properly implemented Type Inference means less code will be written, even compared to the vast majority of &quot;dynamic&quot; languages.</description>
		<content:encoded><![CDATA[<p>&#8220;Still, static typing requires more code to be written by the programmer. &#8221;</p>
<p>Take a look at Haskell. Properly implemented Type Inference means less code will be written, even compared to the vast majority of &#8220;dynamic&#8221; languages.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: alan</title>
		<link>http://pathfindersoftware.com/2009/04/static-typing-and-the-paranoid-style-of-programming/#comment-9413</link>
		<dc:creator>alan</dc:creator>
		<pubDate>Fri, 04 Feb 2011 16:54:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=2124#comment-9413</guid>
		<description>&quot;It&#039;s a little glib, but the language I&#039;ve worked in recently where I&#039;ve had the most problems with mistyping is the allegedly static typed Java -- with Lists and Hashes that treat everything as an Object and require casts to do anything useful.&quot;

What version of Java are you using? Since 1.5, lists, hashes, etc. have been generic, which means you get to type them to your object type and no casting is required to move objects in and out.

Since Java 1.4 has been obsolete forever and 1.5 went end-of-life in October 2009, properly using generic data structures should be standard procedure, not the exception. Maybe the issue is not the static language, but the obsolete version being used.</description>
		<content:encoded><![CDATA[<p>&#8220;It&#8217;s a little glib, but the language I&#8217;ve worked in recently where I&#8217;ve had the most problems with mistyping is the allegedly static typed Java &#8212; with Lists and Hashes that treat everything as an Object and require casts to do anything useful.&#8221;</p>
<p>What version of Java are you using? Since 1.5, lists, hashes, etc. have been generic, which means you get to type them to your object type and no casting is required to move objects in and out.</p>
<p>Since Java 1.4 has been obsolete forever and 1.5 went end-of-life in October 2009, properly using generic data structures should be standard procedure, not the exception. Maybe the issue is not the static language, but the obsolete version being used.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matthew Towler</title>
		<link>http://pathfindersoftware.com/2009/04/static-typing-and-the-paranoid-style-of-programming/#comment-9412</link>
		<dc:creator>Matthew Towler</dc:creator>
		<pubDate>Fri, 04 Feb 2011 14:09:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=2124#comment-9412</guid>
		<description>My experience is that when test code is written, the difference between static and dynamic becomes much less important.  With a static language I get checking of matching types by the compiler, and behaviour by the test code.  With dynamic language both are checked by the tests.  The tests in essence become the compiler, the compile-fix cycle being simple replaced by run test-fix, so the time spend is largely equal.

The main advantage of static typing is that it allows the compiler to optimise the code much more, substituting direct dispatch for the slower dynamic dispatch.  This is the also the reason I persevere with templates as an compile time OO mechanism.</description>
		<content:encoded><![CDATA[<p>My experience is that when test code is written, the difference between static and dynamic becomes much less important.  With a static language I get checking of matching types by the compiler, and behaviour by the test code.  With dynamic language both are checked by the tests.  The tests in essence become the compiler, the compile-fix cycle being simple replaced by run test-fix, so the time spend is largely equal.</p>
<p>The main advantage of static typing is that it allows the compiler to optimise the code much more, substituting direct dispatch for the slower dynamic dispatch.  This is the also the reason I persevere with templates as an compile time OO mechanism.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mirko</title>
		<link>http://pathfindersoftware.com/2009/04/static-typing-and-the-paranoid-style-of-programming/#comment-9411</link>
		<dc:creator>Mirko</dc:creator>
		<pubDate>Fri, 04 Feb 2011 10:55:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=2124#comment-9411</guid>
		<description>I fully agree with Stephan. There&#039;s no need for dynamic typing if you have a track on clear problem analysis and robust design.
Dynamic typing is a step back in developing, it&#039;s not a kind of creativity.</description>
		<content:encoded><![CDATA[<p>I fully agree with Stephan. There&#8217;s no need for dynamic typing if you have a track on clear problem analysis and robust design.<br />
Dynamic typing is a step back in developing, it&#8217;s not a kind of creativity.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Simbosan</title>
		<link>http://pathfindersoftware.com/2009/04/static-typing-and-the-paranoid-style-of-programming/#comment-9410</link>
		<dc:creator>Simbosan</dc:creator>
		<pubDate>Fri, 04 Feb 2011 07:49:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=2124#comment-9410</guid>
		<description>Static typing makes sure that the code you write does what you think it&#039;s doing. It shows you that the implementation of Document you are using is the w3c one and not the Lotus one.

It is a declaration of what you WANT to happen and once you have declared it you know what WILL happen and if there&#039;s any mistake you will be told exactly WHAT went wrong.

Static typing is heavenly, I love it and it makes my coding life manageable.

Side effects are the devil for maintenance, and maintainable code is what you should aim for above all things. Dynamic typing is incompatible with maintainable code</description>
		<content:encoded><![CDATA[<p>Static typing makes sure that the code you write does what you think it&#8217;s doing. It shows you that the implementation of Document you are using is the w3c one and not the Lotus one.</p>
<p>It is a declaration of what you WANT to happen and once you have declared it you know what WILL happen and if there&#8217;s any mistake you will be told exactly WHAT went wrong.</p>
<p>Static typing is heavenly, I love it and it makes my coding life manageable.</p>
<p>Side effects are the devil for maintenance, and maintainable code is what you should aim for above all things. Dynamic typing is incompatible with maintainable code</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stephan Leclercq</title>
		<link>http://pathfindersoftware.com/2009/04/static-typing-and-the-paranoid-style-of-programming/#comment-9409</link>
		<dc:creator>Stephan Leclercq</dc:creator>
		<pubDate>Fri, 17 Jul 2009 13:05:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.pathf.com/blogs/?p=2124#comment-9409</guid>
		<description>And yet another rant about &quot;the time spent making the compiler happy&quot;... Writing in a statically typed language is not about making a compiler happy. It is about having an appropriate design.

If you spend time &quot;making the compiler happy&quot; it is mainly because your abstractions and inheritance patterns are wrong, and you have to bend the rules. Get your abstractions right, and the compiler will gladly follow.

THAT is exactly the kind of &quot;bugs&quot; a statically typed language will catch: not typnig erorrs, but sloppy design. That is neither rare, nor easy to fix.

-- S.</description>
		<content:encoded><![CDATA[<p>And yet another rant about &#8220;the time spent making the compiler happy&#8221;&#8230; Writing in a statically typed language is not about making a compiler happy. It is about having an appropriate design.</p>
<p>If you spend time &#8220;making the compiler happy&#8221; it is mainly because your abstractions and inheritance patterns are wrong, and you have to bend the rules. Get your abstractions right, and the compiler will gladly follow.</p>
<p>THAT is exactly the kind of &#8220;bugs&#8221; a statically typed language will catch: not typnig erorrs, but sloppy design. That is neither rare, nor easy to fix.</p>
<p>&#8211; S.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic (User agent is rejected)
Page Caching using memcached (User agent is rejected)

Served from: pathfindersoftware.com @ 2012-02-10 02:39:46 -->
