`
zoutm
  • 浏览: 95338 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Erlang,让我找到了云计算时代的编程语言

阅读更多

      从去年开始研究java并发编程,对java的多线程,各种锁,线程池都有一定的了解。再加上看了一部分周伟明老师的《多核计算与程序设计》和《多核编程艺术》,总感觉多核时代的编程模式让程序员很痛苦。程序员不对软件和硬件知识做深入了解,要开发出具有高性能,高可用,高伸缩性的程序不是那么容易,特别是同步,锁,原子性,程序活性让很多从事软件开发多年的资深程序员都搞得不太清楚。而云计算时代,多核,多任务,多系统交互,程序之间的独立性和依赖性都变得越来越强,如何系统之间的关系更简单,如何能充分系统的资源,如何让程序具有高度的独立性,容错性都是我们面对的主要问题。

 

      今年在口碑网上看到了一个java并发编程的程序员圆桌会,主要来至于淘宝,支付宝,阿里云的技术专家们详细深入地介绍了java并发编程的基础知识及各种实践经验,特别是林昊提出的协程比较有意思,感觉java并发编程的模型必须得改,以适应云计算的需求。我对java在并发上的感觉就是它提供了一把宝剑,材质不错,但磨刀石,怎么磨出最锋利的宝剑还得自己去打造,弄得不好或不是能工巧匠很难打造。

 

       最近公司号召我们学习,而近几年云计算的概念也是热火朝天,互联网的大公司无一例外都卷到云了,Amazon,google,yahoo,IBM,Facebook,Twitter,Microsoft,oracle都提供了自己的云,国内的大型互联网公司也在研究。云计算相关的SAAS,PAAS,LAAS都相继提出。云计算的分布式特征非常明显,云计算的最大特点是:分布,互连,容错性,可伸缩性,简单性。再加上硬件的多核时代到来,cpu的核心越来越多,如何充分利用这些硬件资源,是我们软件必须面对的问题。共享内存的多核架构使我们不得不面对并发,多线程,锁这些复杂问题。

 

        Erlang语言被一些同事提起,一直想抽空研究一下,今天有空静下心来看看这个天生并发处理的魅力。Erlang的原理非常简单,基于函数式的编程,我们知道,函数的一些基本要素,输入,输出,处理过程。最纯粹的处理过程是只对输入进行变换处理,不对周围环境变量或者全局变量产生任何影响,输出就是函数的产品。基于函数式的语言天生就具有线程安全性。 Erlang语言提供了超轻量级的进程,据说比创建普通线程的代价还小(有待考查),程序都是基于进程级,进程之间的通信只有一种模式:消息传递。彻底解放了共享内存的多线程模型编程难度。而消息的传递都是异步的,不可靠的。不管进程是否在同一台机器还是不同机器,编程模型都一样,这和我们现实生活的状态一样。人就像进程,而社会提供的各种物质形态就像计算机的各类数据,人的活动就如像运行时函数。人类社会的各种活动改变着物质形态,程序的进程运行改变着数据,如此合乎人类思维的语言并充分解决了原有并发编程中的各种难题。那么,它的局限性在哪里呢?由于还没有仔细研究,但可以看出,原有共享内存方式让多个线程可以共同方式来访问相同的资源,而消息传递方式意味着相同的内容必须要复制一份传递给其他进程。怎么觉得有点像管道。 标题有点吓人,Erlang究竟能解决我们哪些问题呢,还需要继续进行研究,我将会在后续文章中提及。

2
2
分享到:
评论
2 楼 zoutm 2010-04-11  
谢谢,主要是编辑没用习惯,有点乱,本来是分段了的
1 楼 ZangXT 2010-04-10  
写篇blog不容易,排下版吧

相关推荐

    Erlang零成本实现云计算

    Erlang零成本实现云计算,为初学者提供参考和学习,并为企业建设云提供帮助

    Erlang:并行计算和云计算

    孟岩谈Erlang:并行计算和云计算,详细介绍了新一代编程语言Erlang在并行计算和云计算方面的特性

    Erlang零成本实现云计算.pptx

    Erlang零成本实现云计算.pptx

    余锋《erlang零成本实现云计算》

    余锋《erlang零成本实现云计算》--淘宝网核心系统技术专家--2010中国软件技术大会.pdf

    Erlang零成本实现云计算讲义.pptx

    Erlang零成本实现云计算讲义.pptx

    Erlang与云计算.pdf(确保可以打开)

    Erlang与云计算.pdf(确保可以打开)Erlang与云计算.pdf(确保可以打开)Erlang与云计算.pdf(确保可以打开)

    erlang与云计算

    erlang 云计算erlang 云计算erlang 云计算

    Erlang并发编程,Erlang程序设计,Erlang中文手册

     Erlang是一个结构化,动态类型编程语言,内建并行计算支持。最初是由爱立信专门为通信应用设计的,比如控制交换机或者变换协议等,因此非常适 合于构建分布式,实时软并行计算系统。 使用Erlang编写出的应用运行时...

    Erlang编程指南

    《erlang编程指南》是对erlang语言的深入介绍。erlang是任何必须并发、容错和快速响应的环境的理想编程语言。随着多核处理器及其针对并发的新的可扩展方式的发展,erlang得到了广泛的使用。通过本书,你将学会如何...

    Erlang编程语言

    经典英文版erlang编程资料。 Erlang是用于大型并发服务系统的编程语言,例如在电信系统、云计算系统,适合大规模运算的系统。属于小众的编程语言,在很高级的大规模并发系统才会有应用。

    erlang编程指南

    erlang编程语言圣经 erlang从业人员的必备书籍 erlang语言开发入门

    Erlang编程语言The Erlang Programming Language

    这是《 Erlang编程语言》的上一页,我们正在处理中,将那里的所有书籍都转换为新页面。 请再次检查此页面!!!

    erlang编程 Introducing Erlang

    erlang入门电子书 erlang编程 Introducing Erlang,作者Simon.St.Laurent

    Erlang高级原理和应用 并行编程

    Erlang 高级原理和应用 并行编程 脚本语言

    Erlang / OTP并发编程实战

    二十多年来,在传统电信领域高并发、高可靠、高容错的严酷环境下,Erlang语言和OTP平台被锻炼得坚如磐石,浓郁的函数式特质更是恰到好处地弥补了传统命令式语言在并发编程上的固有缺陷,大大降低了构筑并发、容错、...

    基于Erlang VM的语言

    基于Erlang VM的语言基于Erlang基于Erlang VM的语言 VM的语言基于Erlang VM的语言

    多核时代 Erlang的时代

    erlang 并发 编程 开发 语言

    ErlangOTP并发编程实战(高清PDF版)

    书是讲述下一代编程语言Erlang 的权威著作,主要涵盖顺序型编程、异常处理、编译和运行代码、并发编程、并发编程中的错误处理、分布式编程、多核编程等内容。本书将帮助读者在消息传递的基础上构建分布式的并发系统...

Global site tag (gtag.js) - Google Analytics