当初,为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/

erlang学习半个月的心得相关推荐

  1. 三星Android p 卡,购买经历 篇二:三星S10 半个月使用心得

    购买经历 篇二:三星S10 半个月使用心得 2019-06-18 10:03:08 0点赞 0收藏 0评论 结论 这是一部让人难以割舍的手机,我想拥有也想放弃. 我之前一直是苹果全家桶用户,用的是7P ...

  2. 【免费学习半个月】强烈推荐你学习这个《机器学习与推荐系统实训强化课》...

    前几天,我给朋友推荐一个课程,跟他说认真学能拿到头条offer,一开始还说我吹牛,看完介绍,结果直接就报名了.就是下面这个 <机器学习与推荐系统实训强化课> 「Machine Learni ...

  3. agx 安装ros opencv_史上最全的OpenCV入门教程!这篇够你学习半个月了!万字长文入门...

    一.Python OpenCV 入门 欢迎阅读系列教程,内容涵盖 OpenCV,它是一个图像和视频处理库,包含 C ++,C,Python 和 Java 的绑定. OpenCV 用于各种图像和视频分析 ...

  4. 史上最全的OpenCV入门教程!这篇够你学习半个月了!万字长文入门

    推荐下我自己建的人工智能Python学习群:[809160367],群里有我整理的一份关于pytorch.python基础,图像处理opencv\自然语言处理.机器学习.数学基础等资源库,想学习人工智 ...

  5. SSM学习半个月后的笔记整理,希望对你有帮助

    在Typora上写完搬上来的.格式可能有点怪,见谅. 目录 一.Spring 1.IOC容器----Inversion of Control Containers and the Dependency ...

  6. 半个月爆肝,Python学习指南:学习方法、路径图、资料都备齐了!

    1.6米长,八年Python使用经验,耗时半月,制作了这张Python学习路径图! 视频大纲: 自己的课代表 1.为什么学习python 00:43 2.python学习路径图和python备忘手册( ...

  7. 21 张思维导图,柠檬哥肝了半个月的「后端技术学习路线」长啥样?

    珍惜当下,因为每一天都不平凡.1915 年的今天,爱因斯坦向普鲁士科学院展示广义相对论的方程式. 大家好,我是柠檬. 柠檬哥最近在思考公众号的内容方向问题,如何让公众号持续提供有价值的内容给大家,之所 ...

  8. 这21 张思维导图,足足让我肝了半个月的「后端技术学习路线」长啥样?(附全套Java资料)

    写的文章也都是围绕着这个主题,这位读者的问题让我突然意识,我忽略了读者群体里有很多是初学编程,或者刚接触计算机的同学. 作为一个普通大学非计算机专业,自学后端技术进入腾讯从事后端开发工作,我自己也是非 ...

  9. python时间比较好_花了半个月时间,终于找到了一款最适合的python教程

    最近会有一些广告主来找想在星佳的这个个人公众号上投放广告,但偏偏有些内容确实不能推,哪怕赚钱,其实也并不是自己多有良心,只是去帮那些产品站台带来的风险和他们给的那点广告费比,完全没在一个数量级,说这个 ...

最新文章

  1. 关于(++i)+(++i)+(++i)与(++i)+(i++)与(i++)+(++i)
  2. 六十一、Python中的smtplib和email实现邮件发送
  3. jzoj100042-保留道路【最小生成树,图论】
  4. CNN框架的搭建及各个参数的调节
  5. easyexcel 填充模板 格式变了_Qamp;A | 如何制作规范的电子合同模板?
  6. Android Studio的快捷键图文并茂
  7. update yum 到指定版本_centos使用yum update升级到指定小版本
  8. 2021某宝上的千月五级分润源码影视小说源码
  9. 安卓案例:使用AChartEngine绘制折线图
  10. 001mongodb数据库介绍002mongodb的增删改查003数据导入导出
  11. php的setinc方法,thinkphp3.2.0 setInc方法 源码全面解析
  12. jQuery 3D圆盘旋转焦点图 支持鼠标滚轮
  13. GUN/LINUX的文件类型
  14. 企业微信怎么统计客户数量
  15. Kafka入门经典教程
  16. 1134: 字符串转换 C语言
  17. 光耦p621引脚图_TOSHIBA光耦TLP系列的部分光耦的应用
  18. 计算机程序设计员初级pdf,计算机程序设计员(实摩)国家职业标准.pdf
  19. 不得不使用的百度快照优化seo技巧
  20. python实现骚操作,表白神技:整个朋友圈都是爱你的样子

热门文章

  1. CSS day_11(6.24) Boot栅格系统和常用组件
  2. 程序人生-哈工大计算机系统大作业
  3. [unity]打包apk安卓模拟器内闪退应用停止运行
  4. Cortex-M3 操作模式和特权级别
  5. 12纳米做出了7纳米的性能,为国产芯片打破美国限制指明道路
  6. 神奇的计算机教学反思三年级,信息技术《神奇的复制》教学反思
  7. Jina AI 荣获「2022 稀土掘金引力榜」年度新锐企业 Top 10 称号!
  8. 数据治理第1享:数据资产目录
  9. 经典MySQL常用语句大全
  10. 什么是认知思维 认知思维的四个阶段 认识自己 了解自己