<?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: A debate about type systems</title>
	<atom:link href="http://adams.id.au/blog/2008/02/a-debate-about-type-systems/feed/" rel="self" type="application/rss+xml" />
	<link>http://adams.id.au/blog/2008/02/a-debate-about-type-systems/</link>
	<description>Technology, mountain biking, politics &#38; music.</description>
	<pubDate>Thu, 09 Sep 2010 05:02:13 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Phillip CalÃƒÂ§ado</title>
		<link>http://adams.id.au/blog/2008/02/a-debate-about-type-systems/comment-page-1/#comment-118</link>
		<dc:creator>Phillip CalÃƒÂ§ado</dc:creator>
		<pubDate>Thu, 07 Feb 2008 07:32:58 +0000</pubDate>
		<guid isPermaLink="false">http://adams.id.au/blog/2008/02/a-debate-about-type-systems/#comment-118</guid>
		<description>Hi, Tom,

Yes, basically I'm talking about Java (and C# and other pop static languages) &lt;strong&gt;and&lt;/strong&gt; 'enterprise systems' (not math or scientific applications of any kind) just because that's where I have experience.

Anyway, in the first link you sent he author states exactly my point about typing system != design by contract:

&lt;blockquote&gt;
Both a and b can possibly be null, so what happens if null is passed? Er, you get a NullPointerException. Some programmers will specify that in documentation for the method, or just write that null is not allowed. The same method in Scheme would be callable with any values at all, though it would fail. That changes the attitude of calling programmers. Instead of looking at the half-hearted type signature, and seeing that null is a possible value, the programmer is more likely to look at the implementation.
&lt;/blockquote&gt;

The second link is very interesting and mind blowing, but still doesnÃ¢â‚¬â„¢t add much light into this debate, I think. Actually I got the impression that, as the author says about problems that are for dynamic vs. problems that are for static, business software development may be something for dynamic languages. Don't know, just thoughts.

As I said I focused on the type system implementations I know and reading the links I got the feeling that most nice features from static typing languages are, actually, features from the language and not from the fact that they're static typed (and that's probably why Scala and Haskell are always the only implementations of static typing people use in the debate). I never said that you can't create a good programming language using static types, my point (and I think that Jay's also) is that static typing 'per se' won't give you an advantage in the scenarios described above.

I also said that I can't think about scenarios where static typing would be better but it's not because I can't think of one that they don't exist ;)

I'll add a follow-up in the bottom of the post clarifying these points.

Thanks for the links, added your blog to my readings.

cheers</description>
		<content:encoded><![CDATA[<p>Hi, Tom,</p>
<p>Yes, basically I&#8217;m talking about Java (and C# and other pop static languages) <strong>and</strong> &#8216;enterprise systems&#8217; (not math or scientific applications of any kind) just because that&#8217;s where I have experience.</p>
<p>Anyway, in the first link you sent he author states exactly my point about typing system != design by contract:</p>
<blockquote><p>
Both a and b can possibly be null, so what happens if null is passed? Er, you get a NullPointerException. Some programmers will specify that in documentation for the method, or just write that null is not allowed. The same method in Scheme would be callable with any values at all, though it would fail. That changes the attitude of calling programmers. Instead of looking at the half-hearted type signature, and seeing that null is a possible value, the programmer is more likely to look at the implementation.
</p></blockquote>
<p>The second link is very interesting and mind blowing, but still doesnÃ¢â‚¬â„¢t add much light into this debate, I think. Actually I got the impression that, as the author says about problems that are for dynamic vs. problems that are for static, business software development may be something for dynamic languages. Don&#8217;t know, just thoughts.</p>
<p>As I said I focused on the type system implementations I know and reading the links I got the feeling that most nice features from static typing languages are, actually, features from the language and not from the fact that they&#8217;re static typed (and that&#8217;s probably why Scala and Haskell are always the only implementations of static typing people use in the debate). I never said that you can&#8217;t create a good programming language using static types, my point (and I think that Jay&#8217;s also) is that static typing &#8216;per se&#8217; won&#8217;t give you an advantage in the scenarios described above.</p>
<p>I also said that I can&#8217;t think about scenarios where static typing would be better but it&#8217;s not because I can&#8217;t think of one that they don&#8217;t exist <img src='http://adams.id.au/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
I&#8217;ll add a follow-up in the bottom of the post clarifying these points.</p>
<p>Thanks for the links, added your blog to my readings.</p>
<p>cheers</p>
]]></content:encoded>
	</item>
</channel>
</rss>
