Erlang 和 Elixir 有什么关联和区别

关联和区别是:Erlang是一个结构化,动态类型编程语言,内建并行计算支持。Elixir 是一个基于 Erlang 虚拟机的函数式、面向并行的通用编程语言。Elixir 以 Erlang 为基础,支持分布式、高容错、实时应用程序的开发,同时亦对其进行扩展使之借助宏实现元编程,并通过协议支持多态。

Erlang

Erlang是一种通用的面向并发的编程语言,它由瑞典电信设备制造商爱立信所辖的CS-Lab开发,目的是创造一种可以应对大规模并发活动的编程语言和运行环境。Erlang问世于1987年,经过十年的发展,于1998年发布开源版本。Erlang是运行于虚拟机的解释性语言,但是也包含有乌普萨拉大学高性能Erlang计划(HiPE)开发的本地代码编译器,自R11B-4版本开始,Erlang也开始支持脚本式解释器。在编程范型上,Erlang属于多重范型编程语言,涵盖函数式、并发式及分布式。顺序执行的Erlang是一个及早求值,单次赋值和动态类型的函数式编程语言。

Erlang是一个结构化,动态类型编程语言,内建并行计算支持。最初是由爱立信专门为通信应用设计的,比如控制交换机或者变换协议等,因此非常适合于构建分布式,实时软并行计算系统。使用Erlang编写出的应用运行时通常由成千上万个轻量级进程组成,并通过消息传递相互通讯。进程间上下文切换对于Erlang来说仅仅 只是一两个环节,比起C程序的线程切换要高效得多得多了。

使用Erlang来编写分布式应用要简单的多,因为它的分布式机制是透明的:对于程序来说并不知道自己是在分布式运行。Erlang运行时环境是一个虚拟机,有点像Java虚拟机,这样代码一经编译,同样可以随处运行。它的运行时系统甚至允许代码在不被中断 的情况下更新。另外如果需要更高效的话,字节代码也可以编译成本地代码运行。

Elixir

Elixir 是一个基于 Erlang 虚拟机的函数式、面向并行的通用编程语言。Elixir 以 Erlang 为基础,支持分布式、高容错、实时应用程序的开发,同时亦对其进行扩展使之借助宏实现元编程,并通过协议支持多态。

José Valim 是 Elixir 语言的设计者。他创造该语言的目标是在维持与现有 Erlang 工具链及生态环境兼容性的同时,让人们可以在 Erlang 虚拟机上进行扩展性更好的、高生产率的开发。

延伸阅读:

Erlang的特点

区别于传统的面向对象语言,它有着自己的优点:首先它是基于进程并发的,这些进程是轻量级的并且互相协作有条理的处理着事务,用户不用担心具体的PV操作,这些进程对于操作系统而言是透明的,对操作系统来说只有一个进程在运行。其次,每个进程拥有自己的独立内存,在进程间通信中完全依赖于消息传递,每个进程都拥有自己独立的邮箱并通过模式匹配的方式来查找要处理的消息,然后分别进行异步处理。这减轻了进程之间的耦合度,提高了独立性。Erlang还具有可靠的容错机制,由于进程之间相对独立,于是Erlang里可以用一些进程去链接或监视另外一些进程,当这些被监视的进程因为错误而产生异常退出的时候,负责监视的程序就会收到这些进程退出的消息并对这些进程进行相应的处理。在OTP中Erlang可以利用监控树执行一对一或者一对多的监控。最重要的是,对多核CPU的支持,在Erlang中对于多核的操作不需要开发人员来管理,对开发人员来说是完全透明的,我们只需要和往常一样编写程序就可以。最后Erlang是支持热代码升级的,在Erlang中可以实现不停机就进行代码的升级,来实现软件运行中的热升级。Erlang的版本管理中,可以保留一个模块的2种不同的版本,支持对版本的回滚。

文章标题:Erlang 和 Elixir 有什么关联和区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/38889

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年2月20日 上午12:44
下一篇 2023年2月20日 下午2:05

