Objected Oriented Programming is simply not cutting it anymore, specially when it comes to concurrency and parallelism; trying to add concurrency and parallelism to this languages adds lots of complexity and more often than not leads to over engineering and poor performance.
I don’t believe that’s true. Go is a good example of a non-FP language that works well for concurrent programming. It’s sort of OO with its interfaces feature.
For the vast majority of applications that are written today, concurrency is simply not necessary. Yes, this means that they aren’t exploiting maximum multi-core efficiency, but in the real world of IT, that often doesn’t matter. There are many other pragmatic factors that determine what technology is best used for a given project.
In other words, use the best tool for the job. That tool can be OOP in many instances. That tool can be FP for concurrent situations. FP is not a programming panacea. It is not the universal programming tool.