Continued from NodeJsAndHofDiscussion, which is growing TooBigToEdit. The desktop applications mostly used OOP for their GUI eventing, not HOF's. And if you want to sell NodeJS to wider audiences, you better get better examples. ''Sure, OOP for GUI eventing is fine, though the anonymous classes with a single function that are pervasive in (say) Java would be syntactically cleaner with HOFs and soon will be, given that Java 8 supports lambdas. By the way, I don't want to sell NodeJs to anyone. I'm not a salesman (well, any more -- I have been), I have no interest in sales. There is no "wider audience" for NodeJs, beyond those who need to create event-driven, responsive, highly-concurrent user interfaces. I'm sure that audience can find their way to NodeJs without my help.'' "Syntactically cleaner" is often in the eye of the beholder. ''That may be true in some general sense, but I think there are few who would argue that a traditional, idiomatic Java event handler like the following...'' myButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { myLaunch(e.getWhen()); } }); ''...is even as clean as -- let alone syntactically cleaner than -- the same code using a Java 8 lambda:'' myButton.addActionListener(e -> myLaunch(e.getWhen())); What's wrong with: