在我看来,如果一些非常复杂的用例需要上述所有特性,一个有趣的选择是将Rust与Erlang一起结合起来作为共享库或本机实现的函数(NIF)。所有的数据处理、IO操作、操作系统调用都可以甩给Rust,然后将结果同步回Erlang虚拟机。这样做的目标是使事情更容易。
Rust是Erlang的替代品吗?我的答案是,不是。几十年来,Erlang BEAM已被证明具有出色的可扩展性、并发性、分布性和容错性。Erlang一直都在尝试通过BEAM处理它们,把这许多共性问题提取出来,好让程序员不需要分心去考虑它们,从而可以专注于手头的问题。相反,对于Rust来说,我们可以通过社区创建的crate获得很多选择,但作为程序员,我需要以正确的方式将它们混合使用。Rust的另一大挑战是其陡峭的学习曲线。对于刚刚开始或来自动态编程语言的人来说,这绝对是一个更大的飞跃。简而言之,这两种语言针对不同的受众并解决不同的问题,而将它们擅长的部分捏合起来可能是最好的做法。
关于作者Krishna Kumar Thokala目前在Thoughttworks担任应用程序开发人员。此前,他作为开发人员曾在Erlang的电信网络模拟器上工作过一段时间,作为架构师,他使用NetConf上的 yang modeling 构建了一个配置管理系统。除了构建软件系统外,机器人技术/电子技术和工业自动化也是他感兴趣的领域。你可以通过这几个社交平台关注他:Medium、LinkedIn、Twitter