When data is code, what is the meaning of a config script?
Kliment: Well, as long as you are the only one editing them, it doesn't make a difference where you put the limit between code and data. This changes once you release though. Configuration files are meant to be user-edited as part of standard functionality, program code is not. Your users expect nothing major to break if there is a syntax error in the config file. Does that make your entire program crash with an undecipherable (to someone unfamiliar with the language or programming in general) error? You want to be as robust as possible when reading user-editable files, and directly executing them as code could cause problems. There is also the security and stability issue associated with encouraging users to enter code into a config file. Do think about it. This, to me, is the main reason for treating data as separate from code. You have to be robust about parsing data, your compiler has to be robust about parsing code.