Huh, I haven't had any library issues with c# for years. Although your right, the js and jvm ecosystems are larger. I don't think it is an issue.
There is definitely a quantity vs quality issue in the JS world. I don't think it's fair to say JS' ecosystem is better than C#'s because it's bigger. There's a hell of a lot of shit code on NPM.
Sure, but there's no equivalently mature OCaml-like language for the JVM (Scala doesn't count)
Asking as someone with no OCaml experience but who quite enjoys Scala, why does it not count?
I don't know OCaml, so I can't give you a great answer, but I know that OCaml has a different type system that has some features that Scala 2 lacks, such as union types.
OCaml doesn't have union types. It has what it calls variants, and what is generally known as Algebraic Data Types. So does Scala 2.
They are radically different languages, even if they're from the same family. Scala is about as similar to OCaml as Rust is to OCaml. Rust and Scala are a world apart from OCaml and Standard ML in terms of language complexity.
And then F# literally has an OCaml compat mode because they are so similar (F# has a bunch of convenient syntax extensions if you don't mind not using the compat mode).