Via Lambda the Ultimate we see Don Box wanting less code to espress a simple concept. This makes sense and corresponds to the conventional wisdom that programmers can get X lines of code running per day no matter what the language.
Reading between the lines the argument is that *explicit* static typing is just not a good idea, period. Dynamic languages and static languages based on type inferencing are the result of taking this direction to the limit.
I am not convinced static typed delegates vs. static typed classes in and of itself is that significant. Why not simply be able to pass methods around as first class objects without having to declare somewhere that it takes no arguments and returns a boolean? In a large post-modern system there will be at least a half dozen different such explicit declarations for programmers to keep track of.
Jython provides an example of how anonymous classes can be replaced by simple functions rather than pre-declared "delegates"...
In Java...
Button button = new Button(parent, style);
button.addActionListener(new ActionListener() {
void actionPerformed(ActionEvent e) {
// Take some action here.
}});
In Jython, this can be replaced with a keyword parameter and function argument...
button = Button(parent, style, actionPerformed=self.actionPerformed)
...
def actionPerformed(self, event):
## Take some action here.
No comments:
Post a Comment