タグ付けされた質問 「erlang」

分散、並行、およびフォールトトレラントアプリケーションに最適な関数型プログラミング言語。

5
akka / erlangでアクターを使用するのが良くないのはいつですか?
私はakkaで毎日7〜8か月働いています。私が始めたとき、私はアプリケーションに取り組んでおり、ほとんどのオブジェクト間で通信するために、アクターは基本的にアクターシステム内のどこででも使用されることに気付きました。だから私は同じことをした-x / y / zの別のアクターをスピンアップする。 これはあまりにも無差別で、必要のないところに複雑さを加えているように思えます-しかし、アクターとプレーンを介した同期、または先物を介した非同期ロジックを使用する必要がある場所についての議論は見つかりません。同僚が似たようなことを言った後、私は自分のスタンスを熟考し始めました。最近、タスクを熟考し、不変の実装で同じ結果を安全に達成できるため、別のアクターの作成を避けたいくつかのケースを実現しました。たとえば、非常に頻繁にアクセスするデータベースまたはファイルから設定値を取得するようなものです結果を待つのが実際のユースケースです。 特に、不変の状態で遊んでいる場合、アクターは複雑さを生み出し、スループットを制限します。たとえば、オブジェクトの純粋な関数は、並行性のレベルを問わず、リスクなしで同時に呼び出すことができます。アクターは一度に1つのメッセージしか処理できません。別の考慮事項は、futureの使用を開始しない限り、結果を待つ必要がある場合にスレッドを保留することですが、非同期メッセージングやスケールを心配する必要がない場合は、アクターを採用するのはやり過ぎかもしれません。 だから私の質問は-俳優を使用するのに悪い時間はありますか?アーランがどのように見えるのか興味があり、他の人の洞察が本当に欲しいです。または、アクターの使用に関するいくつかの原則がある場合。

3
Erlangの学習とnode.jsの学習[終了]
考えられるほぼすべてのカテゴリーで、Erlangがnode.jsのケツを蹴る方法について、たくさんのがらくたをオンラインで見ます。それで、アーランを学び、試してみたいと思いますが、ここに問題があります。node.jsを拾うよりも、Erlangを拾うのがずっと難しいことに気づきました。node.jsを使用すると、比較的複雑なプロジェクトを選択でき、1日で何かが機能しました。Erlangを使用すると、障壁にぶつかります。 だから..より多くの経験を持つ人にとって、アーランは学ぶのが複雑ですか、それとも何かが足りないのですか?Node.jsは完璧ではないかもしれませんが、私はそれで物事を成し遂げることができるようです。
41 erlang  node.js 

8
「何十万もの」スレッドが必要になるのはいつですか?
Erlang、Go、およびRustはすべて、安価な「スレッド」/コルーチンを使用した同時プログラミングをサポートしていると何らかの形で主張しています。ゴーよくある質問の状態: 同じアドレス空間に数十万のゴルーチンを作成するのが実用的です。 錆チュートリアルは言います: タスクは従来のスレッドよりも作成コストが大幅に低いため、Rustは標準的な32ビットシステムで数十万の同時タスクを作成できます。 Erlangのドキュメントによると: 233ワードのデフォルトの初期ヒープサイズは、数十万または数百万のプロセスを持つErlangシステムをサポートするためにかなり控えめです。 私の質問:どんな種類のアプリケーションが非常に多くの同時実行スレッドを必要としますか?最も忙しいWebサーバーだけが、数千もの同時訪問者を受け取ります。私が書いたボスワーカー/ジョブディスパッチタイプのアプリケーションは、スレッド/プロセスの数が物理コアの数よりもはるかに多い場合に、リターンを減少させます。数値アプリケーションにとっては理にかなっていると思いますが、実際には、ほとんどの人はこれらの新しい世代の言語ではなく、Fortran / C / C ++で書かれたサードパーティのライブラリに並列処理を委任します。

