[译] 为什么erlang这么好

废弥 于 2013-11-15 发布

#####为什么要用Erlang? 独到之处久经考验, 省时省钱易于学习

#####好在哪里? 轻量级并发,代码热部署,透明分布,OTP,其他

#####开始

#####独到之处

Erlang由爱立信公司开发,其最初设计目标就是用来开发完全的可伸缩的,容错的,分布式的,永不停止的,软实时应用。 所有的事情在语言中,运行时以及库都旨在使Erlang成为开发不同软件的更好的平台。

如果你想在你的应用中使用Erlang:

Erlang是面向并发的,自然也善于充分利用现在的多核系统

轻量级的并发,透明的分布,代码热部署,以及OTP是Erlang的主要特征,这使得使用Erlang是一种乐趣。

#####久经考验

Erlang已经成功的在产品环境下运行超过20年(据报道,正常运行在9-nines–仅仅在某年宕机过31ms),这足以证明她可以很好的运行在大型的工业开发及小型的敏捷创业团队。

爱立信公司将Erlang广泛用于各不同大小的项目,不管是商业方面的还是内部使用的。AXD301 ATM作为爱立信的龙头产品之一,有超过110W行Erlang代码,这可能是现今最大的Erlang项目了。

电信业的Erlang使用者:Motorola, Nokia, T-Mobile, BT.
大型软件公司及创业公司:Amazon, Yahoo!, Facebook, Last.fm, Klarna, Tail-F, Github, Heroku, Engine Yard, MochiMedia.
开源项目:Flussonic, ejabberd, CouchDb, Riak, Disco, RabbitMQ, Dynomite.

#####省时省钱

Erlang能使你用更小的团队更少的预算去更快的交互软件,以及减少生命周期维护成本和总体拥有成本。 这可能是由多方面原因促成的:

#####易于学习

Erlang有一个使的它很容易就学会的简要理念。有经验的程序员可以在学习一两天后就写出有用的代码,它并没有复杂的概念需要理解,也没有晦涩的理论需要精通。他的语法有一点点不同于Ruby、Python、或者Java,但是你并不需要花多少时间就可以适应的。

事实上,Erlang开发团队最初的设计目标之一就是使这门语言很容易学习。Erlang是非常实用的,它是由实际开发中的程序员为解决真实的大规模软件工程问题的程序员所设计的。

#####轻量级并发

Erlang的进程是非常轻量的,每个进程大约只有500btyes的开销。这意味着甚至在比较旧的机器上都可以创建数百万的进程。

由于Erlang的进程是完全依靠操作系统进程的(不是由系统调度程序所管理的),这意味着不管你的程序是运行在Linux,FreeBSD,Windows,还是其他的运行了Erlang环境的系统上,都将有完全相同的表现效果。

#####代码热部署

我们常常不想为了升级程序而停止一个事实的控制系统。甚至在某些控制系统中,我们根本就不能停机来完成升级,在设计这样的系统时必须考虑到动态代码升级,比如像给NASA开发的X2000卫星控制系统。

当你用Erlang开发应用时,如果你用OTP开发的话,你可以毫无花费的完成动态代码升级。它的机制是非常的简单并且很容易理解的。

这将会节约许许多多的开发时间。

Erlang的一般开发流程:

  1. 开始应用
  2. 编写代码
  3. 再编译(一键完成)
  4. 就是这样!并不需要重启这一步。在运行的同时去自动测试以确保没有死循环并完成项目代码的更新。这当然与TDD强大的机制有关。

#####透明分布

Erlang开发的程序可以很容易的从一台机器传递信息到网络中的其他机器。除了定时(timing)分布式系统中的所有机器都像在同一个节点工作一样。

#####OTP

OTP,开发电信平台(Open Telecom Platform),是一个标准库的集合,它是经过多年从真实的可扩展性的、分布式的、容错性的应用里面提炼出来的。

#####其他

原文:http://veldstra.org/whyerlang/