有真实世界的应用程序使用元编程吗?

Sai*_*thi 2 metaprogramming

我们都知道MetaProgramming是一个代码概念==数据(或编写程序的程序).

但是有没有使用它的应用程序以及使用它的优点是什么?

这个问题可以关闭,但我没有看到任何相关的问题.

Jör*_*tag 7

IDE充满了元编程:

  • 代码完成
  • 代码生成
  • 自动重构

元编程通常用于解决Java的局限性:

  • 代码生成以解决冗长问题(例如getter/setter)
  • 代码生成以解决复杂性(例如,从WYSIWIG编辑器生成Swing代码)
  • 编译时间/加载时间/运行时字节码重写以解决缺少的功能(AOP,Kilim)
  • 基于注释生成代码(Hibernate)

框架是另一个例子:

  • 在Ruby on Rails中生成模型,视图,控制器,助手,Testsuites
  • 在Ruby on Rails中生成生成器(metacircular metaprogramming FTW!)

在Ruby中,如果没有元编程,你几乎无法做任何事情.即使只是定义一个方法实际上也在运行生成代码的代码.

即使你只有一个简单的shell脚本来设置你的基本项目结构,那就是元编程.