计算机科学的发展史上,约翰·巴克斯与埃兹格·迪克斯特拉无疑是两位举足轻重的人物。巴克斯是FORTRAN编程语言和巴克斯-诺尔范式(Backus-Naur Form)的创始者,曾荣获1977年图灵奖,他在函数式编程(Functional Programming)上的研究开启了新一代编程范式探索。另一方面,早在1972年就获得图灵奖的迪克斯特拉以其严谨的程序设计方法及对程序正确性的研究而著称。然而,1979年这两位大师之间爆发的一场关于函数式编程的通信争论,展现了科学家之间极富激情又尖锐的学术讨论,值得计算机科学爱好者细细品味。 这场争论的核心起因,是巴克斯在其图灵奖演讲中提出将编程从传统一元的冯·诺伊曼风格中解放出来,倡导函数式编程的理念与方法。他期望通过一套全新的代数方法和语言结构,提高程序的抽象度和数学证明能力,使编程更接近数学定理的严密性。
对这番主张,迪克斯特拉持怀疑甚至批评态度。他认为巴克斯的观点过于美化函数式编程的现状,过早地将其夸大为编程语言的新大陆。迪克斯特拉以其一贯的犀利笔调撰写了一篇公开的、充满讽刺和尖刻批评的评论(代号EWD 692),认为巴克斯过度吹嘘了尚不成熟的研究成果,并警示过于轻信这一新兴技术可能会误导业界。 巴克斯并未选择沉默,他不仅私下向迪克斯特拉反驳了对方观点,还在一封信中称对方的批评态度带有“傲慢无根据的意见”和“情绪化攻击”。他坦率地指出,迪克斯特拉在公开批评时未能进行深入的技术探讨,反而流于表面的嘲讽和带有政治性质的争斗,这种行为伤害了两位科学家的合作和交流。第二封信继续展开对具体论点的讨论,包括函数式编程中程序与证明语言的合一、变量命名问题及程序结构的等价性证明等技术细节。
迪克斯特拉于随后回复,表达了对巴克斯来信的感谢和歉意,澄清自己撰写公开评论的目的是基于对大众误解的担忧。迪克斯特拉指出,他的评论实际上是一种“政治宣言”,意在防止盲目推崇新技术,他亦欣赏函数式编程作为数学工具的价值,但警示不应将其过度神话。他还解释了为何选择不提前寄送评论稿给巴克斯——担心这样可能切断彼此间真正的学术交流。 巴克斯再次回函,批评迪克斯特拉的所作所为具有不妥的政治倾向,用阴谋和政治运动似的手法攻击他的研究。巴克斯强调,他发起的函数式编程研究旨在推进技术的发展,关注的是知识的积累而非政治博弈。他担心政治话题干扰了计算机科学的纯粹探索,且呼吁对彼此的研究成果应抱以尊重和求真务实的态度。
这对学术界的对话不仅限于书信往还。1979年后期,迪克斯特拉接受了巴克斯的邀请,赴美国加州参与一系列技术交流和讲座,缓和了双方的紧张气氛。通过面对面交流,两位大师能够更深入和坦诚地共享见解,促进双方对各自观点的理解和反思。 巴克斯和迪克斯特拉的这段通信历史,充分彰显了学术研究中思想冲突的常态。计算机科学正处于快速迭代的阶段,新技术和理论层出不穷,不同学者往往对未来方向存在分歧。巴克斯主张函数式编程作为一种彻底变革编程方式的理念,其实揭开了现代函数式语言(如Haskell、OCaml)以及纯函数式思维的序幕。
迪克斯特拉则代表了程序设计的严谨派,强调验证与正确性,怀疑任何未成熟技术的过度炒作。 这场以通信记录为载体的辩论,也为理解计算机科学思想流变提供了宝贵一瞥。它提醒后人,科学进步需要求真务实和开放包容的态度,任何突破都伴随着探索和质疑。二人在交流中相互钩沉、辩难、质疑也验证了真正的学术精神。 尤其值得关注的是,巴克斯对函数式编程的早期推动至今影响深远,如今在大数据处理、并行计算和推理系统中,函数式范式被广泛应用,而迪克斯特拉对程序正确性和算法优雅性的强调,构成了现代软件工程的基石。正是他们不懈的思想碰撞与批判,使计算机科学更加成熟且多元化。
1980年代之后,迪克斯特拉本人在函数式编程的一些概念上态度有所软化,部分观点也趋近于巴克斯,显示了学术观点的演进是一个动态过程。 对于计算机科学的学生、研究者和爱好者而言,巴克斯与迪克斯特拉这段著名通信不仅有助于理解函数式编程的起源和争议,更象征着科学讨论中执著与批判、理想与现实的博弈。重读这些信件,可以获得科学史的教训:真正的创新往往伴随冲突,理解不同意见背后的逻辑,有助于构建更加开放和理性的学术环境。 此外,这些信件也反映了1970年代计算机科学界欧美文化差异以及个人风格的碰撞。巴克斯带有典型美国科学家的乐观与直率,迪克斯特拉则展现欧洲学者的严谨与苛刻。跨文化的交锋也为后来全球化的计算机科学合作埋下伏笔。
总结而言,约翰·巴克斯和埃兹格·迪克斯特拉的1979年书信是一段经典学术对话,其探讨主题涉及函数式编程理念的科学价值、程序正确性的证明方法、技术传播中的政治影响等层面。今天,当我们站在计算机科学高速发展的时代,再次回望这场论战,既能感受两位大师的才华横溢,也能领悟到尊重、多元和深度交流对科研进步的重要意义。