<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: [DrunkAndRetired.com Podcast] Episode 104 &#8211; Mighty Mouse, Java 7.0 Wishlist</title>
	<atom:link href="http://drunkandretired.com/2007/08/12/drunkandretiredcom-podcast-episode-104-mighty-mouse-java-70-wishlist/feed/" rel="self" type="application/rss+xml" />
	<link>http://drunkandretired.com/2007/08/12/drunkandretiredcom-podcast-episode-104-mighty-mouse-java-70-wishlist/</link>
	<description>Est. 2000</description>
	<lastBuildDate>Thu, 09 Feb 2012 17:59:16 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Kevin Wong</title>
		<link>http://drunkandretired.com/2007/08/12/drunkandretiredcom-podcast-episode-104-mighty-mouse-java-70-wishlist/#comment-2796</link>
		<dc:creator><![CDATA[Kevin Wong]]></dc:creator>
		<pubDate>Mon, 29 Oct 2007 19:49:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.drunkandretired.com/2007/08/12/drunkandretiredcom-podcast-episode-104-mighty-mouse-java-70-wishlist/#comment-2796</guid>
		<description><![CDATA[FYI, EasyMock now allows mocking of classes.

Also, this interface thing Charles wants sounds like Traits in Scala.  I think traits are interfaces that can also contain some implementation details.  Thus, a class that extends a base class can gain canned implementation details by implementing one or more Traits; this provides code reuse that would otherwise require multiple-inheritance.]]></description>
		<content:encoded><![CDATA[<p>FYI, EasyMock now allows mocking of classes.</p>
<p>Also, this interface thing Charles wants sounds like Traits in Scala.  I think traits are interfaces that can also contain some implementation details.  Thus, a class that extends a base class can gain canned implementation details by implementing one or more Traits; this provides code reuse that would otherwise require multiple-inheritance.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Cote'</title>
		<link>http://drunkandretired.com/2007/08/12/drunkandretiredcom-podcast-episode-104-mighty-mouse-java-70-wishlist/#comment-2785</link>
		<dc:creator><![CDATA[Cote']]></dc:creator>
		<pubDate>Mon, 27 Aug 2007 16:06:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.drunkandretired.com/2007/08/12/drunkandretiredcom-podcast-episode-104-mighty-mouse-java-70-wishlist/#comment-2785</guid>
		<description><![CDATA[Jim: Thanks for the note. Episodes 1-18 didn&#039;t have a pubDate (meaning they had no date listed in the RSS feed), so I assume Yahoo! Pipes or someone was interesting &quot;today&quot; as the date. I just added in an old date to each of those episodes. There might be another hiccup in downloading, but it should keep them from being downloaded or thought of as new from now on.]]></description>
		<content:encoded><![CDATA[<p>Jim: Thanks for the note. Episodes 1-18 didn&#8217;t have a pubDate (meaning they had no date listed in the RSS feed), so I assume Yahoo! Pipes or someone was interesting &#8220;today&#8221; as the date. I just added in an old date to each of those episodes. There might be another hiccup in downloading, but it should keep them from being downloaded or thought of as new from now on.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Neil Bartlett</title>
		<link>http://drunkandretired.com/2007/08/12/drunkandretiredcom-podcast-episode-104-mighty-mouse-java-70-wishlist/#comment-2795</link>
		<dc:creator><![CDATA[Neil Bartlett]]></dc:creator>
		<pubDate>Fri, 24 Aug 2007 16:42:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.drunkandretired.com/2007/08/12/drunkandretiredcom-podcast-episode-104-mighty-mouse-java-70-wishlist/#comment-2795</guid>
		<description><![CDATA[&quot;You can never be changed&quot;?? Hello? I mean THEY can never be changed. Sorry, the pubes in my keyboard were interfering with the grammar centres of my brain.]]></description>
		<content:encoded><![CDATA[<p>&#8220;You can never be changed&#8221;?? Hello? I mean THEY can never be changed. Sorry, the pubes in my keyboard were interfering with the grammar centres of my brain.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Neil Bartlett</title>
		<link>http://drunkandretired.com/2007/08/12/drunkandretiredcom-podcast-episode-104-mighty-mouse-java-70-wishlist/#comment-2793</link>
		<dc:creator><![CDATA[Neil Bartlett]]></dc:creator>
		<pubDate>Fri, 24 Aug 2007 16:39:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.drunkandretired.com/2007/08/12/drunkandretiredcom-podcast-episode-104-mighty-mouse-java-70-wishlist/#comment-2793</guid>
		<description><![CDATA[The real problem with interfaces is that, as soon as they become part of a public API, you can never be changed. For example if you add a method, all of the people who&#039;ve implemented the interface now have to provide an implementation of the method.

This leads to some really nasty practices. Take a look in the Eclipse APIs for example, you&#039;ll find an interface called IActionDelegate and another one called IActionDelegate2 which extends IActionDelegate and adds some methods. The worst aspect of this is that the API code in Eclipse has to take in instances of IActionDelegate, and then use an &quot;instanceof IActionDelegate2&quot; to see whether it&#039;s possible to call the newer methods.

Incidentally, some people would see this mess as a good argument for dynamic languages -- after all this wouldn&#039;t happen in Ruby with duck typing, right? However, I think it&#039;s an argument for making Java&#039;s typing system less broken. Scala, for instance, is a statically typed language but its type system actually works.]]></description>
		<content:encoded><![CDATA[<p>The real problem with interfaces is that, as soon as they become part of a public API, you can never be changed. For example if you add a method, all of the people who&#8217;ve implemented the interface now have to provide an implementation of the method.</p>
<p>This leads to some really nasty practices. Take a look in the Eclipse APIs for example, you&#8217;ll find an interface called IActionDelegate and another one called IActionDelegate2 which extends IActionDelegate and adds some methods. The worst aspect of this is that the API code in Eclipse has to take in instances of IActionDelegate, and then use an &#8220;instanceof IActionDelegate2&#8243; to see whether it&#8217;s possible to call the newer methods.</p>
<p>Incidentally, some people would see this mess as a good argument for dynamic languages &#8212; after all this wouldn&#8217;t happen in Ruby with duck typing, right? However, I think it&#8217;s an argument for making Java&#8217;s typing system less broken. Scala, for instance, is a statically typed language but its type system actually works.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jim</title>
		<link>http://drunkandretired.com/2007/08/12/drunkandretiredcom-podcast-episode-104-mighty-mouse-java-70-wishlist/#comment-2794</link>
		<dc:creator><![CDATA[Jim]]></dc:creator>
		<pubDate>Thu, 23 Aug 2007 14:39:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.drunkandretired.com/2007/08/12/drunkandretiredcom-podcast-episode-104-mighty-mouse-java-70-wishlist/#comment-2794</guid>
		<description><![CDATA[It looks like you are doing your audio only feed through Yahoo Pipes.  For some reason, it keeps showing episodes 01 through 18 as being published at 7:25am of every day (and just those episodes).

I am using Rhythmbox on Linux, so maybe that&#039;s why.  I notice similar behavior when using PenguinTV.]]></description>
		<content:encoded><![CDATA[<p>It looks like you are doing your audio only feed through Yahoo Pipes.  For some reason, it keeps showing episodes 01 through 18 as being published at 7:25am of every day (and just those episodes).</p>
<p>I am using Rhythmbox on Linux, so maybe that&#8217;s why.  I notice similar behavior when using PenguinTV.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nasty Dude</title>
		<link>http://drunkandretired.com/2007/08/12/drunkandretiredcom-podcast-episode-104-mighty-mouse-java-70-wishlist/#comment-2784</link>
		<dc:creator><![CDATA[Nasty Dude]]></dc:creator>
		<pubDate>Mon, 20 Aug 2007 17:35:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.drunkandretired.com/2007/08/12/drunkandretiredcom-podcast-episode-104-mighty-mouse-java-70-wishlist/#comment-2784</guid>
		<description><![CDATA[It&#039;s a pity that your guest doesn&#039;t have any manners.

He interrupts and even takes a personal cell phone call in the middle of the conversation.

It&#039;s a pity.

Congratulations to you, though.]]></description>
		<content:encoded><![CDATA[<p>It&#8217;s a pity that your guest doesn&#8217;t have any manners.</p>
<p>He interrupts and even takes a personal cell phone call in the middle of the conversation.</p>
<p>It&#8217;s a pity.</p>
<p>Congratulations to you, though.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Charles Lowell</title>
		<link>http://drunkandretired.com/2007/08/12/drunkandretiredcom-podcast-episode-104-mighty-mouse-java-70-wishlist/#comment-2792</link>
		<dc:creator><![CDATA[Charles Lowell]]></dc:creator>
		<pubDate>Thu, 16 Aug 2007 19:14:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.drunkandretired.com/2007/08/12/drunkandretiredcom-podcast-episode-104-mighty-mouse-java-70-wishlist/#comment-2792</guid>
		<description><![CDATA[@Neal: I watched your presentation a few months ago and was mightily impressed.

I&#039;ll get right on the fact checking department here at drunkandretired.com for allowing these slips to contaminate the high quality of journalism our listeners have come to expect ;)

In any case, keep up the good work, and if your proposal doesn&#039;t make it into java 7, rest easy knowing that we think it should!]]></description>
		<content:encoded><![CDATA[<p>@Neal: I watched your presentation a few months ago and was mightily impressed.</p>
<p>I&#8217;ll get right on the fact checking department here at drunkandretired.com for allowing these slips to contaminate the high quality of journalism our listeners have come to expect ;)</p>
<p>In any case, keep up the good work, and if your proposal doesn&#8217;t make it into java 7, rest easy knowing that we think it should!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Neal Gafter</title>
		<link>http://drunkandretired.com/2007/08/12/drunkandretiredcom-podcast-episode-104-mighty-mouse-java-70-wishlist/#comment-2790</link>
		<dc:creator><![CDATA[Neal Gafter]]></dc:creator>
		<pubDate>Thu, 16 Aug 2007 18:03:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.drunkandretired.com/2007/08/12/drunkandretiredcom-podcast-episode-104-mighty-mouse-java-70-wishlist/#comment-2790</guid>
		<description><![CDATA[Regarding closures. This is my baby, but I&#039;m at Google, not Sun. It&#039;s not supported by Google&#039;s JCP representative. Whether or not it will be included in JDK7 is up to Sun, but Sun hasn&#039;t yet published the platform JSR for JDK7.]]></description>
		<content:encoded><![CDATA[<p>Regarding closures. This is my baby, but I&#8217;m at Google, not Sun. It&#8217;s not supported by Google&#8217;s JCP representative. Whether or not it will be included in JDK7 is up to Sun, but Sun hasn&#8217;t yet published the platform JSR for JDK7.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex Miller</title>
		<link>http://drunkandretired.com/2007/08/12/drunkandretiredcom-podcast-episode-104-mighty-mouse-java-70-wishlist/#comment-2781</link>
		<dc:creator><![CDATA[Alex Miller]]></dc:creator>
		<pubDate>Wed, 15 Aug 2007 15:17:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.drunkandretired.com/2007/08/12/drunkandretiredcom-podcast-episode-104-mighty-mouse-java-70-wishlist/#comment-2781</guid>
		<description><![CDATA[I posted some comments on my blog which will presumably trackback to here soon.  But if you&#039;re interested in Java 7 stuff, check out my &lt;a href=&quot;http://tech.puredanger.com/java7&quot; rel=&quot;nofollow&quot;&gt;Java 7 page&lt;/a&gt;, which lists every proposal and interesting article I&#039;ve found on Java 7.]]></description>
		<content:encoded><![CDATA[<p>I posted some comments on my blog which will presumably trackback to here soon.  But if you&#8217;re interested in Java 7 stuff, check out my <a href="http://tech.puredanger.com/java7" rel="nofollow">Java 7 page</a>, which lists every proposal and interesting article I&#8217;ve found on Java 7.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Charles Lowell</title>
		<link>http://drunkandretired.com/2007/08/12/drunkandretiredcom-podcast-episode-104-mighty-mouse-java-70-wishlist/#comment-2789</link>
		<dc:creator><![CDATA[Charles Lowell]]></dc:creator>
		<pubDate>Wed, 15 Aug 2007 11:29:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.drunkandretired.com/2007/08/12/drunkandretiredcom-podcast-episode-104-mighty-mouse-java-70-wishlist/#comment-2789</guid>
		<description><![CDATA[@mikew: As They Might Be Giants famously sang in &#039;Spider&#039;: &quot;I promise not to kill you....&quot;

First, using a property-read to generate a side effect other than auditting is almost always totally bogus. I think your delphi experience was abuse of properties, and not an intrinsic flaw in properties.

More generally, I guess the point I was trying to get at with my rant on properties, and then later about doing away with interface impl separation (at least from the perspective of a reference holder) is that I think *everything* should be a reference to an interface. Thus, there is no such thing as a &quot;member variable.&quot; That&#039;s implementation specific, all you know is that there is an interface to get a value called &quot;width&quot; from a Window. How it is stored, where it is stored and how often it is recalculated is not your business.

As for straight forward public member variables, I agree, they do have their place, but inevitably you&#039;re going to want to &quot;upgrade&quot; some of them at some point. Trust me on this one, I&#039;ve made 3 major attempts in Java to systematically use public member variables as a stand in for properties in the last year and all of them have failed spectacularly.]]></description>
		<content:encoded><![CDATA[<p>@mikew: As They Might Be Giants famously sang in &#8216;Spider&#8217;: &#8220;I promise not to kill you&#8230;.&#8221;</p>
<p>First, using a property-read to generate a side effect other than auditting is almost always totally bogus. I think your delphi experience was abuse of properties, and not an intrinsic flaw in properties.</p>
<p>More generally, I guess the point I was trying to get at with my rant on properties, and then later about doing away with interface impl separation (at least from the perspective of a reference holder) is that I think *everything* should be a reference to an interface. Thus, there is no such thing as a &#8220;member variable.&#8221; That&#8217;s implementation specific, all you know is that there is an interface to get a value called &#8220;width&#8221; from a Window. How it is stored, where it is stored and how often it is recalculated is not your business.</p>
<p>As for straight forward public member variables, I agree, they do have their place, but inevitably you&#8217;re going to want to &#8220;upgrade&#8221; some of them at some point. Trust me on this one, I&#8217;ve made 3 major attempts in Java to systematically use public member variables as a stand in for properties in the last year and all of them have failed spectacularly.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

