批判“计算机科学趋势之我谈”
Posted by: Leftwo (IP Logged)
昨天在这个论坛里看见“穿靴子的猫”发的胡说八道的文章,忍不住写了这点东西。在美
国学计算机的人多如牛毛,藏龙卧虎。本人学识有限,有错误的地方请大家订正和原谅。
“穿靴子的猫”,真名姚子渊,2003年考清华失败,进入复旦。大学第一年在网上大吹嘘发明了”革命性的机器翻译理论“,自拟新闻,在网上到处发。一年后承认失败,又声称要搞LingoX软件提高”英语的生产率“,至今遥遥无期,又是作秀。
“穿靴子的猫“指责”美国主流计算机学术界总是沉湎于旧的知识体系不能自拔“,因为
”ACM 近年颁发的图灵奖是一年比一年烂“。 其实图灵奖一点也不烂,有点象NOBEL奖,得奖人的工作往往都是近二十年前的了。想通过图灵奖了解计算机科学的成就还可以,但要了解近况是肯定要失望的。有趣的是,有的图灵奖的获得者的计算机使用水平还不如中学生,除了收发EMAIL,其他一概不会,论文排版打印都由其他人带劳。不过这并不妨碍他们对计算的深刻理解。要想了解计算机科学的近况主要看核心的学术会议,这也是计算机科学研究的一项传统。学术杂志时效性比较差,偏理论的人对此感兴趣。
计算机科学的发展和其他学科一样,是由问题驱动的。你问自己一个问题,如果天下没人能给你答案,发现这个问题的答案或部分答案就是很好的科学研究。不过问题有大有小,因而成果的重要性就不一样。要做好的研究,心里一定要有好的问题。
先让我们来看看编程序方面的问题。学计算机的人都会编程,可如何保证程序编得又快又好,问题就大了,这是一个在过去几十年里制造了数千个博士的问题。提高软件的生产率和正确率是非常困难的,一般一个好的程序员一年大概能写5万行左右的新代码。有没有什么办法提高到一年能写相当于现在50万行新代码的水平。各种研究都有,例如设计各种各样的工具,改进程序设计语言等等。大学里开发的工具很多是研究性质的,商业化的工具很多是工程性质的,是大学研究结果的综合。改进程序设计语言一直是一个非常重要的问题,POPL是这方面的核心会议之一。其中类型理论始终是重要的研究课题之一。中国人在这方面做过不少贡献,提到类型理论,很多人都知道Luo Zhaohui。
如何保证程序的正确性是另外一个很重要的与编程有关的问题。用计算机自动验证程序的正确性曾几何时是一个很热门的问题,好几个图灵奖的获得者都与这个问题有关。现在已经很少有人研究了。不过这些研究大大加深了人们对程序设计和语义的理解。比如说,我们现在知道了现在的编程实质上是一种HOARE逻辑上的形式推理,程序的正确性就是定理证明。程序验证的失败很大程度上是定理证明的失败。定理证明曾经是人工智能的一个门话题,Otter是最具代表的全自动一阶逻辑证明器之一。可惜的是,所有的全自动证明器都遇到了一个无法逾越的障碍,就是没办法做自动归纳证明。我们知道实际应用离不开整数,整数上的命题很多是用归纳法证明的,但归纳模式千变万化,迄今为止归纳模式无法自动生成。半自动的证明器有不少,可只有专家才能用。
说到这里,不能不谈谈眼下热门的Ontology有关的研究。搞人工智能的人在上个世纪搞坏了名声,只要和人工智能这个词沾上边,一般就有骗子的嫌疑。现在申请项目没人会用”人工智能“这个术语了,不过没关系,现在可以叫”知识工程“或Ontology或其他什么的。搞知识工程的人发现用一阶逻辑表达知识不行,因为其中的定理无法自动证明。简化到HORN逻辑还是不行。再简化找一种能保证自动证明定理的逻辑,终于有了,就是现在流行的Dexxxxion Logic。你可以想象这逻辑有多弱。Ontology研究不管怎么吹,超出Dexxxxion Logic就是不可判定的。你也千万别用到算术和方程什么的,一用就超出Dexxxxion Logic了。Google已经暗示不会开发与RDF和OWL有关的产品,实际上是看坏这项技术。
顺带说一下,从事这种与理论和逻辑有关的研究没有数年在逻辑和代数方面的学习功底,门都没有。比如说如果你要研究不同计算系统之间的关系,你得理解Grothendieck Institution。这就是为什么在欧洲很多计算机科学系和数学系是在一起的。
计算机科学东西太多,比如数据库,安全,网络和通讯等等,有关的会议总是特别热闹。太化时间,我以后再慢慢写吧。