Ponyプログラミング言語を使用した経験は何ですか?


ベストアンサー

私はWallarooLabs(www.wallaroolabs.com)のプログラマーです。 Ponyを使用して、データ処理フレームワークであるWallarooを構築します。私はPonyコンパイラの作業にも携わっています。

PonyはWallarooの作業に最適な言語です。型システムはnullポインターエラーなどの問題を排除するため、プログラムをコンパイルしてもクラッシュしないと確信できます。参照機能は、プログラムの同時部分にデータの競合がないことを保証します。コンパイラーは高速コードを生成し、アクターごとのガベージコレクターは予想通り低いテールレイテンシーを提供します。これらすべてを組み合わせることで、期待どおりに動作する大きなソフトウェアを構築できました。

タイプチェックと参照機能チェックのため、Ponyは初心者にとって少し威圧的です。ほとんどのPonyプログラマーは、言語を使い始めると、これらのことにある程度苦労します。小さなシングルアクタープログラムの場合、非常に面倒に見えるかもしれません。ただし、プログラムのサイズと複雑さが増すにつれて、これらのことは価値のあるものになります。型システムは、オブジェクトが予期された型ではなかったためにプログラムがクラッシュしないことを保証します。参照機能により、テストでキャッチするのが難しく、デバッグが非常に困難なデータの競合が解消されます。 fizz-buzzを書いているときは必ずしもこれらのことを理解する必要はありませんが、ビジネスが構築されている種類の複雑なソフトウェアシステムを構築するときの成功と失敗の違いです。

ポニーは甘いと思いますスポットは、大規模なイベント駆動型アプリケーションです。先に述べたように、型システムと参照機能は複雑さの管理に役立ちます。Ponyはアクターシステムに基づいており、イベント駆動型アーキテクチャに最適です。 Node.jsやErlang / Elixirのようなものを使用する可能性のある場所にうまく適合しますが、型の安全性とネイティブ実行の利点が得られます。

言語はまだ新しいため、標準ライブラリは他の言語と比較すると、かなり最小限です。一方では、これはポニーがあなたのプロジェクトに適していないことを意味するかもしれません。一方で、人々が貢献する機会がたくさんあることを意味します。

ポニーはさまざまなバックグラウンドを持つボランティアによって活発に開発されているため、誰かが理由で放棄されるリスクはありません。プロジェクトを辞めるか、新しい仕事に就きます。これにより、1人の個人または会社によって維持されている言語よりも長期的な見通しが良くなります。

更新するドキュメントがあります。ポニーをチェックすることに興味がある人にとって、私が思うことは時々関連するポイントです。重要だと思うことをカバーしています。

一般的に、私はポニーの経験に非常に満足しており、時間をかけてチェックすることをお勧めします。

回答

PonyはErlang(およびElixir)のすべての問題に対する答えだと思います。ほとんどの場合、これらの言語は、内部ですべての変数をコピーすることなく、真の並行言語を構築できることに人々が気付く前に設計されました。すべてを不変にする必要があります(開発者にとって使いやすい並行性を実現するため)。これらの新しいアイデアにより、PonyはC ++と同じくらい高速になりましたが、Erlangと同じくらい強力になる可能性があります。私には、Erlangの本当に未来的なバージョンのように思えます。Erlangを最初から作り直さなければならない場合、今日誰かができることです。 Rustも同様ですが、そのようなアイデアのより原始的な実装(許可システムを使用)について議論します。 Rustでは、スレッドやその他のシステムレベルのプロセス管理に関することを常に考えなければなりません。その現代語は、本当にあなたのために整理されるべきです。あるいは、Rustはシステムレベルのプログラミング言語であり、Ponyはその1つ上のレベルでありながら、非常に高速であると言った方が公平かもしれません。

残念ながら、JPモルガンの一部のばかげたITマネージャーがサービスを拒否したためです。昨年のCausalityからの契約(詳細は https://www.linkedin.com/pulse/end-causality-constantine-goulimis を参照)-言語を開発していた会社は元々破産し、トップの人々は他の会社で働き続けました。

私が見たところ、ポニーの物語全体の背後にある主な頭脳は、本当に賢いCSの男であるSylvanClebschでした。私は彼のビデオを見ましたが、彼は実際にこれをやってのけることができたでしょう(より現代的なプログラミング言語の設計アイデアに基づいて構築された「Erlangv2」プラットフォームの作成)。

SylvanとCausalityから引き継いだ人たち

プロジェクト全体にこれ以上の輝きはありません。彼らがプロジェクトを引き継いだときに最初にしたことは、SJWのでたらめな文書である行動規範を投稿することでした。あなたが彼らの小さなグループの一員になる前に、彼らのばかげた左派のイデオロギーに従わなければならないすべての方法を指定します。

これは文字通り、特定の市況のために、より悪いソリューションが勝った技術開発の時代の1つです。 もう1つは、ドットコムバブルから数十億ドルの$$$を受け取ったSunが、設計されたことのないあらゆる種類の問題の解決策としてJavaを販売したときでした。

とにかく、そうではないと思います。 システム全体ではなく、あちこちにある小さなコードを除いて、実際に本番環境で使用されています。Sylvanと数人の元の作者が言語全体(および後で分散プラットフォーム)を想像したものを実際に提供するにはほど遠いためです。 することとすること。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です