设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

对话Erlang核心成员Eric Merritt

2015-9-1 22:18| 发布者: joejoe0332| 查看: 1412| 评论: 0|原作者: Medium|来自: Medium

摘要: 本文译自国外记者Federico Carrone对Eric Merritt的专访,Merritt是Erlang和分布式系统开发领域的专家,《Erlang/OTP并发编程实战》一书作者,他还是亚马逊的高级软件工程师。本文以Q&A问答形式呈现,探讨BEAM语言特 ...

导读:本文译自国外记者Federico CarroneEric Merritt的专访,Merritt是Erlang和分布式系统开发领域的专家,《Erlang/OTP并发编程实战》一书作者,他还是亚马逊的高级软件工程师。本文以Q&A问答形式呈现,探讨BEAM语言特性以及他对新技术发表的一些看法。


Q1. 听说您对Erlang VM(BEAM)赞许有加,请问它相比于其它VMs有什么特别之处呢?

Eric Merritt:在很多系统中,例如Java,垃圾回收器都必须对整个堆栈进行检查来进行垃圾回收。尽管有一些优化方案,但是前提都是要检查整个堆栈的。BEAM则不同,它充分利用了actor(行动者)模式,其处理思路是:

  • 如果进程没有运行,则不需进行回收。
  • 如果进程已经运行,但是在垃圾回收器运行前已经终止了,则不需进行回收。
  • 最后,如果进程需要被回收,则仅有单个进程需要被终止。
  • BEAM另外一个亮点是提供了底层的高效的异步IO内置处理。开发者可以十分方便地进行异步IO处理。


Q2. 请问Joxa的设计初衷是什么?

Eric Merritt:曾经DSLs完美地帮我解决了一个程序问题。该平台是基于Erlang和BEAM的,但Erlang并不能完美地与DSLs一起工作。在这个背景下,我决定编写Joxa。事后证明这是非常正确的决定。


Q3. 请问你对于Elixir有什么看法?

Eric Merritt:我认为Elixir是Erlang的推广大使,使人们更容易学习Erlang。它是Erlang生态系统中的重要一员。但是于我而言,我对Elixir保持中立态度。因为其宏系统不太连贯,可变性仍有待改进。


Q4. 请问你对于编程语言的惰性有什么看法?在什么情况下这会带来好处呢?

Eric Merritt:惰性概念是个很好的主意。依据趋势进行计算的方式在函数式编程中已经存在几十年了。相比下,惰性则更加务实。如果将来有更加高效的工具来检测和除错空间泄漏问题,惰性概念将会走得更远。


Q5. 有没有可能在不破坏Erlang语义的情况下使用Hindley Milner类型系统创建一种新的Erlang VM语言?

答:当然,我目前也正计划做类似的项目,但具体时间待定。难点是Erlang本机系统的无类型位元和新系统有类型位元的相互衔接问题。例如ROY或Clojure等都是不错的借鉴对象。


Q6. 你认为需要为Erlang VM添加代数数据类型吗?或者说使用记录和标记图就能解决所有实际问题?

Eric Merritt:类型系统与VM关系一直不大,而与语言关系密切。也就是说,这是一个编译问题而不是运行时问题。事实上,添加代数类型是有好处的,比方说BEAM可运行更多优化的代码,但是在VM上运行一个成熟的类型语言则用处不大。


Q7. 有没有其他语言或技术你正在关注的?

Eric Merritt:语言方面仍有待观察。对于技术,我想微内核是非常有趣的。例如基于JVM的OSv,Mirage for OCaml以及 BSD Rump Kernels。这些工具系统业务流程搭建的基石。此外,Nix包管理器,NixOS,以及Hashicorp的Atlas等都是值得关注的。


原文来自:Medium


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部