Can we stop with this nonsense? I don't even know what "based on mathematics" means. All programming languages are formal languages, and all formal languages are inspired by mathematics in their design, and we can use mathematical reasoning to reason about them (although the form of mathematical reasoning can differ; pure FP strives to use equational reasoning, while imperative code uses assertional reasoning). While it is true that functional programs bear more resemblance to mathematical notation than imperative programs, but the majority of elementary mathematics cannot be directly expressed in FP in a similar notation -- or in any programming language with some computational complexity features (in the computational, "executable" part of the language; it can be expressed in the specification part, like a type system or a contract system).
E.g. x + 4 = 5 cannot be directly expressed in the computational part of the language, let alone f(x) = 5. Nothing that's nondeterministic can be expressed, either, such as x < 10, or x > y. Some of those can be expressed in logic programming (so it's even more "based on mathematics" than FP!), but at a cost in computational complexity.
But while glibly dismissing silly strawman arguments (which, I assume, some do make), the author contributes some silly claims of his own. For example:
> This has [the] consequence of reducing complexity, and thus reducing the number of bugs.
So, seeing as the author is so interested in precision and mathematics, I'd like to enquire where he pulled this fact from. But let me put this more generally: if pure functional programming has such obvious huge advantages over OOP with a big, real, impact and all, then a curious person with a scientific mind would ask what is the average difference in cost/quality that a company should expect when switching to pure FP? This should be a very easy question, because clear, obvious, large effects are easy to find (in fact, they're hard to hide) even over small samples. If a prediction of an easily observable effect does not turn out an easily observable effect, could there be something wrong with the hypothesis? And if the hypothesis makes a prediction of an effect that is hard to observe in practice, is it really so clear and obvious?