My view isn't that Lisp is a coveted brand name, but that it should have a reasonably precise meaning. Abusing "Lisp" has created confusion.
Here is one problem: people come across some language which are called some kind of Lisp. They have some sort of experience that didn't sit well with them. Then, because of a human reasoning process called "guilt by association", they attribute the bad experience to everything that is called "Lisp".
It must all be the same, right? It's called Lisp!
The result is that if I make a language that is some kind of Lisp, I can't just present it to the users to enjoy; I have to work at dislodging their preconceived notions about what that language is, based on what they believe "Lisp" to be from some prior experiences.
Please leave the "Lisp" word for those of who earnestly implement something that has the important attributes of the original, so that over time, the meaning of the word will be narrowed and sharpened, regaining some of its discerning power.
It should be the case that if someone uses a language that is some kind of Lisp, they should be able to program in it straight away, if they have experience with any other language that is some kind of Lisp.
They should be able to define an elementary function, such as a recursive Fibonacci or whatever, without having to study the reference manual of the different Lisp.
If someone comes to me saying they learned some kind of Lisp, but then they are confused by nil in my Lisp, that is unfortunate. I put a bona fide classic Lisp feature into my Lisp, which baffles someone who thinks they had previously studied some kind of "Lisp"! How stupid is that?
Unhelpful, to say the least, and confusing.
What is the take-away message for that person? How can it possibly be anything other than: "Lisp is fragmented! If I learn something completely rudimentary under one Lisp, like how Boolean conditions work, I have to un-learn and re-learn it differently under something else, also calling itself Lisp! This is like Linux distros, only 100X worse! Phooey!"
> What is the take-away message for that person? How can it possibly be anything other than: "Lisp is fragmented! […]”
When I last worked in Lisp (in the 90s), "Lisp" wasn't just fragmented. The word described a family of languages, that weren't even unified around LISP1 versus LISP2, let alone Flavors vs CLOS, etc. If you wanted to be clear about which one you meant, you'd say MacLISP, or InterLISP, or Common Lisp, or Emacs Lisp, or something.
Hence my question in a sibling comment: does Lisp now mean, in general or in your community, Common Lisp?
Look, you need a CS degree or two to even understand what "family of languages means", first of all. It's not helpful when facing toward non-users of Lisp, who are relatively new programmers.
Less "family" nonsense, and more solid definitions. Problem with family is that drunken Uncle Al who comes over and sleeps on your sofa for three weeks is also "family". Al doesn't even understand that empty list is false, like everyone in this household was raised to; kick the lamer out!
But if Lisp means only "Common Lisp", that is very unhelpful and stifling.
That would be like "C" only meaning "ISO C 2011", excluding concepts such as "GNU C" or "Microsoft Visual C", or "C90" (a superseded ISO language, no longer C now).
There has to be some flexibility: a sweet spot between useless rigidity and scatter-brained dilution of meaning.
My view isn't that Lisp is a coveted brand name, but that it should have a reasonably precise meaning. Abusing "Lisp" has created confusion.
Here is one problem: people come across some language which are called some kind of Lisp. They have some sort of experience that didn't sit well with them. Then, because of a human reasoning process called "guilt by association", they attribute the bad experience to everything that is called "Lisp".
It must all be the same, right? It's called Lisp!
The result is that if I make a language that is some kind of Lisp, I can't just present it to the users to enjoy; I have to work at dislodging their preconceived notions about what that language is, based on what they believe "Lisp" to be from some prior experiences.
Please leave the "Lisp" word for those of who earnestly implement something that has the important attributes of the original, so that over time, the meaning of the word will be narrowed and sharpened, regaining some of its discerning power.
It should be the case that if someone uses a language that is some kind of Lisp, they should be able to program in it straight away, if they have experience with any other language that is some kind of Lisp.
They should be able to define an elementary function, such as a recursive Fibonacci or whatever, without having to study the reference manual of the different Lisp.
If someone comes to me saying they learned some kind of Lisp, but then they are confused by nil in my Lisp, that is unfortunate. I put a bona fide classic Lisp feature into my Lisp, which baffles someone who thinks they had previously studied some kind of "Lisp"! How stupid is that?
Unhelpful, to say the least, and confusing.
What is the take-away message for that person? How can it possibly be anything other than: "Lisp is fragmented! If I learn something completely rudimentary under one Lisp, like how Boolean conditions work, I have to un-learn and re-learn it differently under something else, also calling itself Lisp! This is like Linux distros, only 100X worse! Phooey!"