Still, there have been some changes since Ada83...
True, but it's still very far from optimal. For something MUCH closer to optimal, see Rust.
All that said, from a practical standpoint I think Julia is near perfect as both a prototyping and implementation language, with the ability to drop to Rust/C/assembly easily as needed.
High productivity, and C-like performance. That's a sweet spot.
see this as an example: http://genieframework.com/
Typical example: I've decided to make a little GUI application in gtk3 for Go and encountered the first show-stopper already after two weeks. Yes, in theory this can be fixed by adding bindings yourself and submitting pull requests, but once you start with this it kind of defeats the purpose of using another language in the first place. (And there is a second issue of this kind already waiting in line...)
The same is true for Julia, which I have evaluated for this purpose, too. The GUI bindings are not yet complete, and experience has told me that if bindings are not yet complete, there is a high chance they will never be complete. Once they are completed, they are already outdated.
So if you include GUI applications into "general purpose", the answer is practically always "No". If you exclude GUI applications, on the other hand, then almost every programming language on earth is sufficiently general purpose.
Now it's grown far beyond that, and is acknowledged by its creators as a true, general-purpose language.
One example is its use in real-time robotics:
I expect it to get there over the next years though. And it otherwise his a perfect sweet spot for us.