4 ms·
Most users of Emacs Lisp, and similar languages talk of just "Lisp". Implementations tend of have Lisp in their name. Books, too. If the language/implementation
by lispm 7y ago
Most users of Emacs Lisp, and similar languages talk of just "Lisp". Implementations tend of have Lisp in their name. Books, too. If the language/implementation does not have Lisp in their name, it usually signals that this language is not (or no longer) backwards compatible and a new derived dialect: Logo, ML, Scheme, Dylan, ...
There are basically almost no languages with single implementations. C has many. Python has many. Ruby has several, Scheme has dozens, Logo has probably a hundred, Clojure has several, ...
We have a clear view of what C means: the language even has standards. C then has a lot of derived languages: Objective C, C++, and a bunch of others. Still I would think that there are many implementations/languages which are very near to C, but don't implement the full ISO C standard or can differ from it in various ways (-> Dialects).
Similar for Lisp. There are basically two standards for Lisp: ANSI Common Lisp (with >30 implementations - full or subsets) and ISO Lisp (called ISLisp). There are also a few (often) historical variants of Lisp: Emacs Lisp, AutoLisp / Visual Lisp, Standard Lisp, Interlisp, LeLisp, ZetaLisp, ... These languages have a core, which is more or less compatible to / derived from Lisp I.
See for example the Lisp dialects mentioned in 'History of Lisp': http://www.softwarepreservation.org/projects/LISP/ http://www.softwarepreservation.org/projects/LISP/
These are the historic core of Lisp.
There is a tendency to speak of a wider 'Family of Lisp' - but if you look closely, then languages like JavaScript/ECMAScript tend to be a part of that 'Family' - which makes it more or less meaningless. I tend to avoid that, because it does not set the expectations for practical usage right: JavaScript is practically not compatible, though it shares some features with Lisp: functions, anonymous functions, symbols, garbage collection, data syntax, evaluation, interactive use, ...
Similar: Scheme is now its own language family with its own standards: RNRS Scheme, IEEE Scheme, ... and many more or less conforming implementations.
- eesmith 7y agoRemember, I was asking this as a lead-up to: > As a point of pedantry, should Perl 6 (the programming language of 4 months ago) be considered a Raku dialect? Or vice versa? My point was that "Lisp", the original implementation line, died in the 1960s. We have a bunch of implementations now in the greater Lisp family. And we call them "Lisp"s. So, what is the greater family name which includes Perl 6 and Raku? Is it "a Perl 6"? The "Family of Lisp" definition in the broad sense you refer to has also been used to include Python, so I know what you mean. However, I think that's excessively broad. In https://news.ycombinator.com/item?id=21873228 https://news.ycombinator.com/item?id=21873228 I wrote '"Family" and "superfamily" aren't well defined'. I cannot offer a better definition. However, given my description that the "Perl" family may extend to include Ruby, I think my further request for a "family name for Raku and Perl 6 which excludes the more distant members of the family, like Perl 5" is understandable.
- lispm 7y ago> My point was that "Lisp", the original implementation line, died in the 1960s You said 'language'. It did not die at all. The original Lisp and the code written in it was moved through the decades. There is even Lisp code from the 60s which was moved through all the implementations / Lisp evolutions over time: Lisp I -> a bunch of Lisp 1.5 implementations -> Lisp 1.6 / PDP-6 Lisp -> Maclisp -> Zetalisp, ... Example: Macsyma was based on code coming from Lisp 1.5 and moved through several generations of Lisp.
- eesmith 7y agoI said "that language stopped in the 1960s while other Lisp dialects". I thought it was clear that I was referring to the specific implementation which died with Lisp 1.5. Because "Raku" refers to a specific implementation name in the Raku-like languages, of which Perl 6 is one. And the Raku evangelist seems to argue that it was incorrect to describe a Raku evangelist as "a Perl 6" evangelist. I was drawing a parallel. If a modern Lisp system can be referred to as a Lisp, then why can't Raku be referred to as a Perl 6? Now, I'm perfectly fine with saying this is a sociological question, and that the members of the group get to decide their name. I also think there are limits to that framework. For one, it leads to gatekeeping. If a Scheme or Clojure users says they are using a language in the Lisp family .... I think you see the issue.
- fulafel 7y agoThere are languages that have standards and many independent implementations, and then there are languages that that have a master implementation and others that are understood to strive for compatibility with the master implementation. This is a big difference and the latter model (followed by Python, Ruby, Clojure, C#, Java, Haskell and many others) leads to much less fragmentation. The "implementation democracy" model has benefits, but the cost seems to be high, hurting availability of libraries. The network effect is dampened.
- lispm 7y ago> strive for compatibility with the master implementation Usually the compatibility is not great and thus the lead implementation is mostly used. > Java, Haskell Both have standards. Java has extensive standardization.