什么是元编程以及元语言?----所以元编程存在的目的,就是多提供了一个抽象层次。
元编程一言以蔽之,就是用代码生成(操纵)代码。
常见的开发语言均能做到元编程,Lisp这货就不用多说了,C的Marco,C++的Template,Java的Annotation,C#的Attribute、Reflection、CodeDom和IL Emitter,各种脚本语言(如js、python)的eval,甚至连Unix/Linux的shell脚本也能。
元编程常见的应用场景很多,扩展(重构)语法、开发DSL、生成代码、根据特定场景自动选择代码优化、解决一些正交的架构设计问题、AOP等等。
所以元编程存在的目的,就是多提供了一个抽象层次。
至于元编程有什么优缺点,争议还是比较大的。比如以重构语法的应用为例,很多元编程的反对者就认为这样会导致代码的可读性、可维护性降低,分化社区,影响交流,因为每个开发人员都能搞一个自己的方言。
总的来说,元编程玩得转的话会让你日子好过一些,玩不转会让你日子不好过一些。
常见的开发语言均能做到元编程,Lisp这货就不用多说了,C的Marco,C++的Template,Java的Annotation,C#的Attribute、Reflection、CodeDom和IL Emitter,各种脚本语言(如js、python)的eval,甚至连Unix/Linux的shell脚本也能。
元编程常见的应用场景很多,扩展(重构)语法、开发DSL、生成代码、根据特定场景自动选择代码优化、解决一些正交的架构设计问题、AOP等等。
所以元编程存在的目的,就是多提供了一个抽象层次。
至于元编程有什么优缺点,争议还是比较大的。比如以重构语法的应用为例,很多元编程的反对者就认为这样会导致代码的可读性、可维护性降低,分化社区,影响交流,因为每个开发人员都能搞一个自己的方言。
总的来说,元编程玩得转的话会让你日子好过一些,玩不转会让你日子不好过一些。
作者:猫杀
链接:https://www.zhihu.com/question/22572900/answer/21828721
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
我思故我在