cultural presentation

A domain-specific programmable presentation framework, in ruby

===
一个程序设计语言的文化史展示

这是一个独特的幻灯片展示的内容。

它展示了程序设计语言从1946年到2011年的发展历程,结合历史上计算机工业业界的发展历程,动态地模拟计算了在不同历史时期不同的程序设计语言的兴衰。

它的核心是presentation.rb文件。在这个文件中,可以以生动的DSL描述一个个程序设计语言创建的时间、应用的领域、和程序设计语言的表示能力等数据。

例如在1995年,发生了这样的大事:

year 1995 do
  new_language "PHP", :on => "Web"
  new_language "Java", :on => "企业应用", :power => "C++".power * 1.5
  "企业应用".speed *= 3
end

幻灯片框架将会使用presentation.rb中的数据来进行历史模拟。模拟方式是:对每一年,计算每个应用领域按照指定的速度发展到那一年的领域规模,然后对每个程序设计语言,计算它涉足的所有应用领域的规模,乘以它本身的表示能力,来获取它在那一年的活跃程度,最后可以以终端字符动画的形式,动态展示出来。

例如,python涉足的领域包括文本处理、科学计算、学术等,而ruby在科学计算等领域的地位并不稳固,所以python的发展速度超过ruby,但是当web领域兴起以后,rails框架给ruby插上了翅膀,使得ruby的发展速度大大地提高了。

我们的这个框架还可以根据presentation.rb中的内容,用RMagick生成图形化的幻灯片。

当然,这里的语言能力的参数、领域发展速度的参数都是以naive的形式估算出来的,所以所进行的模拟也只能带给观众以感性认识,达到快乐科普的目的而已,并不能作为真正的决策参考。