I think it's a matter of ontology. The category "ML" is pretty fragmented, but the categories "Haskell," "F#," and "OCaml" are all pretty non-fragmented. Ditto for "Lisp" vs Clojure, Scheme, Common Lisp[1].
I don't think Ruby should be compared to ML. I think Ruby should be comared to OCaml. ML, if it gets compared against anything, should be compared against the category that includes Python, Ruby, Perl, and JavaScript. This category is about as fragmented as Lisp.
The problem with this new category is it doesn't have a simple, clear definition. Lisp is pretty much defined by S-expressions, and MLs by their type systems. This new family might be defined by their common approach to object systems (i.e. objects as dicts), although that's really more representative than fundamental.
[1] I'm under the vague impression that Common Lisp and SML are somewhat more fragmented than other members. I wonder if this correlates to their being the "Common"/"Standard" dialects.
> Ditto for "Lisp" vs Clojure, Scheme, Common Lisp[1].
Clojure is not fragmented, but both Scheme and Common Lisp are extremely fragmented. Scheme is probably one of the most fragmented language there is, there are literally dozens of implementations of it with various levels of compatibility[0], and it's actually gotten worse lately as many (if not most) implementations refused to migrate to R6RS and remained on R5RS instead. There are even implementations (e.g. DrRacket, formerly DrScheme) which forked/opted out the whole language.
From the main Scheme article on Wikipedia: "Scheme follows a minimalist design philosophy specifying a small standard core with powerful tools for language extension. Its compactness and elegance have made it popular with educators, language designers, programmers, implementors, and hobbyists."
Scheme is widely (mostly?) used as a teaching and research language in Comp. Sci. schools. This sort of environment encourages experimentation with the language itself, whereas Python and Ruby are more oriented towards practitioners who are more interested in using the language as-is, not experimenting with it.
I don't know that I'd agree that Common Lisp is "extremely" fragmented. It's true that there are probably more implementations than we really need, but they do serve different niches. Anyway, while "extremely fragmented" might have been a fair characterization a few years ago, there has been enough work done lately on portability of libraries -- much of it driven by Zach Bean's Quicklisp -- that switching implementations is often straightforward now.
CL is defined by a standard which most of the implementations work pretty hard to adhere to. Of course, most of them have their own extensions, but a lot of these (particularly in the important areas of multithreading and foreign function calling) are now abstracted by portable libraries. This is a very different situation from the Scheme world.
Racket didn't opt out of R6RS. Racket has multiple language modes, one of which is actually R6RS Scheme. It also has a "legacy mode" for R5RS, along with modes for a handful of other languages such as Datalog, ALGOL 60, and some teaching languages.
I'm familiar with the name change, but they didn't opt out of Scheme at all. Racket still supports both R5RS and R6RS. And before someone starts going on about the "default language" not being Scheme anymore, Racket doesn't have a default language. You have to specify one. Many of the things that have been added to Racket beyond the Scheme standard also have analogs in other Scheme systems.
"scripting languages" was the commonest blanket term. then it fell out of favour and people usually refer to "dynamic languages" now, which is a lot broader a term and doesn't really single out just that family.
I don't think Ruby should be compared to ML. I think Ruby should be comared to OCaml. ML, if it gets compared against anything, should be compared against the category that includes Python, Ruby, Perl, and JavaScript. This category is about as fragmented as Lisp.
The problem with this new category is it doesn't have a simple, clear definition. Lisp is pretty much defined by S-expressions, and MLs by their type systems. This new family might be defined by their common approach to object systems (i.e. objects as dicts), although that's really more representative than fundamental.
[1] I'm under the vague impression that Common Lisp and SML are somewhat more fragmented than other members. I wonder if this correlates to their being the "Common"/"Standard" dialects.