Ruby元编程系列0 -- 序言

什么是元编程

元编程(meta-programming), 是指编写在运行时操纵语言构件的代码。

元编程不是一个概念或是宣传名词,而是一种实际的编程技术,并且能在大部分情况下提高程序员的生产效率。

为何使用元编程

编程语言是在现实世界和计算机世界之间搭建的桥梁,编程语言的抽象级别越高,就越接近于人类的思考方式。

按照与计算机系统的接近程度,从最底层的汇编语言,到面向过程的C语言,再到半动态类型的Java, 最终到完全的动态语言Python及Ruby,编程语言的抽象程度越来越高,人类在计算机世界中获得了越来越强大的表达能力。

元编程更进一步。

在元编程的世界,用户不再局限于编程语言自身提供的抽象层次,而是可以根据自己的需要,操纵现有的语言构件,创造新的抽象层次,进一步提升了程序的表达能力和程序员的生产效率。

ruby元编程

C语言程序经历两个生命周期: 编译时和运行时,由于绝大多数编译时信息在运行时都丢失了,所以C语言不能对元编程提供支持。

在C++中,用户获得了初步的内省能力,可以询问对象所属的类型,Java更进一步,可以列出一个类的方法以及其父类型。

这些只是元编程的冰山一角。

在Python中, 通过metaclass 支持动态的类型定义,但并不灵活,并且主要在开发库或者框架时使用。

Ruby的元编程特性源自Lisp, 是现今流行语言中对元编程最友好的语言,元编程在Ruby的世界中无处不在。在Ruby中,不仅可以通过强大的内省能力获得丰富的构件信息,更能根据用户的需求,在运行时动态定义构件。

关于本系列博客

编程需要做两件事:

  1. 理解上帝运行世界的逻辑。
  2. 把这些逻辑翻译给计算机。

平庸的程序员大多关注第二件事,我也不例外,只是希望通过对元编程的理解,能和计算机更加自由地沟通。

谨以此系列博客,记录自己的无知。