別のスクリプト言語を使用することは別として、node.jsの主な魅力は、イベント駆動型プログラミングのサポートであるように思われます。これにより、単純化された非I/O呼び出しをブロックします。ただし、この機能には、コールバック関数の後にコールバックを渡す必要がある新しいプログラミングモデルを学習する必要があるという犠牲が伴います。これにより、いくつかの単純なタスク(たとえば、依存するアクションのシーケンス)が少し複雑になります。
そのプログラミングモデルを、すべてのI / O操作をブロックし(事実上)シングルスレッド(MRIのグリーンスレッド実装のため)であるRubyonRailsの従来のモデルと比較してください。
ここで大声で夢を見ているだけで、I / O呼び出しをトラップし、非ブロッキングバージョンに透過的に置き換え、現在の継続を保存して呼び出すことで、これらのモデルを調整するRuby(またはRails)ランタイムを実装できるはずです。 I/O操作が完了したとき。このようにして、使い慣れた手続き型プログラミングスタイルと、イベント駆動型/非同期/コールバックモデルの利点を得ることができます。
そのようなランタイム(またはランタイムトランスレータ)は技術的に可能ですか?すでにこのようなことをするWebフレームワークはありますか?