Achieving Closure

Neal Gafter and Peter Ahe have both blogged about the new proposal for adding closures to the Java programming language.
One question that naturally arises is "what took you so long?".
I personally argued for adding closures since 1997/98. My blood pressure still rises measurably when I recall the response I got at the time: "Our customers aren't asking for it, so why add it?". Explaining that people usually ask for minor increments to what they know (e.g., they never asked for Java or for garbage collection) availed me naught.
I've learned that moving the world forward is an agonizingly slow process. Like the giant rat of sumatra, closures seemed to be a story for which the world was not yet prepared.
In the intervening decade, the widespread adoption of scripting languages has exposed a lot of people to the idea of first class functions. It has also shown that another argument used against closures - that they are too abstract for ordinary programmers - is just as imbecilic as the one about customer demand.
The fact that C# is moving in the same direction also helps create awareness of closure. We don't necessarily want to emulate C#, but I believe the case for closures stands on its own merits. The fact that C# is doing something is not an argument why we shouldn't.
Since the late 90s, I've brought the topic up now and again. At times, even I have reluctantly been convinced that it is too late, because we've done so many things that would have been easy with closures in different ways. This means the benefits aren't as high as in a language like Scheme, or Self, or Smalltalk. The cost is non-trivial, to be sure. There are still some who argue his point right now.
However, the need for closures keeps coming up. Nothing has been decided yet - we're starting a discussion here - but I am optimistic.
Comments:

Post a Comment:
Comments are closed for this entry.
About

gbracha

Search

Categories
Archives
« July 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
  
       
Today
Feeds