Joe ArmstrongがErlangにもたらしたもの

つい先日にErlang & Elixir Festも開催され、国内でも事例が増えつつあるErlangだが、その創始者が4月頃に亡くなった際の記事を読もうと思って読んでなかったことを思い出したので、幾つか読んでみる。

Dr. Armstrong was best known for helping lay foundations in the ’70s and ’80s to the most widely spread concurrency models as we know them today. In concurrent programming, multiple events, code snippets or programs are perceived to be executing at the same time. Unlike imperative languages, which uses routines or object-oriented languages, which use objects. Concurrency oriented languages use processes, actors, and agents as the main building blocks. Dr. Armstrong helped propel concurrency programming at a time when there was no IoT, web, massive multi-user online games, video streaming, and automated trading or online transactions.

70年代から80年代にかけてconcurrency model(並行モデル)の基礎を作ったとして知られている。オブジェクト指向などのimperative language(命令言語)とは異なり、プロセスやアクター、エージェントをbuilding blockとして使う。現在のIoTやWeb、大規模オンラインゲーム、映像ストリームが存在しなかった時代から並列プログラミングをpropel(推進)していたというわけだ。

Erlang was originally built for use only at Ericsson, as a proprietary language, to improve telephony applications. It was designed to be a fault-tolerant, distributed, real-time system that offered pattern matching and functional programming in one handy package. It was then open-sourced to the public in 1998. Since then, it has been responsible for business, big and small, to create reliable systems.

Erlangは電話のアプリケーションを改善するためにEricssonで生まれた。fault-tolerant、distributed、real-timeという要素を持つように設計され、パターンマッチングと関数型プログラミングを提供する。

While Erlang grew out of work more than 33 years ago at the Swedish multinational telecom company Ericsson, its impact eventually spread throughout the world. Last June a presentation at the Code BEAM conference noted that every year Cisco ships about two million devices with Erlang, and that 90% of all internet traffic goes through Erlang controlled nodes.

Ciscoは毎年200万台以上のデバイスにErlangを載せて出荷し、インターネットのトラフィックの90%はErlangでコントロールされたノードだ。

Erlang also benefited from some fortunate timing, according to Armstrong’s January interview with Erlang Solutions. “Of course, when multicores came along, what we had done then mapped very well onto parallel programs,” Armstrong remembered. “Up to that point, concurrent programs were actually sequential programs that were interleaved rather quickly in an operating system. When multicores came along, the possibility emerged to execute that program in parallel. So we were immediately able to take advantage of parallel cores. And in fact, that’s probably the reason why Erlang has spread in the last 15 to 20 years — because of the way it scales naturally onto modern multicore computers.”

Erlangが生まれてから本格的に普及するのに少しタイムラグがあるが、ここ15年ぐらいで普及しているのは、マルチコアを活かせるということだろう。

Armstrong himself once joked in an interview with Rackspace in 2013 that “If Java is ‘write once, run anywhere’, then Erlang is ‘write once, run forever’.”

Javaはwrite once, run anywhereというが、Erlangはwrite once, run foreverだという。これはいいフレーズ。

これ以外にも、亡くなる半年前にもインタビューに答えたり、並列プログラミングを学ぶ人を支援したいという人柄が伝わってくる。







この記事が気に入ったらサポートをしてみませんか?