The fact that recursion can compile down to iteration when written in a tail-call manner, while other languages are just providing iteration as a core part of the system, kinda implies that FP isn't "superior in the vast majority of use-cases".
Although, as the ol Verity Stob quote goes "Lisp is still #1 for key algorithmic techniques such as recursion and condescension".
And you're really nailing the latter.
My first impression when I learned about “infinite recursion via TCO” is that it was so much more beautiful semantically than your typical loop
> recursion and condescension
I’ve worked in probably 15+ languages of all types throughout my life since Microsoft BASIC in 1984 when I was 12. If this doesn’t give me the right to assert things like this, then what does?
Perhaps the real problem is that whenever someone mentions “functional languages”, the walls go up, the ears go closed and the baseless presumption of hubris skyrockets.
The fact is that you can use a functional style (and gain the advantages) in any language https://towardsdatascience.com/why-developers-are-falling-in... , you just lose the guarantees as soon as you touch another library
> I’ve worked in probably 15+ languages of all types throughout my life since Microsoft BASIC in 1984 when I was 12. If this doesn’t give me the right to assert things like this, then what does?
A realisation that opinions are subjective :) I've probably used a similar number of languages, although I started with QBasic, and while I've really enjoyed FP in Scheme, Erlang, and F#, I don't consider it vastly superior, I just consider it a different paradigm that is really good in some problem domains, and an awkward fit in others.
I don't consider any particular paradigm to be superior, each has strengths and weaknesses.
I know that this is false because functional languages have existed for decades and still occupy a vast underproportion of IT projects despite being superior in the vast majority of use-cases. Also, argumentum ad populum.