4 ms·
> we can view Common Lisp, Racket, and Clojure---the three main forms of LISP seen in "the real world"---as three separate languages that, like Python and Ruby,
by irahul 14y ago
> we can view Common Lisp, Racket, and Clojure---the three main forms of LISP seen in "the real world"---as three separate languages that, like Python and Ruby, haven't fragmented
As far as Common lisp and Scheme go, there are things outside the rnrs and common lisp standards that cause the fragmentation.
I don't use common lisp so I can be wrong but going by the specs, there is no mention of threading, networking et al.
http://www.lispworks.com/documentation/HyperSpec/Front/Contents.htm http://www.lispworks.com/documentation/HyperSpec/Front/Conte...
Without that, sbcl and clisp aren't as inter changeable as they should be and this can be regarded as fragmentation.
- dsrguru 14y agoI'm not a CL expert, but the existence of multiple implementations of CL doesn't appear to have caused much fragmentation. The language did evolve beyond the standard (e.g. threading and the meta-object protocol), but if I'm not mistaken all popular implementations of CL (SBCL, Clozure CL, Allegro, LispWorks, CLISP, CMUCL) implement the full meta-object protocol, and even if their thread implementations use different libraries, isn't that pretty common among programming languages that aren't considered fragmented? Different implementations of C are certainly like that. Unless the OP really meant to ask why some languages have one main implementation and others have multiple, but that seems like a very different question (whose answer in the case of CL is obviously not that it broke off into multiple languages but rather that it was designed as a standard without any official implementation to begin with).