相关推荐

  • AI 驱动的超分辨技术落地实践

    近年来,随着深度学习技术的快速发展,基于AI的超分辨技术在图像恢复和图像增强领域呈现出广阔的应用前景,受到了学术界和工业界的关注和重视。但是,在RTC视频领域中,很多AI算法并不能满足实际场景下的应用需求。本文将着眼于AI技术从研究到部署的落地问题,分享超分辨技术在RTC领域落地应用所面临的机遇与挑…

    2022年3月17日
    96800
  • OKR是否适用于周期性项目

    OKR(Objectives and Key Results)系统是否适用于周期性项目是管理层和团队成员常常考虑的问题。针对这一问题,可以断言OKR是适用于周期性项目的管理工具。其适用性主要基于三大核心观点:1、提升目标对齐性;2、增强团队协作;3、优化性能跟踪。OKR通过确立清晰的目标(Objec…

    2023年11月15日
    29300
  • 如何看待所在项目生产管理工作

    在当前高速发展的市场经济中,对所在项目的生产管理工作持正确的态度和科学的观点至关重要。具体而言,应该以持续改进、效率优先、质量至上、团队合作为核心原则来看待。这些原则不仅指导着管理团队对生产流程的优化策略,更深层地影响着企业文化和员工的工作态度。以持续改进为例,这意味着企业必须不断地寻找生产过程中的…

    2024年4月11日
    5200
  • logo设计思路

    logo设计思路:1、使用抽象图形做图标;2、汉字图形化设计;3、活用行业相关元素;4、灵活的修饰元素;5、拟人化联想式logo;6、线条几何式logo;7、卡通logo。使用抽象图形做图标是指,用抽象图形做logo比起具象的图形具有更广泛的包容性。 1、使用抽象图形做图标 当品牌没有明确的行业区分…

    2023年3月21日
    74400
  • 如何做任务规划与跟进

    步骤:制订项目执行计划;明确人员分工;优化工作流,确保工作标准;定期检查项目节点/里程碑;项目组成员的沟通;把控工作进度;项目团队的激励。制定计划必须要明确任务、负责人、项目的开始和结束时间。 制订项目执行计划 制定计划必须要明确任务、负责人、项目的开始和结束时间。尽可能地把任务细分,任务的先后顺序…

    2023年3月30日
    61100
  • linux查看日志的三种命令

    linux查看日志的三种命令有:1、grep命令;2、tail命令;3、more命令。grep命令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。 1、grep命令 grep全称是Global Regular Ex…

    2023年3月19日
    6.7K00
  • 开发团队怎么管理

    开门见山,有效管理开发团队涉及若干至关重要的角度:1、明确的团队目标、2、通透的沟通机制、3、协作高效的工作流程、4、技能匹配的人员配置、5、持续性的团队培养和个人成长支持。在这些关键点中,明确的团队目标是基石,指引团队成员朝着共同的方向努力,确保所有成员理解并追求相同的结果。目标的设定应该具体、可…

    2024年1月9日
    24000
  • 如何有效的管理项目的4维目标

    有效管理项目的四维目标包括范围、时间、成本、和质量。这四个维度是项目管理的关键,其平衡对于确保项目成功至关重要。范围是指项目的规模、目标及要求,它定义了项目的边界。深入探讨范围管理,它涉及确定和控制项目工作的过程,确保项目包含所有必要的工作,以实现其目标,同时排除那些不属于项目范围的工作。这需要清晰…

    2024年4月11日
    6000
  • oa办公系统 免费版

    标题:OA办公系统免费版的选择和使用策略 OA办公系统免费版对于中小企业和初创团队而言是降低成本、提升效率的有效选择。1、选择免费OA系统的时候应考虑系统的功能性、用户体验和数据安全;2、免费版通常提供基础功能,但可能存在数据安全和隐私顾虑;3、使用策略包括数据备份、了解服务提供商的信誉和业务需求对…

    2024年1月15日
    24400
  • ide模式和ahci模式有什么区别

    IDE模式和AHCI模式的区别是:1、定义不同;2、性能不同;3、兼容性不同;4、功能特性不同;5、使用场景不同;整体来看,IDE模式和AHCI模式在定义、性能、兼容性、功能特性以及使用场景等方面都存在明显的差异。 1、定义不同 IDE模式,全称Integrated Drive Electronic…

    2023年5月22日
    2.9K00

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部