The cryptic naming and backwards compatibility with completely out dated 40 year old systems are just a few things that drive me crazy about Lisp.
[1] https://en.wikipedia.org/wiki/CAR_and_CDRThe cryptic naming and backwards compatibility with completely out dated 40 year old systems are just a few things that drive me crazy about Lisp.
[1] https://en.wikipedia.org/wiki/CAR_and_CDRIn your own code, you can use FIRST and REST for lists.
But if you want to program you need to deal with that. Stuff was there before you and has a history. Changing things has a benefit, but also a cost. For a small community like Lisp, constantly rewriting code because some names change is not such a good idea.
Given that we can remember thousands of words in natural languages, a few hundred core words of a programming language is not such a huge hurdle.
For the same reason we move forward and left Algol in the past, relegated Cobol to some niche areas, etc.
The reason is the expressive power of their extended versions - e.g. caadr or cdaar don't have easily derived equivalents from first and rest and those that can be derived are at best equally bad or worse...ffirest and reffst anyone?
The extended forms of car and cdr provide a form of expression which is not obvious based on the construction of common non-Lisp languages even those that have very flexible lists and dynamic typing.
The problem is, it really is "rest" instead of "second", at least in the usual case. Yes, a cons cell can contain pretty much any two things, but the most-frequently-used case (or so I believe) is that of a list. In that case, "car" means "first element of the list", and "cdr" means "the entire rest of the list", not "the second element of the list".
(bikeshedding acknowledged)