I have experienced some form of generics in Modula-3, Ada, Eiffel, C++, C#, D, Java, Scala, OCaml, F#, Haskell.
Given my CS background, the only language I think does a poor job with generics is Java.
As for language's success, it is usually related to which company is pushing it, or which killer feature/framework makes the people want to learn it.
I am not aware of any language that went mainstream just because it was simpler than existing ones, without having one of the reasons listed above tied to it.