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:
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.
Closures will make code easier to read. Only the staunchly conservative Java guys argue against that.
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.
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.
I have absolutely no idea what his conclusion even means. Experts will become average? What?
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.