The main thing Joe Developer lacks to do parallel programming is massively parallel hardware, and if he's happy with just getting a 100× speedup with GPGPU hacking, maybe he doesn't even lack that. High-performance parallel programming has very little to do with functional programming languages, today and in the foreseeable future.
And please, PHP and MySQL? For computation? Are you serious?
What do you think people use PHP and MySQL for, fertilizing flowerpots? Computation is all they do! Obviously the PHP5 interpreter isn't the most computationally efficient medium in the world, but it's where it's at when it comes to horizontal web site scaling, i.e. parallelism.
I keep saying this, there is more to computing than websites. I completely concede your point that F#/OCaml/FP in general has little to offer when it comes to serving up web pages more quicky. Formatting records from a database for display on a client device isn't all that different since the 80s anyway. Fortunately, I don't care about doing that. I care about, for example, people not trying to do Monte Carlo work in Java because that's the organization's "standard" language. A language like F# that it is acceptable to use in a large organization with arbitrary standards made by non-technical people is a huge deal.
I keep saying this, there is more to computing than websites.
I'm aware of that; I wasn't suggesting that people should be programming their websites in Verilog, after all. But running websites is part of computing.
I completely concede your point that F#/OCaml/FP in general has little to offer when it comes to serving up web pages more quickly.
That wasn't my point; I think functional programming might have a lot to offer when it comes to serving up web pages more quickly, and especially programming web-server software more easily. My point was that functional programming doesn't have a lot to offer when it comes to making your code more parallel.
Formatting records from a database for display on a client device isn't all that different since the 80s anyway.
I cannot imagine in what sense this sentence could be true. The database architectures, the languages used, the required level of efficiency, the CPU architectures, the scale of operations, the kinds of failure we expect from components, the structure of the machines (then SMP mainframes, now shared-nothing clusters of thousands of computers), the type of people doing it, the client devices, the networks, the formatting, and the nature of the data have all changed dramatically since the 80s.
I care about, for example, people not trying to do Monte Carlo work in Java because that's the organization's "standard" language. A language like F# that it is acceptable to use in a large organization with arbitrary standards made by non-technical people is a huge deal.
Do you think doing Monte Carlo work in Java is bad? Because of performance? Last I heard, the optimizations in the CLR's JIT were pretty minimal, while the Java JITs had pretty much reached parity with GCC and were breathing down icc's neck. (What Fortran compilers do people use these days?) Maybe you should get excited about people doing Monte Carlo work in Scala instead?
Anyway, whether a language is pleasant to program in or has a good compiler has very little to do with whether it helps you take advantage of available hardware parallelism — unless the way in which the compiler is good is that it auto-vectorizes your loops or supports HPF directives or something. As far as I know, F# and Java are equally abysmal at that.
And please, PHP and MySQL? For computation? Are you serious?
What do you think people use PHP and MySQL for, fertilizing flowerpots? Computation is all they do! Obviously the PHP5 interpreter isn't the most computationally efficient medium in the world, but it's where it's at when it comes to horizontal web site scaling, i.e. parallelism.