5 ms·
> Lisp seems to be the only language where people really want to argue that they are a Lisp, nobody tries to argue that Javascript, Java, PHP etc are "a C" (sim
by samatman 2y ago
> Lisp seems to be the only language where people really want to argue that they are a Lisp, nobody tries to argue that Javascript, Java, PHP etc are "a C" (similar syntax? semantics?). Does it even matter what is "a Lisp"?
Lisp is far from being the only family of languages. There's the APL family, with k, j, q. There are the many Forths, to the point where it's been quipped that the language has more implementations than users. The C family rather clearly includes C++, Objective C, and D, as well as C itself (Swift and Rust are arguable here).
I wouldn't put the three languages you named in the C family, but they're all Algols in a manner of speaking. At least, I routinely describe them that way, and people tend to understand what I mean. The reason no one argues that those languages are in the C family is just the broad and informal consensus that ABI compatibility is the most important feature, rather than syntax.
Any time there's taxonomy going on, you'll have lumpers and splitters. I'm a lumper where Lisps are concerned. I would call Dylan and Julia Lisps, and have done so.
If anything, what makes Lisp unique here is a faction of Common Lisp users who feel strongly that the only Lisp is Common, and historical variants which lead up to the Hyperspec (elisp being grandfathered in on that basis). I've never entirely understood this, but I don't let it bother me. That appears to be the source of the argument you reference in the section of your post I've quoted.
- ggm 2y agoYou took clause #1 .. family of language and ignored clause #2 .. where people argue about admissability into the family. The point is not "only family" its "only family, where people argue about being in the family" I think it's actually not the only language family where people argue about admission. But that doesn't seem to be your point. Your point seems to be "there are other families"
- samatman 2y agoMy conclusion, rather, was that the Lisp family is the only family where people argue against languages belonging to that family. Your statement was that it's the only family where people argue for languages belonging to it. Much of my reply was a response to the other clause I quoted, about no one arguing that JS, Java, and PHP, are "a C". I pointed out that the reason for that is simply that no one thinks of them that way, superficial syntax resemblances aside. There is in fact a C family, but it happens that you picked three languages where neither users of C family languages, nor users of the languages you mention, would argue that those three are a part of it. You'll note that arguing for vs against is not a disagreement: if someone is arguing against inclusion, that rather implies that someone is is arguing for it. Rather, your last sentence posed a question, based on your observation. My reply, which explains why there's such an argument to begin with, was intended to answer it.
- kazinator 2y agoDoes it matter what is a Lisp? We can answer it like this. Yes, it matters in the following way. New languages being touted as Lisps, which deviate from the Lisp characteristics, cause confusion. For instance, nowadays you read comments like: "I tried Lisp for a while but couldn't get used to doing everything using immutable sequences, nice as the pure functional paradigm might be conceptually". Obviously, that person is referring to Clojure, and since Clojure is promoted as a Lisp, they believe that all that is true of Clojure is true of Lisp. People believe such misleading statements which is then harmful to the real Lisps. Someone out there will avoid using Common Lisp believing that they would be required to do everything using immutable sequences or hashes.
- Capricorn2481 2y agoPeople already say CL is functional, whether they've used Clojure or not. It's a common misconception. The problem is most people on Hackernews are talking about languages they've barely used. Incidentally it's MORE confusing for people to say Clojure is not a LISP.
- kazinator 2y agoJust because there are other sources of misconceptions about Lisp doesn't justify Clojure being one. Clojure could help by emphasizing that it's a Lisp-like language, which is different from other Lisps. On the clojure.org home page, there is this paragraph: Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system. Clojure is predominantly a functional programming language, and features a rich set of immutable, persistent data structures. [...] It would be helpful if this said something like: Clojure is a dialect of Lisp. Though sharing with other dialects the code-as-data philosophy and a powerful macro system, it is very different from the original LISP of John MacCarthy, and the subsequent mainstream languages like Common Lisp and Scheme that are in contemporary use. Unlike these, Clojure is predominantly a functional programming language, and features a rich set of immutable, persistent data structures. [...]
- Capricorn2481 2y ago