I am a functionnal programming zealot too (although I am mostly doing rust these days) but I think it is less about procedural vs functional than it is about the abstractions used and the overall "power" (as in, it does a lot of work for you) of the compiler. My argument is that a more generic but extremely powerful compiler (because it had more work and iteration that went into it) will beat any specialized poorly made compiler any days.
Python, Rust, Typescript, Scala, etc, etc... they all support lambdas in one way or another and have reached some kind of local optimal for the tradeoff that they are making. My claim is that you are never better off these days inventing a non-embedded DSL, and if embedded DSL you build, do it as a simple library in one of the nice modern language.
These modern languages with lambdas are what enable writing in a functional style. One can choose to use single-assignment 'var's and map/filter etc, at that point you're not using the procedural aspect of the language which is great, but why not start with a language that more than allows it.
I have to disagree here. Most of the popular languages are procedural and is mere evolution of writing for a machine--machine code, assembly, C, and scripting languages have the same structure.
I fully support new program building systems that breakaway from this. It could be in the form of DSLs (in particular declarative), visual programming, Excel formulas. This is still a kind of code, but not the procedural code which I think includes many incidental complexities not inherent to problems to be solved.