Erlang语言特点
函数式
Erlang是一种函数式编程语言
函数式:编程模型的一种(面向对象也是一种编程模式),将计算机中的运算看作是数学中的函数计算,可以避免状态以及变量的概念
针对函数式编程的理解: https://baike.baidu.com/item/%E5%87%BD%E6%95%B0%E5%BC%8F%E7%BC%96%E7%A8%8B/4035031?fr=aladdin
函数式Erlang中的基本单位,函数为第一型,类似对象是面向对象的第一型,在Erlang里,函数几乎会被用作一切,包括最简单的计算,所有的概念都是由函数表达,所有操作都是函数操作
并发性
支持超大量级的并发性,而且不需要依赖操作系统和第三方库,主要依赖Erlang虚拟机,以及轻量级的Erlang进程
分布式
Erlang语言层面支持分布式,通过语言内置的API,在远程节点上创建Erlang进程,进而执行指定的模块函数
健壮性
- 进程隔离
- 完善的错误异常处理
- 错误处理哲学
- 监控者进程
软实时
- Erlang虚拟机调度机制
- 内存垃圾回收策略
- 进程资源隔离
Erlang系统垃圾回收策略是分代回收的,采用递增式垃圾回收方式,基于进程隔离的特点,是以单个Erlang进程为单位,在垃圾回收的过程中,不会对整个系统造成影响,结合其虚拟机的抢占式调度机制,保证其系统的高可用性和软实时性
热更新
允许程序代码在运行过程中进行修改,旧的代码逻辑能够被逐步淘汰而后被新的代码逻辑替换,在此过程中,新旧代码逻辑在系统中是共存的,最大程度保证了Erlang系统的运行,不会因为业务更新造成暂停
递增式代码加载
Erlang的库,可以在Erlang系统运行过程中,被加载、启动以及卸载
动态类型
Erlang既是动态语言,又是动态类型
动态语言:在系统运行过程中,可以改变代码结构,现有的函数可以被删除或修改,运行时代码可以根据某些条件改变自身结构,是其热更新的基础
动态类型:数据类型绑定不是在编译阶段,而是在运行阶段
解释型
Erlang语言是解释型语言,运行在虚拟机上,具有良好的平台兼容性
总结
- Erlang是函数式编程语言
- 核心是Erlang虚拟机
- 并发进程是轻量级的
- 分布式特性异常方便
- 软实时特性能够在其完善的异常保护机制下健壮运行
- 其热梗能给开发者带来很大的方便