FP is the future of programming, and always will be.
The argument that many-core will lead to FP adoption used to appeal to me, but then I studied Erlang, and saw that its concurrency power was due to shared-nothing pure-message passing, and not due to it being functional. FP is a way to not need to share memory, but Erlang doesn't actually use that for concurrency. The thinking seems to be that inter-core communication should be coarser-grained (e.g. at the module level, not the level of recursion over a list), because it will always be slower than communication within a core.
Also, surprisingly to me, the over-hyped web services, SOA and ESB etc arguably also aim at pure-message passing concurrency.
The argument that many-core will lead to FP adoption used to appeal to me, but then I studied Erlang, and saw that its concurrency power was due to shared-nothing pure-message passing, and not due to it being functional. FP is a way to not need to share memory, but Erlang doesn't actually use that for concurrency. The thinking seems to be that inter-core communication should be coarser-grained (e.g. at the module level, not the level of recursion over a list), because it will always be slower than communication within a core.
Also, surprisingly to me, the over-hyped web services, SOA and ESB etc arguably also aim at pure-message passing concurrency.