Now, the bigger issue is why is the C syntax surviving. I blame Java and now Javascript. This will only get worse as more people get to know it. At least javascript doesn't have so many type shenanigans: try parsing in your head a pointer to a C function that takes a pointer to a struct or something.
Still, C is a pretty nice fallback when you have nailed your algorithm and must absolutely get the last drop of performance (and want to still reason about what the compiler is doing, so C++ is out). Or when you want to interface with anything written in C.
() Then again, he could just have done a Lisp and removed almost all syntax.
So, couldn't you avoid much of the confusion by mandating that function pointers may refer to other function pointers only through typedefs?
Of course this wouldn't work for legacy code...
Thankfully Swift, Rust, Go, Scala, Typescript, and AtScript are all doing away with the spiral declaration syntax.
It's not a rhetoric question, I'd really want an answer as I'm contemplating the choice of language for and open-source project. And C++ is out because everybody has their own way of writing code in it and it's just too much work to police people into following a strong-handed style guide...
...so what would be left for an open source projects that has the goal of being able to squeeze the maximum performance without having to drop into a lower level language for the most performance sensitive parts?