3 ms·
Lisp is not concerned by implementation details. C is somewhat concerned with implementation details. Implementation details largely determine how fast a given
by jpr 15y ago
Lisp is not concerned by implementation details. C is somewhat concerned with implementation details.
Implementation details largely determine how fast a given program will run.
C makes it rather easy to predict how fast a piece of code will run, and what its bottlenecks will be. Lisp makes that rather hard.
Given that there are always programs that need to be as fast as possible even with hand-optimized algorithms running on top-of-the-line hardware, C will win for many applications that have even moderate performance requirements.
Also, current mainstream operating-systems favor C and C++, if only implicitly.
- spc476 15y agoI don't buy the "Lisp is not concerned by implementation details" because all I see in Lisp are implementation details, namely everything is a singular linked list and you have to go somewhat out of your way to use anything else (switch from lists to actual arrays, and you have to modify your code from using CAR to AREF, for example). Don't forget the numerous equality operators either (EQ, EQL, EQUAL, etc) whose results are most definitely dependent upon the underlying implementation detail (EQ compares pointers, EQUAL compares visual representations). For speed, I use profilers, because I'm still surprised at where the code is spending its time, even after 20 years of programming in C. I'm beginning to think that Lisp appeals to programmers that like programing in raw Abstract Syntax Trees which is a small subset of all programmers.
- dman 15y agoYour point over everything being a singular linked list is a very good one. Even as a lisp user I wish that things were specified in terms of a sequence protocol rather than a list data structure. I believe Clojure rectifies this historical anomaly. In their defense the people creating Lisp didnt have any prior art and were making rules as they went along.