3
Haskell対WebサービスのErlang
関数型言語を使用して実験プロジェクトを開始することを検討しており、ErlangとHaskellの間で決定しようとしています。 Haskellの強力な型システムと純度が好きです。本当に信頼できるコードを簡単に書くことができると感じています。そして、Haskellの力は、私がやりたいことのいくつかをはるかに簡単にするだろうと思います。 マイナス面では、YesodのようなHaskellでWebを処理するためのフレームワークのいくつかは、Erlangのカウンターパートほど高度ではないと感じています。 スレッドとフォールトトレランスに対するErlangのアプローチが好きです。Erlangのスケーラビリティは大きなプラスになり得ると感じています。 それが私の質問につながります。HaskellとErlangの両方でWebアプリケーションのバックエンドを実装する際に人々が経験したことは何ですか。HaskellがErlangにある軽量スレッドとアクターのいくつかを提供するパッケージはありますか?

1
ErlangとGoの並行プログラミング、CSPとアクター間の客観的な違いは?
私はErlangとGoプログラミング言語での並行プログラミングを検討していました。私の発見によると、それらはそれぞれアクターモデルとCSPを使用しています。 しかし、それでも私はCSPとアクターの客観的な違いは何かと混乱していますか?それは単に理論的に異なるだけで同じ概念ですか?

3
F#のパフォーマンスとErlangのパフォーマンス、ErlangのVMが高速であることの証明はありますか?
私は関数型プログラミングの学習に時間を費やしてきたので、チュートリアルや例に手を出すのではなく、プロジェクトの作成を始めたい部分に来ました。 私の研究を行っている間、Erlangは並行ソフトウェアの作成に関しては非常に強力であるようです(これが目標です)が、開発用のリソースとツールはMicrosoft開発製品ほど成熟していません。 F#はLinux(Mono)で実行できるため、要件は満たされますが、インターネットを調べていると、F#とErlangの比較が見つかりません。現時点では、Erlangが最も報道されているという理由だけで傾いていますが、2つのシステムの間に実際にパフォーマンスの違いがあるかどうかは興味があります。 私は.NETでの開発に慣れているため、おそらくErlangよりもF#の方がはるかに高速になりますが、F#がErlangと同じくらいスケーラブルであることを納得させるリソースは見つかりません。 シミュレーションに最も興味があります。これは、多くの迅速に処理されたメッセージを永続ノードに送信します。 私が尋ねようとしているもので良い仕事をしていないなら、さらなる検証を求めてください。
19 f#  erlang 

3
アクターモデルについてどう思いますか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 5年前に閉鎖されました。 Erlangで使用されるアクターモデルは、並行プログラミングを行うための非常に異なる方法のようです。アクターモデルについてどう思いますか?並行性の一般的なソリューションになりますか?

1
Erlangは本当にアクターモデル言語ですか?
私はこの記事を読んでいた: http://www.doc.ic.ac.uk/~nd/surprise_97/journal/vol2/pjm2/ そして、それはそれについて言及しています: ...アクターモデルでは整数もアクターとして表されます... ウィキペディアは以下を確認します: アクターモデルは、すべてがアクターであるという哲学を採用しています。 Erlangには多くのデータ型があり、私が知る限り、それらの型はアクターではありません。 たとえば、Javaは特定の機能的なプログラミング機能が欠けているという理由だけでJavaは機能言語ではないと言う人がいるという意味で、Erlangはアクターモデル言語ではないということではありませんか? PS:拡張により、Akkaは間違いなくアクターモデルではないことを意味します。これは、ホスト言語からの非アクターデータ型に加えて、ホスト言語機能を介してアクターの継承を可能にするためです。

2
ステートフルライブラリ上の副作用のないインターフェイス
でジョン・ヒューズとのインタビュー彼はアーランとHaskellの語る、彼はErlangでステートフルなライブラリを使用することについて言うために、以下があります。 ステートフルライブラリを使用する場合は、通常、その上に副作用のないインターフェイスを構築し、残りのコードで安全に使用できるようにします。 これはどういう意味ですか?私はこれがどのように見えるかの例を考えようとしていますが、私の想像力や知識は私に失敗しています。

