<?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: Make static typing work for you</title>
	<atom:link href="http://tech.puredanger.com/index.php/2007/05/25/make-strong-typing-work-for-you/feed/" rel="self" type="application/rss+xml" />
	<link>http://tech.puredanger.com/2007/05/25/make-strong-typing-work-for-you/</link>
	<description>Alex Miller&#039;s technical blog</description>
	<lastBuildDate>Mon, 06 Feb 2012 19:39:50 -0800</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
	<item>
		<title>By: Alex Miller - Dependency Injection and Type Safety</title>
		<link>http://tech.puredanger.com/2007/05/25/make-strong-typing-work-for-you/comment-page-1/#comment-29500</link>
		<dc:creator>Alex Miller - Dependency Injection and Type Safety</dc:creator>
		<pubDate>Thu, 28 Feb 2008 03:30:16 +0000</pubDate>
		<guid isPermaLink="false">http://tech.puredanger.com/2007/05/25/make-strong-typing-work-for-you/#comment-29500</guid>
		<description>[...] To me, one of the things that Java is really good at it is static typing. If you&#8217;re going to use Java to build your system, especially Java 5+ with generics and annotations, you should leverage the heck out of it. Otherwise, why are you using Java anyways? My feeling is that Guice was created in this spirit. [...]</description>
		<content:encoded><![CDATA[<p>[...] To me, one of the things that Java is really good at it is static typing. If you&#8217;re going to use Java to build your system, especially Java 5+ with generics and annotations, you should leverage the heck out of it. Otherwise, why are you using Java anyways? My feeling is that Guice was created in this spirit. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stephan Schmidt</title>
		<link>http://tech.puredanger.com/2007/05/25/make-strong-typing-work-for-you/comment-page-1/#comment-3871</link>
		<dc:creator>Stephan Schmidt</dc:creator>
		<pubDate>Sun, 27 May 2007 09:34:52 +0000</pubDate>
		<guid isPermaLink="false">http://tech.puredanger.com/2007/05/25/make-strong-typing-work-for-you/#comment-3871</guid>
		<description>Sorry for all the typos :-)

And poeple often think that languages with static references always look like Java where you have to declare those. Other languages with static references can infer them from the programm and developers don&#039;t need to declare them (think Haskell, Scala). But I think it&#039;s a good practice to declare them, this documents the developers intent and most developers don&#039;t like to document their code. So every documentation the compiler forces on developers, is a good thing :-)</description>
		<content:encoded><![CDATA[<p>Sorry for all the typos :-)</p>
<p>And poeple often think that languages with static references always look like Java where you have to declare those. Other languages with static references can infer them from the programm and developers don&#8217;t need to declare them (think Haskell, Scala). But I think it&#8217;s a good practice to declare them, this documents the developers intent and most developers don&#8217;t like to document their code. So every documentation the compiler forces on developers, is a good thing :-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stephan Schmidt</title>
		<link>http://tech.puredanger.com/2007/05/25/make-strong-typing-work-for-you/comment-page-1/#comment-3870</link>
		<dc:creator>Stephan Schmidt</dc:creator>
		<pubDate>Sun, 27 May 2007 09:31:13 +0000</pubDate>
		<guid isPermaLink="false">http://tech.puredanger.com/2007/05/25/make-strong-typing-work-for-you/#comment-3870</guid>
		<description>@Ricky:

&quot;Be careful on your terminology - strong typing doesn’t mean the same thing as static typing. Ruby and Lisp are strongly-typed languages,&quot;

The biggest problem with typing terminology is that people don&#039;t distinguish between reference typing and object typing. In Java objects are static typed and references ar static typed. In some languages, especially dynamic languages, references are dynamic, they can change or are not typed at all. The same goes for objects, which can by dynamic typed (JS might be an example) or static typed (I think Python falls in this category). Ruby has static typed objects, but they can be changed, so someone can argue they are dynamic typed too. People often call static/static systems strong and dynamic/static and dynamic/dynamic systems weak  (The combination static/dynamic doesn&#039;t work).</description>
		<content:encoded><![CDATA[<p>@Ricky:</p>
<p>&#8220;Be careful on your terminology &#8211; strong typing doesn’t mean the same thing as static typing. Ruby and Lisp are strongly-typed languages,&#8221;</p>
<p>The biggest problem with typing terminology is that people don&#8217;t distinguish between reference typing and object typing. In Java objects are static typed and references ar static typed. In some languages, especially dynamic languages, references are dynamic, they can change or are not typed at all. The same goes for objects, which can by dynamic typed (JS might be an example) or static typed (I think Python falls in this category). Ruby has static typed objects, but they can be changed, so someone can argue they are dynamic typed too. People often call static/static systems strong and dynamic/static and dynamic/dynamic systems weak  (The combination static/dynamic doesn&#8217;t work).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kishore Senji</title>
		<link>http://tech.puredanger.com/2007/05/25/make-strong-typing-work-for-you/comment-page-1/#comment-3839</link>
		<dc:creator>Kishore Senji</dc:creator>
		<pubDate>Sat, 26 May 2007 03:31:45 +0000</pubDate>
		<guid isPermaLink="false">http://tech.puredanger.com/2007/05/25/make-strong-typing-work-for-you/#comment-3839</guid>
		<description>I guess it also depends whether the application is customized at the client side or not. If the product needs to be customized by client services then having IoC wired up by configuration files will be much easier for client service guys to not depend on Engineering to customize a service in the field rather than changing java files. 

If the application is a website or a solutions based, then wiring services using annotations or using code is better for all the advantages mentioned in this post.</description>
		<content:encoded><![CDATA[<p>I guess it also depends whether the application is customized at the client side or not. If the product needs to be customized by client services then having IoC wired up by configuration files will be much easier for client service guys to not depend on Engineering to customize a service in the field rather than changing java files. </p>
<p>If the application is a website or a solutions based, then wiring services using annotations or using code is better for all the advantages mentioned in this post.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott Bale</title>
		<link>http://tech.puredanger.com/2007/05/25/make-strong-typing-work-for-you/comment-page-1/#comment-3834</link>
		<dc:creator>Scott Bale</dc:creator>
		<pubDate>Fri, 25 May 2007 20:09:14 +0000</pubDate>
		<guid isPermaLink="false">http://tech.puredanger.com/2007/05/25/make-strong-typing-work-for-you/#comment-3834</guid>
		<description>Thanks.  I&#039;ve been working on a servlet project where I&#039;m doing something similar in the deployment descriptor: I&#039;ve got a bunch of components that can be assembled into a servlet, and I do that in the DD by specifying concrete classnames.  It&#039;s worked pretty well in that the IDE  (IntelliJ) is smart enough to include these strings in refactorings.  My goal wasn&#039;t dynamic reconfiguration without recompile, so maybe there&#039;s a better way.  In any case the DD felt like the natural place to put this information since so much configuration info lives there anyway.</description>
		<content:encoded><![CDATA[<p>Thanks.  I&#8217;ve been working on a servlet project where I&#8217;m doing something similar in the deployment descriptor: I&#8217;ve got a bunch of components that can be assembled into a servlet, and I do that in the DD by specifying concrete classnames.  It&#8217;s worked pretty well in that the IDE  (IntelliJ) is smart enough to include these strings in refactorings.  My goal wasn&#8217;t dynamic reconfiguration without recompile, so maybe there&#8217;s a better way.  In any case the DD felt like the natural place to put this information since so much configuration info lives there anyway.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

