5 ms·
It's about the culture that the language enables. Homoiconicity proposes a very particular philosophy of computation: programs that read and write
by tree_of_item 15y ago
It's about the culture that the language enables.
Homoiconicity proposes a very particular philosophy of computation:
programs that read and write programs, something you wouldn't really
even think of doing in a language like Ruby. "Code is data" is not a meaningless mantra.
Emacs and Slime propose a very particular philosophy of programming:
interactive development in a live, dynamic environment. Growing and
healing programs rather than performing autopsies with the
compile-edit-run cycle.
Counting packages on common-lisp.net and measuring program size in
bytes completely misses these points. This is why the zen mystique
exists: Lisp and its memeplex are not about quantitative things like
"I can write program X in Y lines", but about the way you think about
computation and programming.
Not many languages even come close to the idea of proposing a robust and interesting philosophy. Ask yourself what Java and Eclipse have to say about the nature of computation.
Haskell is probably the other big one, and it'll be interesting to see how that community continues to develop.