主要特性
如果问我觉得Erlang最重要的特性是什么的话,我觉得应该是并发。
并发能够带来的好处是不言而喻的,比如:
- 性能
现在的计算机由于主频的限制,都在往多核的方式发展,有些比较高端的机器甚至有几十个核心。如果编写的程序都是顺序运行的话将会严重浪费多核计算机的计算能力。Erlang本身是面向并发编程的,如果把之前在单核机器上面跑的Erlang程序放到多核机器上面跑的话,性能将会极大的提高。 - 扩展性
如果在一台机器上面运行Erlang程序还不能满足性能的要求的话,可以简单的升级机器的CPU核心个数,甚至可以经过简单的改造把不同的进程分配到不同的机器上面运行,通过水平扩展方式来满足高并发的业务需求。 - 容错性
Erlang内部实现的进程是相互独立的,一个进程的崩溃并不会影响到另外一个进程的运行,同时Erlang内部还OTP框架来保证系统的容错性。 - 清晰性
Erlang世界观和现实的世界是一样的,在大多数的编程语言里面事情都是顺序发生的,但是在Erlang的世界里面所有的事件都是并发的,在编写程序的时候能够比较清晰的把现实世界事件的并行发生的的特性映射到Erlang的并发编程上面。
简介
快速介绍下Erlang比较与众不认同的特性:
- Erlang Shell
在编写Erlang程序的过程中会有很多时间花费在Erlang Shell里面,Erlang Shell类似于Linux的Bash,开发者能在Erlang Shell里面运行表达式,通过这种交互方式,开发者能够在Erlang Shell里面调试正在运行的Erlang程序(包括远程的Erlang程序)。 - = 操作符
在一般的编程语言里面,=表示赋值操作,一个变量能够被多次赋值。但是在Erlang里面变量是不可变的,一旦通过=绑定之后,该变量的值就不能发生改变了,重复绑定会导致异常。 - 变量和原子
所有Erlang的变量都是以大写字母开头的,比如:One、This和My_baby这些都是变量。以小写字母开头的则是符号常量(被称为原子:atom),比如:person、one和hello_world。 - 进程
Erlang的进程是Erlang虚拟机内部自己实现的进程,非常轻量级,刚开始创建的时候每个进程的大小也就2KB左右,1GB的内存就可以创建50万个进程。同时进程间没有共享内存,进程间的通信通过消息转发实现。
总结
Erlang的特性决定了它是一门比较另类的语言,相信第一次见到它的人会觉得很吃惊,世界上居然会有这样的一门语言。但正是由于这些看似奇怪的特性,让Erlang能够在当今多核的时代充分的发挥它的能力。
最后更新时间:2017-04-29 23:23:16
转载请注明出处,Darcy's Blog https://lintingbin2009.github.io/2017/04/29/为什么使用Erlang/