問題は、継続(Rubyの場合)とコルーチン(Pythonの場合)がWebプログラミングに広く使用されないのはなぜですか?
サーバー側のWebプログラミングは、要求間で状態を保持するという問題によって困難になります。これに対する2つのエレガントで関連性のあるソリューションは、継続(Scheme、Ruby、Smalltalkに見られる)とコルーチン(PythonとGoに見られる)です。
BruceTateはBeyondJava(O'Reilly、2005)で、RubyonRailsとSeasideをWebプログラミングのエキサイティングな新しい開発として語っています。私にとって、Seasideは真のブレークスルーでした。Smalltalkの継続を使用することで、Seasideは複雑な要求/応答シーケンスのプログラミングを非常に簡単にしました。
コールバックを減らすためにTornadoとTwistedで使用されているPythonコルーチンについては知っていますが、たとえば、オンライン購入を完了するための一連のHTTPリクエストを処理する単一のコルーチンでビュー/コントローラーを作成する場合と比較すると、これはやや低レベルです。
紙の上でとてもよく見えるこれらのアイデアが、PythonとRubyでより広く展開されていないのはなぜだろうか。それは単なる文化的な問題ですか?これらの言語で実装されている機能の制限はありますか?それとも、Web開発のコンテキストでこれらのアプローチに根本的な欠陥がありますか?