神話と伝説vs ErLang

最近、私はしばしばErlangプログラミング言語についての神話に出くわし、最初は面白かったのですが、これらの神話に基づいて経営上の結論を導き始めたとき、それはまったく笑わない問題になりました。



それで、Erlangに関しては人々はすぐに何を覚えていますか? 通常、彼らはこれが「 並列プログラミング言語 」であり、第二に「 遅い数学 」であり、「 トラクターであるため浮動小数点数を使用しないほうがよい 」ことを思い出します。



実際、「 浮動小数点 」には困難がありました。より正確には、作業の速度は満足のいくものではなく、それから10年しか経っていません。 より正確には、これが真実だった時から。



彼らが遅い数学について話すとき、あなたはすぐに尋ねたいです:「 何と比較して 」? 人は計算の速度の点で計算機よりも劣っていることを認めなければなりませんが、そのため、「 悲惨なこと、悲惨なことについて 」と叫ぶ壁に頭をぶつけません 。 一般的に、高速コンピューティングが必要な場合は、CUDAが手元にあります...



-やめて! -注意深い読者は言うでしょう。 「しかし、これはあなたのErlangが何かを検討するクラスターで使用されていることをはっきりと覚えています。」



そして再び、正しい。 ここでのキーワードはクラスターです。 Erlangは他の目的のために作成されました。それは本当に不可欠であり、これもその1つです。



処理が必要なデータの特定のストリームがあり、できればリアルタイムに近いモードであると想像してください。 フローは、控えめに言えば大きく、1台のコンピューターでこれをすべて行うことはできません。つまり、「 ファーム 」を展開する必要があります。 しかし、運が良ければ、「 農場 」を組織するための標準的な配布はあなたには向いていません。 そして、非標準のものは利用できません...そこでの封鎖、経済的困難などは関係ありません。



そして、ここでは、CまたはCUDAで番号クラッシャーを記述し、イメージを作成して、必要な数のマシン(ノード)をデプロイします。 それでは、顔の汗をかいたアーランは、一貫したトラブルのない操作を保証することに尽力しています。



そして、ここでErlangが「 並列プログラミング言語 」であるという論文に行きます。

ここで、フレーズ自体が誤って作成されていることにすぐに注目する価値があります。 並列言語およびさらに垂直言語には存在しません。 いいでしょう言葉に過失はありません



したがって、Erlangは並列コンピューティングを提供するための言語として開発されたと考えられていますが、これはそうではなく、まったくそうではありません。

Erlangプログラミング言語は、エンターテイメント用ではなく、完全に工業用の言語として開発されました。 そして、言語の主な機能は... 信頼性でした。



はい、この言語は機能的であるため、原則として、特定のプログラムが「 信頼できる 」ことを証明できます。 つまり、彼女の行動は予測可能であり、証明可能である。 そして今、この言語は信頼性が基礎であるテレコム用に開発されたことを思い出しましょう。



-しかし、並列処理はどうですか? -読者は欲求不満で尋ねます。



また、並列処理は、選択した言語アーキテクチャの副作用です。 一種のボーナス。 実際、Erlang自体は何も並列化せず、そのようなプログラムを簡単に作成するために必要な一連の機能をプログラマに提供するだけです。 言語の作成時点で、これは80年代の終わりであり、マルチコアおよびマルチプロセッサコンピューターではそれほど密度が高くなかったことを思い出させてください。 ことわざにもあるように、この製品は純粋にピースです。



ただし、並列処理、またはいくつかのノードでのアプリケーションの動作も、信頼性を高める要素です。 より正確には、これはすでにコードではなくハードウェアの信頼性を保証しています。



もう1つのボーナスは、並列処理のために判明しました。 副作用がなく、コードが並列に配布されるため、アプリケーション全体がハングアップしないため、良心を持ってガベージコレクタを使用できます。 したがって、最も一般的なメモリリークエラーから保護されます。 しかし、これは信頼性の要素でもあります。



アプリケーションを完全に停止することなく更新でき、言語の基本原則である「 信頼性 」と「 予測可能 」を明確にする必要があるという事実を忘れないでください。



シムについては、私が休暇を取ることを許可します...そして、神話や推測に基づいて経営上の決定を下さないでください。



All Articles