6
開発環境への関数型プログラミングの導入[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 5年前に閉鎖されました。 これは長い話ですが、できる限りベストを尽くして要約します。私たちは、さまざまな種類の資金のためのソフトウェアを書く.NETショップです。たとえば、健康保険金請求管理ソフトウェア、年金管理ソフトウェア、401(k)ソフトウェア、およびその他の金融タイプのものを作成します。 今、私たちは新しい領域に入ります:デリバティブと定量分析タイプの仕事です。これは、私が言われた次の8〜12か月で落ちてくるものです。 今、私は自分自身でいくつかの関数型プログラミングを学びました。主に、この本を通してさまざまな言語の表面的な目線を見ただけですが、深く掘り下げたことはありません。今、私たちは.NETショップなので、F#が良い選択だと思っていました。なぜなら、.NETライブラリと既存の知識を潜在的に活用できるからです。 私の質問は、どこから始めればいいですか?Haskell、Erlang、Scala、F#などと一緒に行くべきかどうかを判断しようとするのは非常に困難です。これらはすべて非常に興味深く、能力があるように見えます。 誰も同じような状況がありましたか?そうだとすれば、機能性へのジャンプを行った経験は何でしたか?私はこれが一種の大きな質問であることを知っていますが、現在関数型のメソッドを使用している開発者は知りませんので、グーグルを絶えず変え、最高の関数型言語のどこでも炎の戦争を見つけること以外に私は他にどこにもありません。

4
Erlang Webフレームワーク調査[終了]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または詳細な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 (Haskelの同様の質問に触発された) Erlangには、窒素、シカゴボス、ゾトニックなど、いくつかのWebフレームワークがあります。 それらはどのような点で互いに異なっていますか?例えば: 機能(例:サーバーのみ、またはクライアントスクリプト、さまざまな種類のデータベースの簡単なサポート) 成熟度(安定性、ドキュメントの品質など) スケーラビリティ(パフォーマンス、便利な抽象化など) 主なターゲット また、これらのフレームワークを使用した実世界のサイト/ Webアプリの例は何ですか? 編集:会話が始まることを期待して賞金を開始する

1
Erlangはどのような意味のある方法で並行プログラミングの競合状態を防ぎますか?
Erlangの並行性について読むと、Akka並行性ツールキットを思い出します。どちらも、競合状態を防止または制限するツールを提供します。ただし、Akkaツールキットを使用すると、可変データへのリンクを他のプロセスに送信できますが、これはまだ安全ではありません。Akkaは便利なツールであると考えていますが、競合状態、デッドロック、飢starにつながるオブジェクトやデータへの順不同のアクセスに対する保護は提供しません。JavaまたはC#がC ++で記述できるほとんどの種類のメモリリークの書き込みから保護する方法で、安全でないコードを書くことを妨げません(ガベージコレクターをだましてJavaでメモリリークを作成できますが、割り当てたすべてのバイトを解放することを覚えておく必要があるよりも問題があります)。 Erlangは、並行プログラミングのある程度の正確性、パフォーマンス、および堅牢性を保証しますか?オペレーティングシステムは、システムリソースにアクセスするときに保護を提供すると思います(ドライバーライターが仕事を上手く行ったと仮定)。ACIDデータベースは、読み取りと更新の保護を提供します。これは解決可能な問題のようです。または、一般的な安全なソリューションは、並行性が提供するパフォーマンスの向上を消去しますか?他の言語またはツールキットは、Erlangが提供する(または提供しない)並行安全性を提供しますか? これは、どのプログラミング言語が見つけにくいバグをほとんど生成しないかに対する@ user1249の回答に対する@Malfistのコメントに対する追加の質問ですか?。

3
Erlangがクラウドアプリケーションに適している理由は何ですか?
新しいプロジェクトを開始し、OpenStackクラウドの企業のインスタンス化を実装しています(http://www.openstack.org/を参照)。このプロジェクトは、当社のセキュリティツールです。現在、セキュリティツール用に何百もの専用サーバーを実行しており、それらを社内のopenstackのインスタンス化に移行しています。 私の会社の他のプロジェクトは現在、いくつかの分散サーバーアプリケーションでerlangを使用しており、他のQ / A指摘erlangはいくつかの人気のあるクラウドサービスで使用されています。私は、他の人に、それが私たちのプロジェクトに適用できる場所を検討するよう説得しようとしています。 アーランのクラウドプログラミングの長所は何ですか?アーランを使用することが特に適切な領域はどこですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.