SunSpider JavaScript Benchmark

と言うのがあるのを知って暇つぶしに回してみた。

手軽にできますので気になる方はこちらからどうぞ。

で。実験台となったブラウザたちと結果。

「なんかブラウザが偏ってへんかー?」と思った貴方、めざといね。TAMはKDEと心中を誓った人です。

で、結果なんだけど、とりあえずchromeがやたらいい数字。意外にもfirefoxがもたついてた感じ。

あとまあ知ってる人は分かると思うんだけど、konqueror/Webkitとrekonqは正直比較する意味ねえかなぁと思ったんだが、やはりほぼ同じ速度に。aroraも同じくQtとWebkitの組み合わせなんですがこちらはちょっと遅め。と言ってもfirefoxよりは速いんだけど、どうもテストの最中に画面ちらつきまくり。

で。

KDEと心中を誓ったTAMとしては凄く言い辛いのですが、問題はkonquer/KHTML。

えー、まあ、ほんのちょっと遅くなりました。KDE/Webkit勢のまあ、10倍ってとこですかね。誤差誤差、ドンマイドンマイ。

まあこれが速いからなんだ!ってな話なんですが、まあ速い方が色々うれしいんでしょうな。KDE使いの俺としてはkonqueror/Webkitがいい感じに見えますね。rekonqとdolphinに地位を脅かされてんじゃねえ、もっと熱くなれよって感じです。

そして常用ブラウザがchromeになっている事実は秘密です。

 

utouchとやら

Maverickで入ってきたutouch。マルチタッチとかジェスチャとかなんかそんな感じのもの。
ざっと手順。

  1. geis_init()で初期化してインスタンスゲッツ。
  2. geis_input_devices()でデバイス周りのコールバックをセット。
  3. geis_subscribe()で監視するジェスチャとコールバックをセット。
  4. geis_event_dispatch()をイベントループにぷちこんで準備完了。
  5. 終わりはgeis_finish()で賢者タイム。

んでコールバックに送られるジェスチャはTapやDrag、RotateにPinch等々。それぞれにGeisGestureAttrの配列が渡されてそっから値を取り出していく感じ。シンプルですね。

指が触れてから完全に離れるまでが1つのジェスチャと取られるわけで、最初に触れたところがstart、途中の動作がupdate、最後がfinishつうコールバックになると。わかりやすいと言えばわかりやすいですね。実装もそんなに難しくないです。

で。

感想としてはシンプルで分かりやすくていいなーと言う反面、やや面倒くさいなーと言うのもあったりとか。start/update/finishのコールバックが別々なのは何かしら意味があるのかなと思ったり。ある意味startやfinishもupdateと言えなくもないような気もします。

こいつを使ってガリガリとgtkやQt使ってプログラム書いていくのもいいのですが、正直なところツールキット上での対応があると楽だよねこれ。QtにはQGestureEventなんてクラスも既にあるわけで、普通にタッチイベントを処理できるようになると楽しそうです。既存のプログラムのタッチ対応なんかも楽だろうしね。

さて。

で、マルチタッチに対応して何が面白いのー?って根本的な話なわけですが、正直俺も当初は疑問でございました。小型デバイスならまだしも、ノート型とかでマルチタッチとか誰得…と思ってたわけです。画像ビューアとか以外に使い道思いつかない的なね。

ところが冷静に考えてみたら、ソフトウエアキーボードとかでこれその性能を発揮するんじゃないの?と思ったり。マウスのようなシングルポイントでは不可能な「キーリリース前のキープレス」を正しく認識してくれるようなものができる気がします。アニメとかでぺぺぺぺっと画面をキーボードのように叩いてる感じで。

問題は対応するデバイスを用意しないといけないとこでしょうか。開発やるにしても試すにしても。まあそれは何でも同じですが。