昨天的 Beijing Open Party 上,我听了段炼同学介绍 GWT 的主题。上个月认识他时,我还误以为他是北理工新闻中心专职摄影的段炼老师,但他的真实身份却是华东理工大学制药工程专业的学生,计算机只是其“业余爱好”。段炼的 ID“chemhack”不禁让我猜想他是不是有像刘未鹏的“mindhacks”那样的风范。听了他的演讲、看了他的 blog,发现他确实是一个有 hack 精神的人。
  这是我认识的又一位从事化学相关领域的计算机高手。本科玩计算机博弈时,我认识了复旦大学化学系毕业的黄晨,他是象棋百科全书网站和象棋巫师软件的作者,UCCI 协议的制定者。后来参加中国机器博弈锦标赛时,我又有幸见到了中国电脑围棋的先行者、中山大学化学系退休的陈志行教授(陈老先生已于 2008 年不幸病故)。他研制的《手谈》软件曾多次在国际赛事中夺冠,商业版本也畅销于日本等国。在我决定读研之前,曾想了解一下科研生活,师兄推荐给我的是名曰“学术科研第一站”,实为化学相关专业主导的小木虫论坛,这个论坛也让我收益不少。在中科院研究生院集中教学期间,我又在计算机专业的课堂上认识了多位外专业的同学,他们有冶金化学的、化工自动化的、过程工程的,选择计算机类课程或出于实验室工作的需要,或出于个人兴趣。
  为什么会有这么多化学相关专业的朋友涉足了计算机领域呢?个人兴趣之外,或许最主要的因素是化学的很多研究需要以计算机作为海量数据采集、存储、分析、处理的工具。化学领域作为数据库、数据挖掘、网格计算等技术的重要应用,受益于计算机技术的发展,同时也对通过其复杂的需求引导着计算基础设施及算法的改进与发展。如今化学信息学的引入就是要用计算机来解决化学信息存储与检索的子问题。但除了这些技术上的因素,计算机和化学有没有本质上的相通呢?计算机是公认的人造科学、技术科学,而化学一般被认为是自然科学,尽管它也包含了一些技术科学和工程技术领域的分支。但我的初中、高中化学老师都给我灌输过这种思想:化学只是一系列模型,方便描述自然现象的,有些概念并不反映真实的存在;还说中学化学讲的都是早期的经典模型,为了解释新的现象,模型总在不断修补。我的大学同学,爱好电子、物理与计算机的 m100 则直接认定“化学是骗人的”。但我想,无论化学家们的科学信仰和主观意愿如何,化学和计算机科学在客观呈现上有两点是共通的:一是抽象建模,二是实用主义。计算机中只有线性的指令流和数据流,人们用结构化编程语言和文件系统的抽象将它们变得易于理解和使用;同样化学元素也不是什么微观物质,但化学家可以用这一抽象来表示特定原子组成,构建宏观世界到微观世界的桥梁,便于统一研究物质的性质。这种方法论上的相似或许是化学专业的朋友们乐于钻研计算机的原因之一。
  学术的火花往往都是在交叉领域中迸发的,黄晨的《电脑象棋和量子化学——计算量子化学的新思路》(黄晨网站原文无法找到,请看 google 到的转载结果)就是一例有益的探索。做计算机的人,不要耻笑个别外专业人员写的蹩脚的代码,也不要不屑于倾听外行对计算机技术看似幼稚的见解。内行最容易犯的毛病就是被既有知识的“框框”限制住,多看看外行在本领域的工作,听听他们大胆的思路,也许就能为自己的科研创新另辟蹊径。