<?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: Correcting the Billion Dollar Mistake</title>
	<atom:link href="http://dow.ngra.de/2009/02/01/correcting-the-billion-dollar-mistake/feed/" rel="self" type="application/rss+xml" />
	<link>http://dow.ngra.de/2009/02/01/correcting-the-billion-dollar-mistake/</link>
	<description>no buzzwords allowed</description>
	<lastBuildDate>Wed, 24 Feb 2010 09:44:02 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Peter Lawrey</title>
		<link>http://dow.ngra.de/2009/02/01/correcting-the-billion-dollar-mistake/comment-page-1/#comment-5824</link>
		<dc:creator>Peter Lawrey</dc:creator>
		<pubDate>Tue, 03 Feb 2009 22:03:06 +0000</pubDate>
		<guid isPermaLink="false">http://dow.ngra.de/?p=628#comment-5824</guid>
		<description>If you read the news these days, losing a 25 million a year for forty years does sound as much as it used to. 8-/
I prefer fail-fast approaches and not having null could have been worse than what we might have had!</description>
		<content:encoded><![CDATA[<p>If you read the news these days, losing a 25 million a year for forty years does sound as much as it used to. 8-/<br />
I prefer fail-fast approaches and not having null could have been worse than what we might have had!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter Lawrey</title>
		<link>http://dow.ngra.de/2009/02/01/correcting-the-billion-dollar-mistake/comment-page-1/#comment-5823</link>
		<dc:creator>Peter Lawrey</dc:creator>
		<pubDate>Tue, 03 Feb 2009 21:59:24 +0000</pubDate>
		<guid isPermaLink="false">http://dow.ngra.de/?p=628#comment-5823</guid>
		<description>I believe JSR-303 suggest @Notnull and @Nullable.
A type which few people consider could be null is enum types. e.g. This can throw an NPE!

switch(myEnum) {
  case ENUM1:

IMHO, Variables/fields/parameters should be &#039;final&#039; and not-null by default and only be non-final and/or nullable if explicitly defined so. (Also fields should private by default)</description>
		<content:encoded><![CDATA[<p>I believe JSR-303 suggest @Notnull and @Nullable.<br />
A type which few people consider could be null is enum types. e.g. This can throw an NPE!</p>
<p>switch(myEnum) {<br />
  case ENUM1:</p>
<p>IMHO, Variables/fields/parameters should be &#8216;final&#8217; and not-null by default and only be non-final and/or nullable if explicitly defined so. (Also fields should private by default)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Shams Mahmood</title>
		<link>http://dow.ngra.de/2009/02/01/correcting-the-billion-dollar-mistake/comment-page-1/#comment-5808</link>
		<dc:creator>Shams Mahmood</dc:creator>
		<pubDate>Tue, 03 Feb 2009 15:22:16 +0000</pubDate>
		<guid isPermaLink="false">http://dow.ngra.de/?p=628#comment-5808</guid>
		<description>@Rickard
I guess we are moving away from the main topic but I&#039;m enjoying this, hence I persist ;). In the case of transfer() the constraints are what is expected of the arguments before transfer() can expect to execute properly. Just like making from non-nullable is a constraint, having from.balance ge amount can be looked upon as a constraint for the caller (deferring responsibility).</description>
		<content:encoded><![CDATA[<p>@Rickard<br />
I guess we are moving away from the main topic but I&#8217;m enjoying this, hence I persist ;). In the case of transfer() the constraints are what is expected of the arguments before transfer() can expect to execute properly. Just like making from non-nullable is a constraint, having from.balance ge amount can be looked upon as a constraint for the caller (deferring responsibility).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kirk</title>
		<link>http://dow.ngra.de/2009/02/01/correcting-the-billion-dollar-mistake/comment-page-1/#comment-5807</link>
		<dc:creator>Kirk</dc:creator>
		<pubDate>Tue, 03 Feb 2009 12:19:27 +0000</pubDate>
		<guid isPermaLink="false">http://dow.ngra.de/?p=628#comment-5807</guid>
		<description>Hey, I was there and I do remember it all :)</description>
		<content:encoded><![CDATA[<p>Hey, I was there and I do remember it all :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jevgeni Kabanov</title>
		<link>http://dow.ngra.de/2009/02/01/correcting-the-billion-dollar-mistake/comment-page-1/#comment-5802</link>
		<dc:creator>Jevgeni Kabanov</dc:creator>
		<pubDate>Tue, 03 Feb 2009 10:57:55 +0000</pubDate>
		<guid isPermaLink="false">http://dow.ngra.de/?p=628#comment-5802</guid>
		<description>@Kirk
Hey, it was you who was late for the talk, not me. Just &#039;cause you cannot remember the previous evening doesn&#039;t mean it never happened :P</description>
		<content:encoded><![CDATA[<p>@Kirk<br />
Hey, it was you who was late for the talk, not me. Just &#8217;cause you cannot remember the previous evening doesn&#8217;t mean it never happened :P</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jevgeni Kabanov</title>
		<link>http://dow.ngra.de/2009/02/01/correcting-the-billion-dollar-mistake/comment-page-1/#comment-5801</link>
		<dc:creator>Jevgeni Kabanov</dc:creator>
		<pubDate>Tue, 03 Feb 2009 10:07:37 +0000</pubDate>
		<guid isPermaLink="false">http://dow.ngra.de/?p=628#comment-5801</guid>
		<description>Apparently JSR 308 already includes compiler inference for @Nullable annotation with non-null default:
http://groups.csail.mit.edu/pag/jsr308/</description>
		<content:encoded><![CDATA[<p>Apparently JSR 308 already includes compiler inference for @Nullable annotation with non-null default:<br />
<a href="http://groups.csail.mit.edu/pag/jsr308/" rel="nofollow">http://groups.csail.mit.edu/pag/jsr308/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stephan Schmidt</title>
		<link>http://dow.ngra.de/2009/02/01/correcting-the-billion-dollar-mistake/comment-page-1/#comment-5800</link>
		<dc:creator>Stephan Schmidt</dc:creator>
		<pubDate>Tue, 03 Feb 2009 10:06:09 +0000</pubDate>
		<guid isPermaLink="false">http://dow.ngra.de/?p=628#comment-5800</guid>
		<description>Yes :-)</description>
		<content:encoded><![CDATA[<p>Yes :-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jevgeni Kabanov</title>
		<link>http://dow.ngra.de/2009/02/01/correcting-the-billion-dollar-mistake/comment-page-1/#comment-5799</link>
		<dc:creator>Jevgeni Kabanov</dc:creator>
		<pubDate>Tue, 03 Feb 2009 10:03:49 +0000</pubDate>
		<guid isPermaLink="false">http://dow.ngra.de/?p=628#comment-5799</guid>
		<description>@Stephan
Nice! I see you&#039;re vouching for the same approach on the 7th slide :)</description>
		<content:encoded><![CDATA[<p>@Stephan<br />
Nice! I see you&#8217;re vouching for the same approach on the 7th slide :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stephan Schmidt</title>
		<link>http://dow.ngra.de/2009/02/01/correcting-the-billion-dollar-mistake/comment-page-1/#comment-5795</link>
		<dc:creator>Stephan Schmidt</dc:creator>
		<pubDate>Tue, 03 Feb 2009 08:27:29 +0000</pubDate>
		<guid isPermaLink="false">http://dow.ngra.de/?p=628#comment-5795</guid>
		<description>BTW Some time ago I held a presentation about

&quot;Better Strategies for Null Handling in Java&quot;

added to SlideShare 5 minutes ago

http://www.slideshare.net/Stephan.Schmidt/better-strategies-for-null-handling-in-java

Stephan

--
Programming is hard - http://blog.codemonkeyism.com
http://twitter.com/codemonkeyism</description>
		<content:encoded><![CDATA[<p>BTW Some time ago I held a presentation about</p>
<p>&#8220;Better Strategies for Null Handling in Java&#8221;</p>
<p>added to SlideShare 5 minutes ago</p>
<p><a href="http://www.slideshare.net/Stephan.Schmidt/better-strategies-for-null-handling-in-java" rel="nofollow">http://www.slideshare.net/Stephan.Schmidt/better-strategies-for-null-handling-in-java</a></p>
<p>Stephan</p>
<p>&#8211;<br />
Programming is hard &#8211; <a href="http://blog.codemonkeyism.com" rel="nofollow">http://blog.codemonkeyism.com</a><br />
<a href="http://twitter.com/codemonkeyism" rel="nofollow">http://twitter.com/codemonkeyism</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kirk</title>
		<link>http://dow.ngra.de/2009/02/01/correcting-the-billion-dollar-mistake/comment-page-1/#comment-5790</link>
		<dc:creator>Kirk</dc:creator>
		<pubDate>Tue, 03 Feb 2009 07:24:34 +0000</pubDate>
		<guid isPermaLink="false">http://dow.ngra.de/?p=628#comment-5790</guid>
		<description>@Attila, The contract is documented, don&#039;t send me a null and if you do, I&#039;ll send you back an NPE. Throwing an NPE instead of an IAE is maybe not ideal but it does simplify many things. The only confusion that I can see is when you try to sort out if the NPE belongs to me or the framework. Traditionally we, as developers, don&#039;t throw NPE. The question is, why not? What in our thinking limits us or prevents us from throwing this exception? If the contract is clear, don&#039;t pass me a null, the exception conveys the problem very clearly.

Jevgeni, I&#039;m sure it took you more than 30 minutes &#039;cos you disappeared after that conversation and I never saw you again. The only way that happens is if you start coding ;-)

Kirk</description>
		<content:encoded><![CDATA[<p>@Attila, The contract is documented, don&#8217;t send me a null and if you do, I&#8217;ll send you back an NPE. Throwing an NPE instead of an IAE is maybe not ideal but it does simplify many things. The only confusion that I can see is when you try to sort out if the NPE belongs to me or the framework. Traditionally we, as developers, don&#8217;t throw NPE. The question is, why not? What in our thinking limits us or prevents us from throwing this exception? If the contract is clear, don&#8217;t pass me a null, the exception conveys the problem very clearly.</p>
<p>Jevgeni, I&#8217;m sure it took you more than 30 minutes &#8216;cos you disappeared after that conversation and I never saw you again. The only way that happens is if you start coding ;-)</p>
<p>Kirk</p>
]]></content:encoded>
	</item>
</channel>
</rss>
