from Wiktionary, Creative Commons Attribution/Share-Alike License
- n. A property of some programming languages, in which the primary representation of programs is also a data structure in a primitive type of the language itself.
Sorry, no etymologies found.
Scheme macros are much better because of the homoiconicity of the language ( "homoiconicity" is just a big word for the code is data concept).
On the other hand, if you can look past the superficial, Lisps homoiconicity lets us treat code exactly as data, which is just an incredible tool to be sitting with, as you can freely extend the very language itself by relatively simple means!
Which means that when the balance of syntax vs homoiconicity gets skewed, it will be syntax that pays the price.
Ioke plays a lot of cards surrounding homoiconicity - meaning that the structures used to represent code are the same as what you use to code.