Chinaunix首页 | 论坛 | 博客
  • 博客访问: 229898
  • 博文数量: 35
  • 博客积分: 659
  • 博客等级: 上士
  • 技术积分: 357
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-01 21:16
文章分类
文章存档

2012年(12)

2011年(23)

分类: 云计算

2011-11-15 10:44:10

         Erlang问世于1987年。在瑞典爱立信的计算机科学实验室,由Joe Armstrong、Robert Virdung 和 Mike Williams在Bjarne Dacker的带领下共同发明出来的。Erlang 得名于丹麦数学家Agner Krarup Erlang, 同时Erlang还有Ericsson(爱立信) language的意思。
        虽然Erlang出现的时间甚至比Java和Ruby的时间还要早,但是当时Erlang的出现是为了研究下一代电信产品的编程语言,所以并没有受到广泛的应用。 可是Erlang语言的开放分布式、容错和大规模并发的特性,非常符合最近几年开始火起来的云计算,也再近几年受到了广泛的关注和应用。
        1998年12月爱立信做出了一个重大的决定,在Mozilla公共许可证衍生的EPL许可证下,把Erlang作为开源代码发布,我Erlang也因此活跃在了各大开源社区。
    
    Erlang的特性:
        Erlang是一个结构化,动态类型的编程语言,内建并行计算支持。最初专门为通信应用设计,比如控制交换机或者变化协议等,因此非常时候构建分布式,实时软并行计算系统。
        并发是Erlang成功的根本,Erlang不提供共享内存的线程,而是每个Erlang进程都有它自己的内存地址,并拥有它自己的堆和栈。 进程间用过消息传递进行相互交流,系统的消息交换也仅需几微妙。Erlang的进程在虚拟机中生成,调度和处理,而与底层的操作系统无关,所以进程的生成时间是以微妙为单位计算的, 这些特性让Erlang可以在短时间内生成、调度和处理大量的进程。
        Erlang具有软实时性,Erlang中的储存管理是自动的,垃圾收集的实现是以每个进程为基础。即使存在需要垃圾手机的内存,系统的响应时间也能以毫秒级计算。正因为如此次,即使在持续高峰的时候,Erlang也不能降低吞吐量而高负荷运行。
        Erlang已经把分布式纳入了语言的语法和语义中,它允许创建与位置无关的系统,默认的分布模式是基于TCP/IP协议,它允许一个异构网络上的节点(或Erlang运行时系统)连接到任意一个运行任何操作系统的其它节点。只要这些节点通过TCP/IP网络连接并且正确配置了防火墙,这样就形成了一个所有节点都能相互通信的全互联网络。
        Erlang作为一门开放的语言,有专门的机制来和其它语言(C、Java、Ruby、Python、Perl和Lisp等)进行交互,让适合某项工作的语言来完成某些任务。
        OTP(Open Telecom Platform)开放电信平台,为Erlang提供了一系列枯涸设计原理来支持建立健壮性和可扩展的Erlang系统,让程序变得简短易懂,而且错误往往更少。
     
        Erlang的这些特性使得它现在大规模的运用在并发的服务器集群、云计算和各种基于多核处理器的台式计算机和笔记本电脑上。恰好在昨天,AMD在北京全球首发皓龙6200系列处理器,成功搭载16核的处理器。这是AMD第一批基于最新的“推土机”架构的服务器CPU,也是全世界第一款16核X86处理器。这也标志着AMD公司将更多的精力放在了云计算上。而Erlang的作用就是合理高效的调度使用这庞大的资源。
        在20世纪80年代,Erlang社区流行的一个神话是:在不久的将来函数式语言将称为能在他通用并行计算机上运行的唯一一种语言,虽然现在并没有实现,但是因为“云”,这个神话也在进行中,所以说Erlang将会像Java一样在不久的将来席卷全球,成为未来的云计算语言!
    
阅读(3181) | 评论(3) | 转发(0) |
0

上一篇:函数式编程

下一篇:浮躁的话就静下心来

给主人留下些什么吧!~~

KakitChen2011-11-15 22:04:08

RSroad: 写一篇erlang和脚本语言的区别吧,因为脚本语言不也是可以进行进程调度,系统调度的一些东西么?.....
好,等我对脚本和Erlang更深如了解就写一篇。

KakitChen2011-11-15 22:04:05

RSroad: 写一篇erlang和脚本语言的区别吧,因为脚本语言不也是可以进行进程调度,系统调度的一些东西么?.....
好,等我对脚本和Erlang更深如了解就写一篇。

RSroad2011-11-15 19:36:02

写一篇erlang和脚本语言的区别吧,因为脚本语言不也是可以进行进程调度,系统调度的一些东西么?