您所在的位置:开发 > 语言&工具 > 因并发而生 因云计算而热:Erlang专家访谈实录(1)

因并发而生 因云计算而热:Erlang专家访谈实录(1)

2008-11-17 17:55 Red7 51CTO.COM 字号:T | T
一键收藏,随时查看,分享好友!

2008年11月17日,51CTO联合人民邮电出版社图灵公司邀请了《Erlang程序设计》一书的译者赵立炜老师和在Erlang开发方面有着丰富经验的成立涛老师作客51CTO聊天室,就Erlang程序设计语言和云计算方面的话题与网友进行了深入交流。

AD:

【51CTO.com独家特稿】2008年11月17日,51CTO联合人民邮电出版社图灵公司邀请了《Erlang程序设计》一书的译者赵东炜老师和在Erlang开发方面有着丰富经验的成立涛老师作客51CTO聊天室,就Erlang程序设计语言和云计算方面的话题与网友进行了深入交流。

赵东炜:网名jackyz,erlang-china.org网站创始人,国内最早学习和研究Erlang的人之一,是《Ajax实战》和《Erlang程序设计》两本经典著作的主要译者。12年IT行业工作经验,是互联网行业的老兵,现为独立开发人员。对架构高负载/大并发的系统颇有研究,经验丰富。

成立涛:资深C++程序设计师,从事P2P软件、流媒体、DRM保护等相关软件产品开发多年,有非常丰富的经验。国内Erlang阵营的先驱者之一,是Erlang的忠实fans,对Erlang有较深的认识。

以下为聊天实录,51CTO略有整理。但考虑到视频的同步问题,没有进行次序调整和大的内容整理。请读者谅解。

Erlang的起源与并发特性

主持人 : 提起程序语言,人们首先想到的是JAVA、C++、C#,可能对于Erlang大家了解得比较少,请赵老师介绍一下Erlang是一门怎样语言?

赵东炜:Erlang,是瑞典语的发音,所以跟英语的发音不一样。Erlang这个语言来自爱立信,实际上是爱立信在1985年的时候已经做出来的语言,到目前已经有20多年的历史,这个语言实际上已经非常成熟。因为它一直应用于电信等领域,所以离大家的视线比较远。

在多核的硬件已经成为主流的时候,大家发现传统的主流设计语言,比如说JAVA、C++、C#会有扩展性上面的困难,所以Erlang会被大家关注起来。因为它本身从语言的设计上,他是为这种方式提供了先天的优势在里面。

主持人 : 成老师对于Erlang的开发经验比较丰富,请您介绍一下。

成立涛:它和我们接触的JAVA、C++、C#的语法不太一样,Erlang还是基本的数据类型,我们可以把它作为参数,也可以做返回值来处理。在Erlang里面有一些比较高效的语法,比如说像模式匹配,还有一些非常好的递归,我们可以写出一些非常精简而且高效的代码。

Erlang像刚才赵老师说的,是一门面向并发的语言。它的语言在语言本身和在Erlang的层级上支持高并发、浓缩性和数据的持续性存储都有丰富的库,用Erlang开发是一件非常轻松的事情,是非常高效的。

主持人 : 在我们印象中像并发这样的特性,其他的语言也都做了相应的优化和调整,比如说JAVA平台的东西,像JAVA的多线程之类的,与这些语言相比,Erlang在处理并行计算方面有哪些优势呢?

成立涛 : Erlang在设计初期的时候就是为了开发电信系统,电信系统有很强的特色,比如说并发等等。其实,Erlang有一个非常重要的概念就是进程,但是这个进程的灵感来自于操作系统的进程,每一个进程都在自己的保护区域,一个进程损坏不会影响另一个进程,它们之间是高度隔离的。Erlang创建了一种新的 法,它可以非常快地创建和销毁,它们之间仅仅通过消息来交互,它们之间也可以做高隔离,这样对并行提供了非常好的基础。这是Erlang所做的。

对于一些像JAVA和.NET、C++之类的平台,它们也是意识到当今环境下多核和并发对于原有语言有一些不足,做了一些改进措施。但是,Erlang已经非常成熟了,已经有20多年的历史了,刚才赵老师已经说过了。可以这么说,其他语言刚刚起步,而Erlang已经走得比较远了,这就是它们之间比较明显的区别。

我们不能断定以后Erlang是不是在并行领域是最优的语言,但目前至少说是最好的。

主持人 : 是目前解决并发最好的?

成立涛 : 对。

主持人 : 赵老师怎么看呢?

赵东炜 : 我觉得他刚才说的这部分,有另外的部分我可以补充一下。

像其他的语言,像JAVA、.NET它们都有措施上的调整,它们目前主要的调整是在语法当中加入了FP的特性,就是面向函数编程的特性。为什么加入这些特性呢?是因为我们提到的扩展性的问题,在我们目前主流的编程语言非常难解决。因为设计在底层的架构本身,它会有一些东西是跟我们并发相冲突的,这个问题的解决方案就是要加入函数式的编程的特性。但是像JAVA、.NET、C++这种编程语言不能像Erlang这么彻底的解决这个问题,所以我认为它们的优化和调整可能不能彻底地解决这个问题,因为这个问题是在语言的底层。所以,我认为它们并发的措施,可能会让将来的并发编程容易一点,但不能从根本上解决这个问题。

Erlang入门指引

主持人 : 成老师是怎么走进Erlang这个编程语言的?您的项目当中有很多应用到Erlang的并发特性的需求吗?

成立涛 : 我在公司的时候接触了一个Erlang服务器,我们公司在用,感觉它和一些用JAVA开发的服务器有很大的优势,所以我就采用它,开始对Erlang感兴趣,开始学习,越学习越发现以前比较难解决的问题,用Erlang都是非常容易实现的,就一步步到现在了。

主持人 : 如果有网友看过我们这期访谈,想对Erlang有一个比较深入的了解和学习,二位老师有什么好的资源或者是学习方法向他们推荐吗?

赵东炜 : 首先是这本书《Erlang程序设计》,这是Erlang的创始人自己写的。只要按照这个书不断地练习,很快就可以学会Erlang本身。另外Erlang是一个开源的语言,本身有一个很大的OTT的库,有很多的源代码,都是非常高质量的源代码,可以拿来作为借鉴。另外,网上有很多用Erlang开发的开源项目,开源项目涉及到的领域会比较多,大家作为初学者学习,这些开源项目是非常好的模仿对象。

成立涛 : 这本书是不可多得的,但是像Google等等上面都有很多的开源的项目,我们首先在理解阅读这本书的基础上,我们通过动手的开源项目不断地提高自己。

赵东炜 : 我们在中国有一个Erlang的中文社区是erlang-China.org,上面已经有1年多的历史了,有很多的Erlang的资料,是一个很不错的站点,可以拿来做参考。

内容导航
 第 1 页:Erlang入门指引  第 2 页:Erlang学习难点
 第 3 页:Erlang并发特性与云计算  第 4 页:函数式语言的复苏
 第 5 页:网友问答环节



分享到:

热点职位

更多>>

热点专题

更多>>

读书

网管员必读—超级网管经验谈(第2版)
本书的第1版获得过“2006年度全行业优秀畅销品种奖”。全书共15章,分别介绍了网管员职责和应具备的工作习惯、共享上网与访问控

51CTO旗下网站

领先的IT技术网站 51CTO 领先的中文存储媒体 WatchStor 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i 51CTO学院