探索 Elixir 编程:从基础到实践
1. Erlang 与 Elixir 概述
Erlang 是一种用于开发高可用性系统的技术,能够持续提供服务且停机时间极少。它已经在各种大型系统中经过了三十年的实战检验。而 Elixir 则是一种现代语言,让基于 Erlang 平台的开发变得更加轻松愉快。它能帮助更高效地组织代码,去除样板代码、冗余和重复内容。
不过,Erlang 也存在一些缺点:
- 性能方面 :在密集 CPU 计算任务上,其性能不如 C 和 C++ 等语言。但这并非 Erlang/OTP 团队的失误,该平台的目标不是追求每秒处理尽可能多的请求,而是让性能尽可能可预测并保持在一定范围内。其优势在于,给定机器上的 Erlang 系统性能不会显著下降,不会因垃圾回收等原因出现意外的系统故障。而且,随着负载增加,BEAM 能利用可用的硬件资源。若硬件容量不足,系统会优雅降级,请求处理时间会变长,但不会瘫痪。若系统大部分逻辑是 CPU 密集型,可考虑用其他技术。
- 生态系统方面 :围绕 Erlang 构建的生态系统虽然不小,但不如其他一些语言庞大。截至撰写时,GitHub 上约有 20,000 个基于 Erlang 的仓库和 45,000 个 Elixir 仓库,而基于 Ruby 的仓库超 1,500,000 个,基于 JavaScript 的接近 7,000,000 个。这意味着可选择的库不如其他语言丰富,可能会花费更多时间。但 Erlang 在编写容错系统方面表现出色,若系统不需要高负载或长时间运行且容错要求不高,可考虑生态系统更完善的技术栈。
超级会员免费看
订阅专栏 解锁全文
38

被折叠的 条评论
为什么被折叠?



