Back when I tried ADA, it had little or no functions for visual output(one class assignment was to build a library of functions for VT220 terminals).
This was supposedly to make it more platform independent... or something...
There was built-in garbage commection and boundary checks. Even support for multi-threading.
I used both a version on VAX VMS, and on DOS(Janus ADA), and the only difference was that the VAX version didn't have a 'Long Integer' type defined.
So when I wrote program code at home and brought it to school, I had to uncomment a type declaration before it could run there if I had used a Long Integer.
(All Integers on the VAX version were in reality Longs, unlike on PC where they were 16bit. )
And ADA wasn't just used by the military, it was ordered by the US DoD...
Back then, ADA was easy to learn if you had some Pascal experience. C programmers should also be able to pick it up pretty quickly. C++ programers, though, would have to first unlearn the notion that everything is pointers.
I'd love to use ADA on the Teensy...