[解決済み] Stackless Pythonの欠点は何ですか?[クローズド]
質問
最近読んだ スタックレスPython について最近読んだのですが、これは vanilla cPython と比較して多くの利点があるように思われます。無限再帰、マイクロスレッド、継続などのクールな機能をすべて持ち、同時に cPython よりも高速です (約 10%, 仮に Python wiki を信じるとしたら) と と互換性があります (少なくともバージョン 2.5、2.6、3.0)。
これらはすべて、本当であるにはあまりに良すぎるように見えます。しかし TANSTAAFL は、Pythonコミュニティの間でStacklessに対する熱意をあまり感じませんし、また PEP 219 は実現されたことがありません。なぜでしょうか?スタックレスの欠点は何なのか?スタックレスのクローゼットにはどんな骨格が隠されているのでしょうか?
(Stacklessが本当の並行処理を提供しないことは知っていますが、並行処理の方法でより簡単にプログラミングができるようになっただけです。それは本当に私を悩ますことはありません)
どのように解決するのですか?
Wiki にある "Stackless は 10% 速い" がどこから来たのか分かりませんが、また、私はそのパフォーマンス数値を測定しようとしたことがありません。Stackless が何をしたらそんなに大きな違いが出るのか、私には思いつきません。
Stackless は、いくつかの組織的/政治的な問題を抱えた素晴らしいツールです。
1つ目は、歴史から来るものです。Christian Tismer は、最終的に Stackless になったものについて、約10年前に話し始めました。彼は何をしたいかというアイデアを持っていましたが、自分が何をしているのか、なぜ人々がそれを使うべきなのかを説明するのに苦労していました。これは、彼のバックグラウンドがコルーチンのようなアイデアに関する CS トレーニングを受けていなかったことと、彼のプレゼンテーションと議論が非常に実装指向であることが原因の一部で、継続にまだ深く関わっていない人が、問題に対する解決策としてそれを使用する方法を理解するのは難しいのです。
そのため、初期のドキュメントは貧弱でした。
そのため、初期のドキュメントは貧弱でした。PyCon 2007 で私は " について講演を行いました。 スタックレスを使う PyCon のアンケートによると、これはかなり好評でした。Richard Tew が素晴らしい仕事をしてくれて、アンケートの数字を更新してくれました。 スタックレスドットコム を更新し、新しい Python がリリースされたときに配布を維持するために素晴らしい仕事をしています。彼は CCP ゲーム の社員であり、EVE Online の開発者です。EVE Online は Stackless をゲームシステムの重要な部分として使用しています。
CCP Games は、Stackless について話すときに使用される最大の実例でもあります。Stackless の主なチュートリアルは、Grant Olson 氏の「quot; Stackless Pythonによる並行プログラミング入門 で、これもゲーム指向です。このため、Stackless がゲーム指向であると誤解されているようですが、むしろゲームの方が簡単に継続指向になります。
もうひとつの困難は、ソースコードでした。オリジナルのフォームでは、Python の多くの部分を変更する必要があり、Python のリードである Guido van Rossum が警戒していました。その理由のひとつは、call/cc のサポートで、より上位の形式があるのに goto をサポートするのはあまりに酷だとして後に削除されたのだと思います。
その後のリリースでは変更を必要とせず、Tismer は Python への搭載を推し進め続けました。多少の検討はあったものの、(私が知る限り) 公式なスタンスは、CPython は Python の実装であるだけでなくリファレンス実装としての意味もあり、Jython や Iron Python では実装できないので Stackless の機能は含めないというものです。
"の予定は一切ございません。 コード ベースへの大幅な変更 を行う予定はありません。この引用と Arafangion's からの参照ハイパーリンク (コメントを参照) は、およそ 2000/2001 年のものです。構造的な変更はとっくに行われていて、それは私が上で述べたようなものです。現在のStacklessは、ここ数年の間にコードベースに小さな手を加えただけで、安定し成熟しています。
Stackless の最後の制限として、Stackless の強力な支持者がいないことが挙げられます。Tismer は現在 PyPy という Python のための Python の実装に深く関わっています。彼はPyPyにStacklessの機能を実装し、Stacklessそのものよりもずっと優れていると考えており、PyPyが将来の道であると感じています。TewはStacklessをメンテナンスしていますが、アドボカシーには興味がないようです。私もそのような役割になることを考えましたが、それで収入を得られるとは思えませんでした。
もしStacklessのトレーニングが必要なら、遠慮なく 連絡先 ! :)
関連
-
Python百行で韓服サークルの画像クロールを実現する
-
[解決済み】Flaskのテンプレートが見つからない【重複あり
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] Pythonで静的なクラス変数は可能ですか?
-
[解決済み】if __name__ == "__main__": は何をするのでしょうか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】__str__と__repr__の違いは何ですか?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python機械学習Githubが8.9Kstarsに達したモデルインタープリタLIME
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
Pythonを使って簡単なzipファイルの解凍パスワードを手作業で解く
-
Python interpreted model libraryによる機械学習モデル出力の可視化 Shap
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
Pythonの@decoratorsについてまとめてみました。
-
Python Pillow Image.save jpg画像圧縮問題
-
[解決済み】DataFrameのコンストラクタが正しく呼び出されない!エラー
-
[解決済み】なぜ「LinAlgError: Grangercausalitytestsから「Singular matrix」と表示されるのはなぜですか?
-
[解決済み】ImportError: bs4という名前のモジュールがない(BeautifulSoup)