I’ve been learning Pl/I, Ada, and Spark recently. The basics of PL/I are pretty simple, but you can tell it became hyper specialized for whatever IBM needed later.
Ada, however, feels like Java, Algol, C, and a JML got into a fight and designed a language: huge hierarchies of incompatible types, enforced by the compiler, each with their own ecosystem, and minimal desire for interaction.
For example, Ada.Streams’ API doesn’t seem to nicely decompose to Strings.