Fifth Erlang
Erlang简介:(一些很厉害的特性)
-
Erlang是一个结构化,动态类型编程语言,内建并行计算支持。最初是由爱立信专门为通信应用设计的,比如控制交换机或者变换协议等,因此非常适 合于构建分布式,实时软并行计算系统。
-
使用Erlang编写出的应用运行时通常由成千上万个轻量级进程组成,并通过消息传递相互通讯。进程间上下文切换对于Erlang来说仅仅 只是一两个环节,比起C程序的线程切换要高效得多得多了。
-
使用Erlang来编写分布式应用要简单的多,因为它的分布式机制是透明的:对于程序来说并不知道自己是在分布式运行。
Erlang是函数式语言,可靠性方面相当好,可用于开发可靠性极高的系统。(完全的函数式语言)
语法等:
列表和高阶函数:
-
高阶函数:foreach,filter,map,。。。
-
列表操作:foldl,foldr,。。。
-
列表构造:【H | T】
基本并发语法;
同步消息:
-
消息服务中的每个receIve子句都要匹配一个元组,元组宝航请求此次翻译服务的进程ID以及需要翻译的词。有了这个ID,我们就知道该把响应发给谁。
-
每个receive子句都要吧响应送回发送者,而不是吧结果打印出来。
-
不在使用简单的!语句。
Erlang总结:
-
动态和可靠性:Erlang依靠的不是编译器所提供的人工的“安全网”,而是链接并发的能力,这样既可靠又简单。
-
轻量级、无共享资源的进程:Erlang拥有消息传递范型和原语,因此它可以轻易的写出带有一定的分离性的应用程序,而这点较为罕见;
-
OTP——企业级的库:这个不了解;
-
就让他奔溃:这个策略使得i不必理会进程为什么奔溃,因为你只要重启它就好。这是一种函数式编程范型,Erlang的饭不是策略也由此得到了增强。
不足:
-
语法:它的语法源于Prolog,然而Prolog比较的晦涩难懂,语法有点别扭。(if 、case、还有标点)
整合:不在JVM虚拟机上运行,JVM的各种各样的java库以及数以十万计的可用部署服务器都是宝贵的财富;