Sunday, August 12th, 2007 at 4:26 pm
[DrunkAndRetired.com Podcast] Episode 104 - Mighty Mouse, Java 7.0 Wishlist
In this episode Coté and Charles talk about the Apple Mighty Mouse, crudded up key-boards, and then get into a Java 7.0 wishlist.
As an admin note, and for those who’ve asked: there are now seperate feeds for audio and video only:
- Video only feed - the same feed as always. If you want to keep getting video, you don’t need to do anything.
- Audio only feed - the new feed. If you want to get only audio, you need to subscribe to this feed.
Popularity: 1% [?]

August 13th, 2007 at 9:31 am
Thanks for adding the audio only feed.
August 13th, 2007 at 11:43 am
Sure thing! Tell me if you have any problems.
August 14th, 2007 at 11:52 am
Just thinking about properties
- One thing that makes me not so sure about properties is that I came across them when maintaining Delphi code a few years ago and remember being confused when trying to debug some strange behaviour because what I assumed to be a member variable turned out to be a property, with an implementation that had some side effect. At least its clear that a getter or a setter is a method and if something strange is happening it might be worth checking whats in the method. I do wonder sometimes if straighforward public member variables don’t have there place sometimes. Perhaps once you get used to them its not a problem, I don’t really have a strong opinion, please don’t kill me.
August 14th, 2007 at 8:36 pm
Hey Cote, If you want a mouse-like device that allows you to map arbitrary keys to its buttons you might want to check out the Griffin PowerMate for your keyboardless reading mode.
August 14th, 2007 at 11:16 pm
Bryan: thanks for the tip. I saw one of those in the Apple store awhile ago and wondered what it was. It’d be handy for movie editing, I’d think.
August 15th, 2007 at 12:52 am
When will the new audio feed be on iTunes?
August 15th, 2007 at 5:29 am
@mikew: As They Might Be Giants famously sang in ‘Spider’: “I promise not to kill you….”
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 “member variable.” That’s implementation specific, all you know is that there is an interface to get a value called “width” 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’re going to want to “upgrade” some of them at some point. Trust me on this one, I’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.
August 15th, 2007 at 9:17 am
I posted some comments on my blog which will presumably trackback to here soon. But if you’re interested in Java 7 stuff, check out my Java 7 page, which lists every proposal and interesting article I’ve found on Java 7.
August 16th, 2007 at 12:03 pm
Regarding closures. This is my baby, but I’m at Google, not Sun. It’s not supported by Google’s JCP representative. Whether or not it will be included in JDK7 is up to Sun, but Sun hasn’t yet published the platform JSR for JDK7.
August 16th, 2007 at 1:14 pm
@Neal: I watched your presentation a few months ago and was mightily impressed.
I’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’t make it into java 7, rest easy knowing that we think it should!
August 20th, 2007 at 11:35 am
It’s a pity that your guest doesn’t have any manners.
He interrupts and even takes a personal cell phone call in the middle of the conversation.
It’s a pity.
Congratulations to you, though.
August 23rd, 2007 at 8:39 am
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’s why. I notice similar behavior when using PenguinTV.
August 24th, 2007 at 10:39 am
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’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’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 “instanceof IActionDelegate2″ to see whether it’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’t happen in Ruby with duck typing, right? However, I think it’s an argument for making Java’s typing system less broken. Scala, for instance, is a statically typed language but its type system actually works.
August 24th, 2007 at 10:42 am
“You can never be changed”?? Hello? I mean THEY can never be changed. Sorry, the pubes in my keyboard were interfering with the grammar centres of my brain.
August 27th, 2007 at 10:06 am
Jim: Thanks for the note. Episodes 1-18 didn’t have a pubDate (meaning they had no date listed in the RSS feed), so I assume Yahoo! Pipes or someone was interesting “today” 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.
October 29th, 2007 at 1:49 pm
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.