3 ms·
What will happen if you include meta-programming in a language isn't as simple as "this will happen" versus "that will happen". A deciding factor is the struct
by andreyf 18y ago
What will happen if you include meta-programming in a language isn't as simple as "this will happen" versus "that will happen".
A deciding factor is the structure and process in which your organization works. Structures which work well for creating Java code probably won't work well for creating JavaScript or Ruby code. A couple of things come to mind:
1) Code reviews are a lot more important for languages which allow 'meta-programming'
2) Thorough, but concise documentation, also.
Extending Class.inherited() (as quoted in the linked article) without telling anyone or documenting it is a social problem of process and organization, not one with the programming language.
- DougBTX 18y agoI'm not sure you can excuse the language totally. To stop code standing on other peopoles toes, namespaces and encapsulation were invented. In this case, there is no way to encapsulate the change to Class.inherited, it must be Global, because the language does not support anything else. If the language did support other possiblities, then the social problems would have been less acute.