5 ms·
Sounds like a paradox in Lisp since code is data. Does this mean all Lisp code is good? :)
by felideon 18y ago
Sounds like a paradox in Lisp since code is data.
Does this mean all Lisp code is good? :)
- sridharvembu 18y agoI believe we need a "converse of Lisp" - in Lisp code is data, I believe what we need is the notion "data replaces (most) code". That leads to the question, what really is data, and I believe Codd supplies the best answer to that question. One of the truly original ideas in Computer Science that post-dates Lisp (and is not anticipated by Lisp) is Codd's relational model of data, which is not to be confused with relational databases used for storage. Note that Codd's model is not Turing-complete, while all but the most trivial definitions of code lead to Turing-complete systems, hence the parenthetical most in my "data replaces (most) code". Data is easy, code is hard could be another way to state that. We have experimented with such ideas, and we can report that they do significantly improve clarity and therefore productivity. As an aside to a pg essay, I believe clarity is not the same as succinctness and as a corollary, succinctness does not imply productivity except in the somewhat trivial sense of ease of typing.
- jackchristopher 18y agoBut when writing code for yourself succinctness is power; Because abstraction is power; More stuff, smaller space. But when writing for others, abstractions kill clarity. It's true in language too. You use fewer words explaining something to yourself than to others. For example I can say to myself, "Our election are no different than high school elections (decided on popularity, not issues)." It would be seen as heretical to most, and wrong to others. But I'd be sure that I'm right. They can't see that behind that thought is long reflection on high school popularity, evolutionary psychology, and more things than I can recall. Incidentally, Paul makes this same point in, It's the Charisma, Stupid. And while reading it I thought, "He's just saying that things don't change (after high school). What an elegant theory; Occam's razor at it's best."
- gruseom 18y agoIf data is code, how does it get interpreted and executed?
- ken 18y agoIt almost sounds like you're describing Subtext: http://subtextual.org/ http://subtextual.org/
- magoghm 18y agoSubtext looks wonderful. Thanks for the link!
- silentbicycle 18y agoWell, what that really means is that Lisp can handle its own code as smoothly as it can data, since the two take the same form. The reverse can also be true, though; data "is" code, in that if you design a data structure sufficiently well, for example, the necessary code to work with it should be self-evident. (Interestingly, "data is code" is probably more characteristic of Forth and (in a very different way) the relational paradigm.)