erlang学习半个月的心得

来源:互联网 发布:广数928tea编程说明书 编辑:程序博客网 时间:2024/05/09 15:13

当初,为erlang介绍中的并发、分布式、可用性、软实时特性所吸引,开始入手erlang。目标是想了解erlang是怎么做到这些特性,对开发效率的提升有多大,我目前项目中碰到的并发、分布式、实时的困境他能否解决?怎么解决?

主要还是通过网络上下载的Erlang程序设计中文版(完整书签).pdf》来学习,pdf大都是图片版,文字版的很少,找到的内容也不全。

 

首先看了顺序编程一章,算是入了门,我想真写起程序来,除了变量单次赋值比较麻烦,其他跟C等命令式语言也不会差太大,估计需要个把月的转变期。

erlang的优缺点

一、OTP

按目前的了解,我认为erlang真正比其他语言好的地方,erlang最大的优点,不是语言,而是他的OTP部分。爱立信用这个语言成功开发了ATM交换机,这个成功项目的框架连同erlang语言一起开源出来,框架就叫OTP。也就是说,如果你的项目需求跟ATM交换机类似,那用erlang非常好,完整的框架摆这了,节约大量的成本。

更重要的是,OTP不是提供底层的类库,他的理念是非功能性需求和功能性需求的代码分离,也就是说这个系统的一半已经开发好了,代码热加载、分布、系统管理、系统监控 等等,你只要专注于功能需求的实现。

OTP中还带有一个分布式数据库Mnesia,类键值数据库,erlang语言的元组等可直接存入取出,这对开发效率应该是有非常大帮助的。

二、可用性

erang在错误处理方面想法很独到,详细可以参看创始者之一写的论文《面对软件错误构建可靠的分布式系统.pdf

erlang常说的可用性n个9,在创始者论文中也提到,他是从爱立信的官方宣传文档中找到的,怎么算出来的不知道,他自己没有数据,因为各项目的人都是告诉他很好,很稳定,但是没具体统计。我们意会一下,这表示erlang不同于其他开源产品,他的稳定性可用性很优秀。但是我们自己开发的产品,稳定性可用性还是要靠自己的能力去保障。

常有人把erlang开发的web服务器Yaws跟Apache对比,有个经典的对比图,erlang超级大牛余峰博文中有一篇就是分析这次的测试,结果是这个测试方法不公平。

所以erlang不是银弹,不是用了它产品就一定可以分布式、高可用性。但确实会帮助你在这方面有很大提升。

三、分布式、并行性

erlang让你写代码的时候,很容易实现并发和分布式,而且代码书写的时候,多机分布和单机并行的代码写法一致,本来是单机的,数据量提升以后,加一台机器,代码不用改。当然,前提是你按erlang的OTP设计思路来开发。

 

四、erlang的缺点

erlang语言如果不是函数式语言,我想erlang现在已经大红大紫,目前的开发人员,99%是命令式语言开发的,这个学习成本是一个很高的门槛,特别是如果某个项目想用erlang,到哪里找三四个开发人员,这是个很大的问题。

学习推荐

erlang的中文教材,不管电子版的还是印刷出来的,都非常少,但是都很经典。前面提到的创始者写的两个文章,基本上是必看的。

用erlang OTP写一个完整项目,细节的东西还是很多的, 所以这本书是做实际项目前必看的《Erlang/OTP并发编程实战[平装]~洛根(Martin Logan) (作者),梅里特(Eric Merritt) (作者),卡尔森(Richard Carlsson) (作者),连城 (译者)

国内erlang的高价值的博文,有一大半是来自余峰,所以他的博客和博客合集《erlang深度分析.pdf》,是需要经常看的。pdf在他的新博客上有下载链接。

新博客地址: http://blog.yufeng.info/

旧博客地址: http://mryufeng.iteye.com/

原创粉丝点击