異なるスクリプト言語を使用する以外に、node.jsの主な魅力は、スケーラブルなサーバーを書くことを容易にするイベントドリブンプログラミングのサポートです他の典型的には入出力バインドされたアプリケーション)を提供する。しかし、この機能は、コールバック関数の後にコールバックを渡す必要がある新しいプログラミングモデルを学ばなくてはなりませんが、いくつかの簡単なタスク(例えば、依存する一連のアクション)がもう少し複雑になります。非同期性、スレッド化、node.js、Ruby on Rails
Ruby on Railsの従来のプログラミングモデルとは対照的に、すべてのI/O操作をブロックし、(効果的に)シングルスレッド化されています(MRIのグリーンスレッド実装のため)。
ちょうど大声ここに夢を見て、現在の保存、自分の非ブロッキングバージョンに置き換える透過的に、I/O呼び出しをトラップすることにより、これらのモデルを調和させるルビー(またはレール)ランタイムを実装することが可能であるべきと思われますI/O操作が完了したときに呼び出すことができます。このようにして、使い慣れた手続き型プログラミングスタイルと、イベントドリブン/非同期/コールバックモデルの利点を得ることができます。
このようなランタイム(またはランタイムトランスレータ)は技術的に可能ですか?このようなことを既に行っているWebフレームワークはありますか?
Illya Grigorikは、ルビファイバ、EventMachine、およびレールでいくつかの作業を行っています。これを見てください(特に下のリンク):https:// github。com/igrigorik/async-rails – igorw
@igorw:これは私が考えていたことを非常によく表しています。 – maerics
レールを非同期にすることは、私にとってはハックのようです。それは挑戦的に、ひどくリークする抽象化のように見えます。 – Raynos