欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

酒罢问君三语

程序员文章站 2022-03-07 17:13:06
你为什么要开发Erlang? Armstrong博士:纯属巧合。我本来没打算发明一门新的编程语言。当时,我想找一种更好的方式来编写电信交换控制软件。我先试了试Prolog。Prolog是一门绝妙的语言,但它无法完全满足我的需要,既然如此,我就开始瞎倒腾Prolog。我琢磨着:“如果改变一下Prolo ......
你为什么要开发Erlang?
 
Armstrong博士:纯属巧合。我本来没打算发明一门新的编程语言。当时,我想找一种更好的方式来编写电信交换控制软件。我先试了试Prolog。Prolog是一门绝妙的语言,但它无法完全满足我的需要,既然如此,我就开始瞎倒腾Prolog。我琢磨着:“如果改变一下Prolog的编程方式,那会怎样?”于是,我写了个Prolog的元解释器,给它加上了并行进程,还加上了错误处理机制,诸如此类。就这样,过了一段时间,我给这些新增加的变化起了个名字——Erlang,一门新语言就这么诞生了。之后,越来越多的人加入这个项目,这门语言也逐渐发展起来。我们想出了编译它的方法,加入了更多东西,获得了更多用户……
 
你最喜欢它哪一点呢?
 
Armstrong博士:我最喜欢它的错误处理、运行时代码升级机制,还有bit-level模式匹配。错误处理是这门语言最不为人所知的部分,也是与其他语言差别最大的部分。Erlang的“非防御”编程和“就让它崩溃”这一套概念,既是它的独门绝学,也是它与传统方法截然相反之处。不过,这样做的确能编出简洁而漂亮的程序。
 
如果能让时光倒流,你最想改变哪项特性?
 
Armstrong博士:这问题很难,我可能会在不同时间给出不同答案。为这门语言添加一些移动特性应该不错,这样我们就能通过移动通信网络传送计算结果。我们可以用库代码来做这件事,但它并不被语言本身所支持。我现在想,如果追本溯源,把Prolog式的谓词逻辑加入Erlang,产生一种谓词逻辑和消息传递的全新组合,那想必会十分美妙。
还有不少小改动也是我想做的,比如说,加入散列映射、高阶模块,等等。要是推倒重来,我可能会更多地把心思花在各项编程事务的协调上,比如说,如何运作有大量代码的大型编程项目——如何管理代码版本、如何搜索想要的东西、各种事物如何演化。当程
序员编写了大量代码之后,他的任务就不再是编写新代码,而是准确找到现有代码,并把现有代码整合起来。因此,搜索和协调就变得日渐重要。