Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

Aristotle (5147)


Blah blah blah blah blah []

Journal of Aristotle (5147)

Thursday August 24, 2006
09:51 AM

I’m a lumberjack programmer and I’m okay

[ #30740 ]

Mikael Grev :

Not only are the guys behind the Closure proposal [Ed.: for Java; see Gilad Bracha ] very smart, they are also experts at what they do. Very probably the best in their field. They are also IMO very intelligent, which means they get the grasp of things very quickly, like most of the people hanging out here at [JavaLobby] I guess. The problem is that no one stands up for the normal, averagely smart “Java-Joe”. There is a simple reason for this. He does something else (like having a life, ;)) while we geeks are discussing closures and the fine print of the different syntaxes. The problem with this is that he neither have been involved in the construction of this “feature” nor has he even been asked whether it’s a thing he wants or solves any of the problems he has.

Closures will make the code harder to read. That’s a fact I think no one denies. […]


If we let experts design features for experts, no matter how clever these features are, we will alienate average Joe, and when he jumps ship, the experts will become average…

I don’t even know where to start. I’ll just keep the commentary short and biting:

  1. I hate people who trot out the “geeks who have no life” line. You do that, you’ve very nearly forfeited your argument on the spot as far as I’m concerned. All the geeks I know have a life aplenty.

  2. Closures will make code easier to read. Only the staunchly conservative Java guys argue against that.

  3. If closures are such a problem, why does Java have that baroque feature called anonymous inner classes, which roughly approximate closures? (Horrid syntactical overhead aside.) It has much the same cognitive cost, maybe even higher than closures, particularly considering all the weird special-case rules these inner classes follow.

  4. The byzantine systems built by people who have no passion or propensity for programming are legion. Such systems will be built by these people whatever language they use – even if it’s Sun’s Language Designed And Engineered For 9-To-5 Code Cogs. Why should the cogs’ limitations be a concern if that means constraining the most productive programmers from ever reaching their potential? There will always be 9-to-5 cogs, no matter the perceived complexity of the given language, anyway.

  5. I have absolutely no idea what his conclusion even means. Experts will become average? What?

  6. His fear of the masses of cogs jumping ship reminds me of that old bit of wisdom: First-rate mathematicians want to hang around first-rate mathematicians. Second-rate mathematicians want to hang around third-rate mathematicians.

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • I think he means that the Expert Java Programmers will become the Average Java Programmers because all the rank-and-file will have abandoned Java.
    • That sounds like it's either a good thing, or it really doesn't matter at all.
    • Well yes, that’s the letter of what he says. But what is it supposed to mean? He seems to imply it’s a bad thing somehow, as if the skills of expert Java programmers will diminish or something. That makes no sense.

      His statement is either tautological or nonsensical.

      • I think he's expressing his concerns that the language will become a niche, of only interest to language experts.

        I agree with many of your criticisms of his article, but I think he has a point that is well worth observing in some situations. Sometimes, language designers develop features to please themselves, with little attention to the needs of working programmers.

        I think Hoare (?) observed this long ago stating that no language feature should be standardized until it gets significant practice behind it
  • I do think closures are hard for many people to understand, based on the mistakes I see people make in Perl with them. However, Java inner classes are pretty awful too, possibly worse, and adding closures should not have any effect on people who don't choose to use them.

    Probably the most reasonable argument to not put closures in Java is that Java is all about OO and closures are a different paradigm. If he argued that, I'd have more sympathy.
    • Yeah, I could see that argument. I don’t know if I’d agree with it, but at least it’s sound.

    • I do think closures are hard for many people to understand, based on the mistakes I see people make in Perl with them.

      I think it really depends on what you're used to and how you're taught. I've seen Lisp/Prolog coders having just as much trouble getting their heads around the OO approach. Closure style HOP code isn't harder - it's just sufficiently different that you actually have to learn it. (IMHO anyway :-)