Lisp variants can be seen as a scripting language equivalent -- with efficient compilation. It was (and still is, to a large degree) an obvious win compared to Perl/Ruby/etc.
Academic stigma and/or culture clash with scripting users is what I'd guess. Or maybe it just is lack of hype?
But I don't expect to see an explanation. It is a larger mystery than dark energy to at least me -- why didn't lisp take over the world 10-15 years ago when the scripting languages started going?!
Edit: pjmlp, I talked about the last 10-15 years and compared with scripting languages, so hardware/AI winter/IDE are earlier/later problems. (Today, a lack of libraries might be the worst problem, except for Clojure(?).)
"- Most blue collar developers don't understand FP concepts"
HAHAHA! The vast majority of FP advocates are either unemployed or work as math teachers.
Like it or hate it, FP is absolutely nothing more than a pseudo-programming paradigm (largely emulating some concepts from astract math and using notation somewhat similar to math notation) that attracts people who can't wrap their heads around OOP, rich frameworks and other associated stuff. Sorry folks, computers are neither abstract nor stateless. And the same holds true for software, which often deals with real world stuff, which again, is neither abstract nor stateless. Virtually everything that can be done in a functional language, can also be done in a procedural or OOP language. The opposite on the other hand is totally untrue. It's really funny to see how FP advocates struggle even with some extremely basic things. Using languages/platforms like C/C++, Java,.Net - there's always an increase in performance compared to any functional language (yeah, including scala, f#, clojure ocaml an so on)
The "elegant code" argument is one of the most ridiculous things FP advocated come with, since it's almost always synonymous with crappy, cryptic code that no one wants to read besides its authors (maybe not even them after a few weeks or months) :D
So I'm afraid that the FP advocates are far worse than real blue collar workers.
"Sorry folks, computers are neither abstract nor stateless."
It's true. But you know what computers are first and foremost? They're deterministic.
And you know what's one the biggest problem programmers do face in the Real-World [TM] when the shit hits the fan (and most devs' jobs is to fix shit that just hit the fan)? It's being able to recreate the state and to then be able to deterministically reproduce the shit that did hit the fan. As to prevent it from hitting the fan again.
Why do we seen market makers using 90 Ocaml programmers and raving about it?
Why do we see investment banks moving from Java to Clojure and slashing their codebase by doing so by a factor of ten? And then explaining how easier their life became in the face of changing requirements (eg new laws/regulations coming in)?
Do you really think that a codebase ten times smaller is "harder to read"? Do you really think that making it easier to reproduce the state is not a goal worthy to achieve?
I realize you feel insecure in your Java/C# + ORM + XML + SQL hell but don't worry: there's always going to be lots of real-world jobs for code monkeys like you ; )
"It's true. But you know what computers are first and foremost? They're deterministic."
That's like saying that computers have mass and are made of matter.
"And you know what's one the biggest problem programmers do face in the Real-World [TM] when the shit hits the fan (and most devs' jobs is to fix shit that just hit the fan)? It's being able to recreate the state and to then be able to deterministically reproduce the shit that did hit the fan. As to prevent it from hitting the fan again."
That's false. Programmers don't have to recreate the same exact state, actually it's not necessary to recreate the error at all in many cases. There are more tools than you can imagine for identifying errors from logging to memory dumpers and analyzers/profilers...
"Why do we seen market makers using 90 Ocaml programmers and raving about it?
Why do we see investment banks moving from Java to Clojure and slashing their codebase by doing so by a factor of ten?"
Well, I'm afraid that happens in your imagination only. I also happen to be a trader. Almost NO ONE uses functional languages (fewer than 0.01 %) for financial trading. The main languages are C/C++ (especially for high frequency trading) and, of course, Java and also .Net.
"I realize you feel insecure in your Java/C# + ORM + XML + SQL hell but don't worry: there's always going to be lots of real-world jobs for code monkeys like you ; )"
You're pretty delusional about how secure or insecure I feel (haha!) and how much of a "codemonkey" I am. LOL! You don't even know me, but you already pretend that you know me. Unfortunately for you(and all those like you), this is a typical characteristic of FP advocates: you live in an illusory world, have a totally distorted view about software engineering and of course about the people who do make real world software. Anyway, it's always funny to see the reactions of FP advocates when they're left without any objective, verifiable, real-world arguments. :D
Your parent implies that not getting functional programming concepts makes one a "blue collar" (i.e., less sophisticated, more commodity) programmer. Presumably, understanding functional programming is one necessary requirement of upgrading to "white collar" (i.e., more sophisticated, less replaceable) programmer.
I'm guessing he's implying that "white collar" programmers have a degree in Computer Science that is heavy in theory (as opposed to being primarily vocational, like, say, the University of Phoenix). Most such curricula will include at least one class that focuses on functional programming. (UC Berkeley teaches their 101 CS class using Scheme!)
The people who care about this distinction are the sort of people who give job interviews where they ask you to implement a balanced binary search tree on the whiteboard and then grill you on the order of growth of each function that you wrote. :-)
"Blue collar" is a common expression to describe developers without CS background, that usually develop CRUD applications and are expected to be easily replaced by management.
Lisp variants can be seen as a scripting language equivalent -- with efficient compilation. It was (and still is, to a large degree) an obvious win compared to Perl/Ruby/etc.
Academic stigma and/or culture clash with scripting users is what I'd guess. Or maybe it just is lack of hype?
But I don't expect to see an explanation. It is a larger mystery than dark energy to at least me -- why didn't lisp take over the world 10-15 years ago when the scripting languages started going?!
Edit: pjmlp, I talked about the last 10-15 years and compared with scripting languages, so hardware/AI winter/IDE are earlier/later problems. (Today, a lack of libraries might be the worst problem, except for Clojure(?).)