BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Erlangは並列処理時代の新たなJavaとなるのか?

Erlangは並列処理時代の新たなJavaとなるのか?

コンピューティングの未来は並列処理の時代となるだろう。 今日デスクトップCPUでさえもマルチコアであり、またユーザー達はサーバ用のCPUを次々と購入している時代でありまた彼らの新たな財産を最大限に利用するためアプリケーションが効率よくスケールアウトすることをが期待されているのだ。しかしそれは現在のソフトウェアシステムでは実現しないのだ。 

その問題自体が難しいことなのだが、同言語内の他の抽象性に比べると通常プログラミングに使用されている言語の並列性メカニズムが低いことに関してはなんの助けにもならない。

Ralph Johnson氏はErlang次世代のJavaに成りえることに関してブログを記載している。 Erlangは基本的にインタープロセスコミュニケーションにおいて異なる考え方をするものでありまたRalphはErlangスタイルの並列性は容易に他の言語に追加することができることができても競合の問題が発生する。

近い将来他の言語がErlangに追いつくことはないだろう。 Erlangのような言語機能を追加するのは簡単なことなのだ。 そのような高品質のVMや並列性、信頼性のための熟練したライブラリを構築するのには大変な時間を要するのだ。だからしてErlangには成功する道しか残されていないのだ。 この先数年間でマルチコアアプリケーションを作りたければErlangに目を向けるべきである。

そして他のフリーの機能がもっとあるかもしれない。 Erlangの開発者であるJoe Armstrongはスケーラビリティ、誤作動許容性、そしてランタイムアップグレーダブルシステムへの挑戦は同じ解決策を有していると述べている。  彼はこれらの問題が異なる種のものであっても :

”誤作動許容は簡単にスケーラブルにすることができるし簡単に作られているのでサービス内でアップグレードすることができるのだ。”と述べている。

Armstrong氏は誤作動発見とステーブルストレッジ用の機能をElrangが所有していることを認めている。Erlangはテレコムシステムによって作られたものであるのでこれらの見解は全て重要になってくるのだ。そしてEricssonは99.9999999%のアップタイムでErlangを開発したのだ。 それは1年で31msのダウンタイムという計算になる。

The Erlangはシェアードステートを所有していることによってではなく、主要な言語とはことなる並列性を引き受けている。  プロセスはとても軽量なものでもしも一つのプロセスが他のプロセスとコミュニケートするとすればメッセージングによってそれは行われる。 このアーキテクチャはプロセス、またはスレッド間でシェアードメモリを使用しているシステムと異なる方法でシステムをスケールアウト、また配布することを可能にしている。並列性に関するこの考え方に関してもっと深く掘り下げるにはSlava Akhmechet氏著の入門書を読むと良いだろう。(ただしErlangに関する知識は必要となる。)

もしかすると他の方法で並列性問題にとりかかる時期なのかもしれない。もしかすると新しい言語を学ぶ時期でさえあるのかもしれない。

この記事に星をつける

おすすめ度
スタイル

BT