Erlang简介
Erlang最初是爱立信为开发电信相关产品而产生。
Erlang是一种面向并发 (Concurrency Oriented),面向消息( Message Oriented)的函数式 (Functional)编程语言。
面向并发说明 Erlang支持大规模的并发应用,我们可以在应用中处理成千上万的并发,而不相互影响。面向消息,其实是为并发服务!我们应该都熟悉多线程,熟悉加锁解锁操作,熟悉可能出现的资源竞争与死锁。在 Erlang的世界里,我们可以将轻轻的抹去这些令人苦恼的词汇。 Erlang的世界,每个处理都是独立的个体,他们之间的交互仅仅靠消息!因此不会有死锁,不会有那种痛苦的编程经历。
Erlang中一个非常重要的名词: Process,也就是我们前面提到的“个体”。它不是我们操作系统中的进程,也不是线程。它是 Erlang提供给我们的超级轻量的进程。为了适应大规模并发的特性, Process需要能够快速创建,快速销毁。 Process之间通信的唯一方法就是消息,我们只要知道一个 Process的名字即 pid,就可以向其发送消息。 Process也可以在任何时候,接收消息。我们这样做只有一个目的:让我们的系统更加简单,用一种朴素的做法,实现一个高效的语言。
Erlang是种函数式编程语言,对此我没有很深刻的理解,最明显的特征就是, Erlang中到处都是函数,函数构成了我们的产品的主体,把这些函数放到一个个的 Process中去,让他们运行起来,那么就组成了我们朝气蓬勃的产品。
Erlang支持对数据的位操作,拥有丰富的数据持久化机制。
同时需要说明的是 Erlang内建垃圾回收机制。
Erlang的语言特性:
简单小巧、模式匹配、变量单次赋值、丰富的libs、灵活多样的错误处理、代码热替换、天生的分布式、超强的并发性、多核支持、跨平台、开源。