I would like to ask a multi-part, but rhetorical, question of the list:<br><br>Why do you think people stay away from functional programming languages in droves?<br><ol><li>Is it because they're too stupid to understand them?</li>
<li>Is it because of an evil cabal of IT Illuminati who are trying to squelch the true freedom of the programming masses?<br></li><li>Is it because the functional languages available do not seem to meet their needs, whatever those may be?</li>
<li>Is it because the fans of functional languages often come across as religious fanatics preaching the One True Way <tm> of programming?</li><li>Is it some combination of the above?</li></ol><br>My own answer to the question is a #5 with a strong skew toward the higher numbers.<br>
<br>#1 (the one that's becoming uncomfortably common in this thread, albeit with muted wording) is a little too arrogant for my tastes. There are an awful lot of awfully smart people who not only use but <b>make</b> imperative languages out there. I'm not willing to casually dismiss them as too stupid to understand the One True Way of the Lambda. There is something they see in the various stateful, imperative models that seems useful to them. Are you really so smart as to be able to casually dismiss them? If so, may I please read your Ph.D. thesis for the stunning insights into computing and humanity that it undoubtedly contains?<br>
<br>#2 I'm less willing to stray from (with less gonzo wording), although I think the threat is largely overblown. There <b>are</b> indeed vendors of IT products that make a killing from selling methods of complexity management that would not like it if functional languages came on the scene in a big way. (I mean UML--and the multi-billion dollar consulting industry that feeds off it--would be dead overnight.) I'm sure that they do apply some pressures in the form of subtle FUD that keep people hooked on their drug. I don't think, however, that they're as big a force as some people seem to be thinking here.<br>
<br>#3 is the biggest one, I think. Others' needs are not necessarily what you think they are. Business needs, for example, are things like "this software has to hit market in X amount of time". For all the talk of how productive functional programming languages are you are forgetting one important item: the company has trained IT staff familiar with its problem domain and <b>not</b> familiar with functional programming on hand <b>now</b>. They have a choice: retrain their IT staff to do functional programming for dubious (to them) benefits while not making any progress in their products <b>and</b> facing risks of the benefits not materializing; or go with the Devil they know where the risks are (in their minds) known to them. (Another option, of course, is to just dismiss their entire IT staff and replace them with functional programmers who don't know the problem domain. Functional programmers who don't exist in any sufficiently large number to actually do this.)<br>
<br>#4, sadly, comes a disconcertingly close second. Want to see an overblown version of how functional programmers come across at times? Read some of these gems from one of the more outspoken members of the lisp community:<br>
<ul><li><a href="http://groups.google.com/group/comp.lang.lisp/msg/e5af8ef3f88dd39c">http://groups.google.com/group/comp.lang.lisp/msg/e5af8ef3f88dd39c</a></li><li><a href="http://groups.google.com/group/comp.lang.lisp/msg/b8aa5b537cf11bb4?pli=1">http://groups.google.com/group/comp.lang.lisp/msg/b8aa5b537cf11bb4?pli=1</a></li>
<li><a href="http://groups.google.com/group/comp.lang.lisp/msg/7060ad1dc1defc9c">http://groups.google.com/group/comp.lang.lisp/msg/7060ad1dc1defc9c</a></li><li><a href="http://groups.google.com/group/comp.lang.lisp/msg/e65326618bbca892">http://groups.google.com/group/comp.lang.lisp/msg/e65326618bbca892</a></li>
</ul>Keep in mind, too, that this man is <b>lionized</b> by a lot of the people in comp.lang.lisp. Is it really Microsoft and Sun's marketing that makes C# and Java popular? Or is it the behaviour of the other communities that drives away potential converts?<br>