作者 | Gabriel Gonzalez译者 | Sambodhi策划 | 刘燕本文作者对
编程历史的终结作了一番畅想,这是作者的一家之言,我们无法准确判断未来编程将会转向何处,但是我们可以根据其发展轨迹,就像本文作者一样,做出大概的判断(未必准确)。
本文最初发表于作者个人博客,经原作者 Gabriel Gonzalez 授权,InfoQ 中文站翻译并分享。我花了不少时间思考这个问题:
编程历史的终结
可能是什么样子的。我所说的“历史的终结”,就是编程范式不再有重大发展的时候。对于编程的“命运”我很关心,因为我更愿意参与那些让我们接近终极编程模式的开源项目。从我的经验来看,这类工作寿命更长,影响更大,有助于推动整个编程领域的发展。那么,对于编程而言,历史的终结会是怎样的呢?是不是:
一些人将编程视为已经解决的问题,并将所有新的语言和范式视为旧语言或范式的翻版。在他们看来,剩下的工作就是慢慢地优化事物,排除错误,或者解决非技术性的问题(比如人事管理或者资金),从而完善我们的工艺。这一观点我个人并不认同,因为我相信,至少,函数式编程范式将逐渐取代面向对象和命令式编程范式(虽然函数式编程未必就是终极编程范式)。
或许机器可以将我们的自然语言指令翻译成代码,从而减轻了我们准确表达意图的负担。或许一些足够智能的、人工智能驱动的 IDE 可以为我们自动地完成大多数程序。同样,我也不相信这一观点,而且我认为 Dijkstra 在他的文章《论“自然语言程序设计”的愚蠢性》(
On the foolishness of "natural language programming**")中很好地推翻了这一观点。老实说,我不能肯定什么是正确答案,但是我会给出我自己关于编程的历史终结的猜测。
数学DSL我的观点是,编程的下一个逻辑步骤是分成两个没有重叠的编程领域:
具体地说,我预期
编程语言在本质上将发展成为更具数学特性的语言,让用户编写的程序像纯粹的数学表达式一样表达其意图。举例来说,考虑下列布尔逻辑“和”运算符和函数合成运算符的数学规范:
True