I think that in imperative programming, like in Ada, the mathematical elegance comes from ensuring the post-conditions from pre-conditions and maintaining invariants and so on.
I'm seeing a new generation of kids coming out of school who are just pissing on those techniques: only functional is mathematical, and the rest is outdated, intractable garbage that causes software crises and meltdowns.
That's reasonable (and I actually do like Ada somewhat) but the satisfaction of figuring out a nice algorithm in APL and writing an equivalent in Ada are just… not the same.
Though I'm not really sure I'd call maintaining invariants and pre/postconditions mathematical elegance per se, it feels like good engineering. Like you've built something that's solid.
I'm seeing a new generation of kids coming out of school who are just pissing on those techniques: only functional is mathematical, and the rest is outdated, intractable garbage that causes software crises and meltdowns.