首页 > 代码库 > 酒罢问君三语

酒罢问君三语

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

酒罢问君三语