On The Virtues of Functional Abstraction


Joel Spolsky, who I interviewed for IT Conversations last year is talking about virtues of first-class functions and their positive impact on functional abstraction.

Ok. I hope you're convinced, by now, that programming languages with first-class functions let you find more opportunities for abstraction, which means your code is smaller, tighter, more reusable, and more scalable. Lots of Google applications use MapReduce and they all benefit whenever someone optimizes it or fixes bugs.
From Joel on Software
Referenced Mon Aug 07 2006 14:36:35 GMT-0600 (MDT)

When I make students learn Scheme in CS330, it's often the first language they've used that has first-class functions. Even if they have used a language (like JavaScript) that has them, they've likely not taken advantage of them.

Joel points to Steve Yegge's post from earlier this year calling Java a kingdom of nouns. That's an apt description and explains why many programmers are leery of functional abstraction. They've grown up in a programming world that emphasized nouns over verbs at every turn. Steve's essay is masterful and one that I'll require CS330 students to read this fall.