编程珠玑番外篇-Q 协程的历史,现在和未来

本文原发于《程序员》2014年11月刊,发表时略有修改。  计算机科学是一门应用科学,几乎所有概念都是为了理解或解决实际问题而生的。协程 (Coroutine) 的出现也不例外。协程的概念,最早可以追溯到写作 COBOL 语言编译器中的技术难题。 从磁带到协程 COBOL 是最早的高级语言之一。编译器则是高级语言必不可少的一部分。现如今,我们对编译器了解,已经到了可以把核心内容浓缩成一本教科书的程度。然而在六十年代,如何写作高效的语言编译器是那个时代绕不过的现实问题。比

编程珠玑番外篇-P PostScript 语言里的珠玑

本文原发于《程序员》2014年6月刊,发表时略有修改。  首位 ACM 图灵奖得主  Alan Perlis 曾说过:“如果一门编程语言不能影响你的思维,就没有学的必要’。尽管能通过这个严苛测试的语言稀稀朗朗,在我看来,PostScript 在这个测试中至少得 A。作为一个着重于平面出版应用的领域特定语言(DSL),PostScript 彻底地改变了桌面出版行业。除此之外,PostScript 还是一个设计简单但功能强大的编程语言,含有许多至今仍可以借鉴的珠玑。

编程珠玑番外篇-P PostScript 语言里的珠玑

本文原发于《程序员》2014年6月刊,发表时略有修改。  首位 ACM 图灵奖得主  Alan Perlis 曾说过:“如果一门编程语言不能影响你的思维,就没有学的必要’。尽管能通过这个严苛测试的语言稀稀朗朗,在我看来,PostScript 在这个测试中至少得 A。作为一个着重于平面出版应用的领域特定语言(DSL),PostScript 彻底地改变了桌面出版行业。除此之外,PostScript 还是一个设计简单但功能强大的编程语言,含有许多至今仍可以借鉴的珠玑。

编程珠玑番外篇-O 中间语言和虚拟机漫谈

本文原发于《程序员》2014年3月刊 导言 编程语言的发展历史,总的来说,是一个从抽象机器操作逐步进化为抽象人的思维的过程。机器操作和人的思维如一枚硬币的两面,而语言编译器就像是个双面胶,将这两面粘在一起,保证编程语言源程序和机器代码在行为上等价。当然,人本身并不是一个完美的编译器,不能无错的将思维表达为高级语言程序,这种偏差,即Bug。因为编译器的帮助,我们可以脱离机器细节,只关心表达思维和程序行为这一面。 编程语言的发展日新月异。特别是随着对问题的深入理解,新的设计

编程珠玑番外篇-O 中间语言和虚拟机漫谈

本文原发于《程序员》2014年3月刊 导言 编程语言的发展历史,总的来说,是一个从抽象机器操作逐步进化为抽象人的思维的过程。机器操作和人的思维如一枚硬币的两面,而语言编译器就像是个双面胶,将这两面粘在一起,保证编程语言源程序和机器代码在行为上等价。当然,人本身并不是一个完美的编译器,不能无错的将思维表达为高级语言程序,这种偏差,即Bug。因为编译器的帮助,我们可以脱离机器细节,只关心表达思维和程序行为这一面。 编程语言的发展日新月异。特别是随着对问题的深入理解,新的设计

现代人的必备知识:药理学

人们常说,是药三分毒。我们感性地知道药物是有毒性的,但轮到生病的时候,多数人还是会寻求药物治疗,而把“是药三分毒”放在了一边,或者“相信”药物的效用超过了毒性。这种相信,大多数时候并不是出于我们的理性的判断,而是依赖于医生的判断,以往的经验,或者药物本身的说明书。   其实,作为一个现代人,我们完全有能力,也负有对自己和自己爱的人的责任,去了解药物的具体毒性,以理性地,正确地选择药物,从而走出感性地“是药三分毒”的认识,切实地了解药物的毒性。研究药物作用机理和毒性

现代人的必备知识:药理学

人们常说,是药三分毒。我们感性地知道药物是有毒性的,但轮到生病的时候,多数人还是会寻求药物治疗,而把“是药三分毒”放在了一边,或者“相信”药物的效用超过了毒性。这种相信,大多数时候并不是出于我们的理性的判断,而是依赖于医生的判断,以往的经验,或者药物本身的说明书。   其实,作为一个现代人,我们完全有能力,也负有对自己和自己爱的人的责任,去了解药物的具体毒性,以理性地,正确地选择药物,从而走出感性地“是药三分毒”的认识,切实地了解药物的毒性。研究药物作用机理和毒性

编程珠玑番外篇之番外篇-N 答 UNIX 痛恨者王垠

(标题是标题党) 王垠最近的一篇文章中,提出了很多有趣的观点。其中最核心的一点,就是 *NIX 系统的设计哲学非常糟糕,而 Windows 系统才是真正为开发者设计的系统。凡是涉及到哲学层面的争论,最后都是以谁也说服不了谁收场。我相信王垠有足够的理由来证明 UNIX 设计哲学的糟糕,但遗憾的是,他的文章并没有表现出这一点。我摘抄一些论点并作答复。 Unix 的 shell,命令,配置方式,图形界面,都是非常糟糕的。每一个新版本的 Ubuntu 都会在图形界面的设计上

佛教艺术中的沙

“沙” 是佛教里很值得一提的物件,很多佛教艺术都和沙有关。 日本禅宗的“枯山水”就是一种依赖于沙的园林艺术。枯山水在西方很有名,以至于在西方直接被称为禅花园(Zen Garden)。一般的园林都会通过假山和水构景,通过人造的山和水,来引起观者自然的联想,从而联系人与自然。而枯山水园林却反其道而行,不采用真正的山,也不摆放真实的树,竹等物。枯山水中的水,是细细耙制的静态的白色砂石,模拟水的动态形态;枯山水中的植物也极少或者没有。这种美学上的差异,其实是和中日两国禅宗在修行上

SpaceX 开创了人类航天的新纪元

今天,美国一家私人公司 SpaceX 成功的从美国佛罗里达州肯尼迪航天中心火箭的空军发射场发射了一颗火箭,这颗火箭的终点,是国际空间站(ISS)。这是继上次成功发射并回收卫星后,一家私人公司首次将载荷送到国际空间站附近。自美国的航天飞机退役后,能够将载荷运输到国际空间站的方法只有一个–俄罗斯的联盟号飞船。而现在,私人航空已经离这个目标不远了。 SpaceX 的成功是美国社会一直引以为豪的企业家精神和创新精神的成功。2002 年,eBay 以 15 亿美元的价格购买了 Pay