<?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: Weak versus strong languages, who wins the fight?</title>
	<atom:link href="http://www.codemonkeyism.com/archives/2006/03/29/weak-versus-strong-languages-who-wins-the-fight/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.codemonkeyism.com/archives/2006/03/29/weak-versus-strong-languages-who-wins-the-fight/</link>
	<description>Programming is hard</description>
	<pubDate>Sat, 22 Nov 2008 13:05:30 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
		<item>
		<title>By: anevaamedycle</title>
		<link>http://www.codemonkeyism.com/archives/2006/03/29/weak-versus-strong-languages-who-wins-the-fight/#comment-32278</link>
		<dc:creator>anevaamedycle</dc:creator>
		<pubDate>Thu, 27 Sep 2007 05:36:02 +0000</pubDate>
		<guid isPermaLink="false">http://blog.reposita.org/?p=4#comment-32278</guid>
		<description>+á+Ã+áòÀÚ+à+Õ+á+Â+à+*+à+Å +à +à+</description>
		<content:encoded><![CDATA[<p>+á+Ã+áòÀÚ+à+Õ+á+Â+à+*+à+Å +à +à+</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Isaac Gouy</title>
		<link>http://www.codemonkeyism.com/archives/2006/03/29/weak-versus-strong-languages-who-wins-the-fight/#comment-7</link>
		<dc:creator>Isaac Gouy</dc:creator>
		<pubDate>Tue, 04 Apr 2006 16:44:02 +0000</pubDate>
		<guid isPermaLink="false">http://blog.reposita.org/?p=4#comment-7</guid>
		<description>"doesn’t work if the reference is static"
Really?
   Object name = "stephen"; // universal type
   name = new Name(forename: "stephan");


"checking at compile and at runtime"
The distinction is between languages that /do not/ provide static type checking, and languages that /do/ provide static type checking. Languages that /do/ provide static type checking can still defer type checking until runtime.

The distinction is between languages that /do not/ provide early binding, and languages that /do/ provide early binding. Languages that /do/ provide early binding can still defer binding until runtime.


"reference typing and data structure typing"
Talking about data structure typing like this seems likely to cause confusion between nominal typing and structural typing.

"Ruby, Python, Smalltalk and Java have all statically typed data structures"
You can of course invent your own definitions but no one else talks about Ruby, Python, or Smalltalk runtime data structures as being statically typed.</description>
		<content:encoded><![CDATA[<p>&#8220;doesn’t work if the reference is static&#8221;<br />
Really?<br />
   Object name = &#8220;stephen&#8221;; // universal type<br />
   name = new Name(forename: &#8220;stephan&#8221;);</p>
<p>&#8220;checking at compile and at runtime&#8221;<br />
The distinction is between languages that /do not/ provide static type checking, and languages that /do/ provide static type checking. Languages that /do/ provide static type checking can still defer type checking until runtime.</p>
<p>The distinction is between languages that /do not/ provide early binding, and languages that /do/ provide early binding. Languages that /do/ provide early binding can still defer binding until runtime.</p>
<p>&#8220;reference typing and data structure typing&#8221;<br />
Talking about data structure typing like this seems likely to cause confusion between nominal typing and structural typing.</p>
<p>&#8220;Ruby, Python, Smalltalk and Java have all statically typed data structures&#8221;<br />
You can of course invent your own definitions but no one else talks about Ruby, Python, or Smalltalk runtime data structures as being statically typed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: stephan</title>
		<link>http://www.codemonkeyism.com/archives/2006/03/29/weak-versus-strong-languages-who-wins-the-fight/#comment-6</link>
		<dc:creator>stephan</dc:creator>
		<pubDate>Mon, 03 Apr 2006 08:25:55 +0000</pubDate>
		<guid isPermaLink="false">http://blog.reposita.org/?p=4#comment-6</guid>
		<description>@Isaac: I think I clearly wrote what I meant with dynamic vs. static, which is

&lt;code&gt;
  String name = "stephan"
&lt;/code&gt;

vs.

&lt;code&gt;
  def name = "stephan"
  ...
  name = new Name("stephan")
&lt;/code&gt;

which doesn't work if the reference is static. 

You're right that we could also distinguish between dyn and stat for compile time and run time, but I consider this not very useful, especially as Java for example does checking at compile and at runtime as do most other "static" languages.</description>
		<content:encoded><![CDATA[<p>@Isaac: I think I clearly wrote what I meant with dynamic vs. static, which is</p>
<p><code><br />
  String name = "stephan"<br />
</code></p>
<p>vs.</p>
<p><code><br />
  def name = "stephan"<br />
  ...<br />
  name = new Name("stephan")<br />
</code></p>
<p>which doesn&#8217;t work if the reference is static. </p>
<p>You&#8217;re right that we could also distinguish between dyn and stat for compile time and run time, but I consider this not very useful, especially as Java for example does checking at compile and at runtime as do most other &#8220;static&#8221; languages.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Isaac Gouy</title>
		<link>http://www.codemonkeyism.com/archives/2006/03/29/weak-versus-strong-languages-who-wins-the-fight/#comment-5</link>
		<dc:creator>Isaac Gouy</dc:creator>
		<pubDate>Sat, 01 Apr 2006 22:09:20 +0000</pubDate>
		<guid isPermaLink="false">http://blog.reposita.org/?p=4#comment-5</guid>
		<description>"the type of references can change"  "the type of a reference is fixed"
This isn't a useful way to categorize programming languages.
There is a universal type and all other types are a subtype of the universal type, so it's both true that  "the type of a reference is fixed" (to the universal type) and the subtype of references can change.

If we want to discuss "dynamic versus static" we need to be clear if we mean dynamic type checking versus static type checking; or do we mean we mean we can execute code generated on-the-fly at runtime; or do we mean...</description>
		<content:encoded><![CDATA[<p>&#8220;the type of references can change&#8221;  &#8220;the type of a reference is fixed&#8221;<br />
This isn&#8217;t a useful way to categorize programming languages.<br />
There is a universal type and all other types are a subtype of the universal type, so it&#8217;s both true that  &#8220;the type of a reference is fixed&#8221; (to the universal type) and the subtype of references can change.</p>
<p>If we want to discuss &#8220;dynamic versus static&#8221; we need to be clear if we mean dynamic type checking versus static type checking; or do we mean we mean we can execute code generated on-the-fly at runtime; or do we mean&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric Armstrong</title>
		<link>http://www.codemonkeyism.com/archives/2006/03/29/weak-versus-strong-languages-who-wins-the-fight/#comment-4</link>
		<dc:creator>Eric Armstrong</dc:creator>
		<pubDate>Fri, 31 Mar 2006 19:07:59 +0000</pubDate>
		<guid isPermaLink="false">http://blog.reposita.org/?p=4#comment-4</guid>
		<description>Nice post! Very good explanations of concepts that not all developers know. It's also helpful to understand the various things that the word "dynamic" can mean.</description>
		<content:encoded><![CDATA[<p>Nice post! Very good explanations of concepts that not all developers know. It&#8217;s also helpful to understand the various things that the word &#8220;dynamic&#8221; can mean.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: stephan</title>
		<link>http://www.codemonkeyism.com/archives/2006/03/29/weak-versus-strong-languages-who-wins-the-fight/#comment-3</link>
		<dc:creator>stephan</dc:creator>
		<pubDate>Thu, 30 Mar 2006 07:59:03 +0000</pubDate>
		<guid isPermaLink="false">http://blog.reposita.org/?p=4#comment-3</guid>
		<description>Well, as I tried to make clear, the dynamic versus static discussion is not only about type-safety. 

"If someone uses this phrase, be sure to ask them to define it for you. (For amusement, watch them squirm.)"

Yes that usually happens.  Then ask them, if "type inference" is "strong typing".</description>
		<content:encoded><![CDATA[<p>Well, as I tried to make clear, the dynamic versus static discussion is not only about type-safety. </p>
<p>&#8220;If someone uses this phrase, be sure to ask them to define it for you. (For amusement, watch them squirm.)&#8221;</p>
<p>Yes that usually happens.  Then ask them, if &#8220;type inference&#8221; is &#8220;strong typing&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Isaac Gouy</title>
		<link>http://www.codemonkeyism.com/archives/2006/03/29/weak-versus-strong-languages-who-wins-the-fight/#comment-2</link>
		<dc:creator>Isaac Gouy</dc:creator>
		<pubDate>Wed, 29 Mar 2006 17:15:23 +0000</pubDate>
		<guid isPermaLink="false">http://blog.reposita.org/?p=4#comment-2</guid>
		<description>Just follow textbook definitions and avoid the confusion: type-safety.

'So what is "strong typing"? This appears to be a meaningless phrase, and people often use it in a non-sensical fashion. To some it seems to mean "The language has a type checker". To others it means "The language is sound" (that is, the type checker and run-time system are related). To most, it seems to just mean, "A language like Pascal, C or Java, related in a way I can't quite make precise". If someone uses this phrase, be sure to ask them to define it for you. (For amusement, watch them squirm.)

p263 "Programming Languages: Application and Interpretation" 
http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/</description>
		<content:encoded><![CDATA[<p>Just follow textbook definitions and avoid the confusion: type-safety.</p>
<p>&#8216;So what is &#8220;strong typing&#8221;? This appears to be a meaningless phrase, and people often use it in a non-sensical fashion. To some it seems to mean &#8220;The language has a type checker&#8221;. To others it means &#8220;The language is sound&#8221; (that is, the type checker and run-time system are related). To most, it seems to just mean, &#8220;A language like Pascal, C or Java, related in a way I can&#8217;t quite make precise&#8221;. If someone uses this phrase, be sure to ask them to define it for you. (For amusement, watch them squirm.)</p>
<p>p263 &#8220;Programming Languages: Application and Interpretation&#8221;<br />
<a href="http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/" rel="nofollow">http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>
