您可能听说过编程语言和运行时系统Erlang。 但是您遇到过Java的同父异母兄弟吗?
任何喜欢使用老字游戏的开发人员(大多数)都会记住这个名字:Erjang,它是运行时工具,用于接收Erlang程序并在Java虚拟机上运行它们。
凭借对并发,分发和容错的内置支持,Erlang已成为电子商务,银行业和即时消息等行业中可扩展实时系统的有效语言。 将其介绍给Java的美好世界似乎合乎逻辑,对吧?
JVM的Erlang
它是这样工作的:Erjang加载Erlang的二进制.beam文件并将其转换为Java .class文件格式。 然后将Java类转移到JVM并执行。 还有一个BEAM解释器,它仍然很慢,但是同时,它使用的内存少于官方的同类解释器。
但是,等等,这真的有效吗? 如果您问Erjang虚拟机的官方网站“是的! 它确实有效。 虽然有例外……”
Java开发人员在与Erjang一起工作时需要满足一些限制。 例如,一些BEAM指令缺少运行时支持。 最重要的是,某些内置的Erlang函数(BIF)尚未或仅部分可用。 尽管如此,目标是继续扩展Erjang,以允许所有BIF的Java实现。
为什么需要二j?
Erjang由其创造者Kresten Krab Thurup于2009年揭幕,此后一直不断发展。 甚至在那时,Java 开发人员都在讨论为什么还要为JVM移植Erlang。 BEAM对Erlang来说已经不是足够好的虚拟机了吗?
Kresten表示,主要原因是JVM的质量,提高性能的潜力,使用替代实现对Erlang的增强以及Java社区对该语言的狂热可用性。 除此之外,实验和修改的欲望证明了Kresten的动机:
你为什么做这个? 好问题。 好吧,我只是想学习Erlang,而且似乎很有效!
可从http://erjang.org/免费获得Erjang。 最新版本是0.2,它是为Java 7设计的。如果此介绍引起您的胃口,请查看下面的视频,以获取Erjang的创建者Kresten Krab Thorup自己的精彩介绍。 您还可以查看GitHub上的自述文件和以下视频介绍 。
特色图片:通过Shutterstock 满足客户需求 /版权:Everett Collection
翻译自: https://jaxenter.com/introducing-erjang-erlang-for-the-jvm-108005.html