« On Common Lisp "style" | Main | Wilbur2 or "did I mention I am not sure I like CVS very much" »


April 1st: Functional vs. imperative style - confusion prevails?

I noticed this post on gmane.comp.lang.lightweight (note: on April 1st), titled "Lambda the Ultimate Design Flaw", written by Shriram Krishnamurthi. The article discusses the future of the PLT Scheme. Here's an excerpt:

We think dropping FILTER and MAP is pretty uncontroversial; (filter P S) is almost always written clearer as a DO loop (plus the LAMBDA is slower than the loop). Even more so for (map F S). In all cases, writing the equivalent imperative program is clearly beneficial.

There's actually a serious point buried here. Generally, when most programmers only know Java etc., functional style might be undesirable (as a knee-jerk reaction). But I think this is more a problem with all the imperative languages that dominate the software business rather than with functional style per se.

The post continues:

Why drop LAMBDA? Most Scheme users are unfamiliar with Alonzo Church (indeed, they don't even know that he was related to Guy Steele), so the name is confusing; also, there is a widespread misunderstanding that LAMBDA can do things that a nested function can't -- we still recall Dan Friedman's Aha! after we showed him that there was no difference! (However, he appears to have since lapsed in his ways.) Even with a better name, we think having the two choices side-by-side just requires programmers to think about their program; not having the choice streamlines the thought process, and Scheme is designed from the ground up to, as much as possible, keep programmers from thinking at all.

The idea of non-thinking programmers is truly frightening. :-)

Posted by ora at 09:33