6 ms·
We (professional developers using lisp-like languages daily) don't have the reaction of "ewww" as soon as we see something foreign, but instead we think "hmm, t
by capableweb 4y ago
We (professional developers using lisp-like languages daily) don't have the reaction of "ewww" as soon as we see something foreign, but instead we think "hmm, that looks different, I wonder why it looks different?" and then we start to try to understand it. Then you give a lisp-like language a try (Clojure in my case) and suddenly it's really hard to program in any other language, because they're not as good as a lisp language.
If you have a knee-jerk reaction to everything that looks different, you'll lose out on lots of fun stuff. You should give lisp a try, I'm sure you won't regret it.
- beepbooptheory 4y agoLispey stuff self-selects its fans quite nicely in this way.
- simula67 4y agoBut is there any need to make things different for the sake of difference? For example, why not name "car" function as "first", "head" or "beginning"? Why not name "cdr" as "rest", "tail", "end" or "back"?
- Skinney 4y agoLISP was one of the very first high order programming languages (came around the same time as FORTRAN). If anything, other languages are different for the sake of being different. Btw, Clojure makes those exact changes you mention (first instead of car etc.)
- kazinator 4y agoCAR and CDR have origins in a hardware feature of the IBM 704. But they came into Lisp via Fortran. The list processing in Lisp was closely inspired by FLPL: the Fortran List Programming Language: a system for linked list manipulation done in Fortran. FLPL had functions like XCARF and XCDRF and others. MacCarthy greatly improved the naming by dropping the gratuitous X...F noise. (What had they been thinking?)
- lispm 4y ago> Clojure makes those exact changes you mention roughly 25 years after Common Lisp introduced first,..,tenth, and rest
- filoeleven 4y agoClojure uses “first” and “rest”, as does Racket.
- kazinator 4y agoGrandparent programs in Clojure which doesn't use car and cdr. ANSI Common Lisp has first and rest as synonyms of car and cdr. Books from the middle 1980s on the then emerging Common Lisp already cover this. It's like you're griping about an issue that was closed before CVS existed, let alone git. car and cdr still exist because of backward compatibility and because they are good names for when cons cell structure is just arbitrary structure and not a list. The car is not always the first item of a list, and cdr is not always the continuation of a list. These words are deeply entrenched in the Lisp culture. The words have no confusing associations with anything else but the parts of a cons cell. I've not come across any "car" or "cdr" usage in computing anywhere, except Lisp-inspired jokes like in the "Locator/Identifier Separation Protocol". In the telecomm industry, CDR stands for "call detail record", but that's removed from programming language and data structuring. Knuth defined some binary-cell tree structures in TAOCP. He used the words alink and blink (as in A link, B link). Those words are not bad. It's good if the parts of a flexible data structure that programs use for representing all kinds of things have names that don't have any confusing associations. When you see those names, you know they are just literally about that structure, and you can see from how those words are used what the shape of the structure is.
- kazinator 4y agoLisp only looks "different" if you've gotten used to C, Java, Perl or whatever as your "baseline normal". Unless you carefully study the reactions of nonprogrammers, you are biased. To a nonprogramming person, this is quite probably "different" (p->arr[x].pfn(y)>>SHIFT)&MASK
- rawoke083600 4y ago^^^ That is like someone went back in time and gave the Egyptians a typewriter but only installed "The Windings Font" :) The magic of S-Expr is like drug-addiction... someday you wakeup and realise... damnn I can't go without S-Expr in my daily-driver-languages :/
- rawoke083600 4y ago>If you have a knee-jerk reaction to everything that looks different, you'll lose out on lots of fun stuff. You should give lisp a try, I'm sure you won't regret it. Yes I always tell ppl, sure you don't need to like LISP but as a serious CS professional, AT LEAST give it a real HONEST go! Then if you still don't like it, cool, move on ! There is an active and lively and long-lived LISP-Like community even today, there is a high probability there is something there. YMMV :)