Volt は、サーバーサイドとクライアントサイドの両方を Ruby で書くことができる Web アプリケーションフレームワークです。
もちろん、この「クライアントサイドのコードも Ruby で書ける!」ということが最も大きな特徴ですが、Volt が素晴しいのは、ただそれだけに留まらず、「WebSocket でクライアント - サーバー間のコネクションを張ることで、永続化したモデルを同期するリアルタイムアプリケーションの開発ができる」ことだと思っています。 この点で、クライアントサイドでも Ruby で記述できることの利点がより浮かび上がってきます。
Volt はまだ開発中ですが、GitHub のリポジトリに 2,000 近いスターが付けられているので、注目している人の数は多いようです。また、海外のブログなどのメディアで取り上げられているのを目にすることも増えました。先日の RubyConf で紹介されたことも大きいのかしれません。
ところで、クライアントサイドを Ruby で書くというのはどのようにして実現しているのでしょうか。 これは、Opal という Ruby to JavaScript コンパイラを利用しています。
ここから個人的な話をすると、元々は Opal に注目してその動きを追っていました。ただ、Opal 自体はとてもよくできているのですが、最近は Web アプリケーションで JavaScript を書くときには、結局何かのフレームワークを使うのが一般的なので、そういったフレームワークと組み合わせにくい Opal を使うことが難しいと感じていました。一応、Opal にも Vienna という MVC フレームワークがあるのですが、ちょっと単独では使いこなすのが難しかったです。 そんなとき見つけたのが Volt でした。クライアントサイドだけでなく、サーバーサイドも既存のものではなく専用のものとしてフルスタックで提供することで、前述の Opal の弱点を克服できるものになりそうだと思いました。
そんなわけで、元々は自分で使うためのものとして Volt のドキュメントを翻訳したりしていたのですが、原文の誤りを指摘したりしている中で作者と話をするようになり、コラボレーターとして日本語版のドキュメントを公式に公開することになりました。日本ではまだほとんど情報を見ないのですが、日本語のドキュメントもあることで、少しでも興味を持ってくれる人が増えて、それで Volt の発展が進めばいいな、と思っています。
Volt のドキュメントはこちらです。