水たまりは希望を写している

Vivaldi のコマンドチェインは最高だけど理想ではない

Vivaldi 4.1 にて、コマンドチェインが実装された。これはクイックコマンドで実行できるコマンドを 1 つ以上つなげてブラウザ操作を効率化するものである。フォーラムではすでにこれをフル活用したすばらしいコマンドチェインがたくさん公開されている。

機能自体のコンセプトは最高で、とても “Vivaldi らしい” のだけど、「ぼくのかんがえたさいきょうのぶらうざ」には到達し得ないな、と思う。

遅延?

コマンドチェインには「遅延」というコマンドが用意されている。パラメータで秒数 (ミリ秒) を指定して、その時間次のコマンドの実行を待つというものだ。

ブラウザのあらゆる処理は非同期で行われていて1「処理を待たずに別の処理ができる」とイメージするとわかりやすい。、それ故に遅延を挟む必要がある。遅延を挟まずに立て続けにコマンドを実行して、想定通りの動作になる保証は全くないのだ。

これにより、場合によってはコマンドチェインを正しく動かすために「遅延」コマンドを使用する必要がある。

これが非常にやっかいで、遅延すべき時間というのは、処理の内容に依るし、Vivaldi が動いているパソコンのスペックにも依存する。極端な話をすれば「パソコン A では 125 ミリ秒遅延させて動作するが、パソコン B だと 300 ミリ以上遅延しないと正しく動かない」なんてこともあり得る。

理想は、「個々のコマンドが動作完了を待つ」だろう。そうすればわざわざ「遅延」コマンドを使う必要がなくなる2必要がなくなるだけで、表示のため意図的に遅延させる使い方はあり得るだろう。し、どんなスペックの環境でも最速でコマンドが実行される。今の Vivadi はプログラミング言語で例えるとawait キーワードが使えるにもかかわらず自力で時間を待つ」みたいなアホなことやってる。”かもしれない” は車の運転だけにしとこうよ~。

変数?

コマンドチェインはあくまでも連続的にコマンドを実行するためのものであり、プログラミングのように関数があり~型があり~ではない。なので変数の概念もない。

URL に JavaScript を記述すればブックマークレットと同じ要領で色々できるが、コマンドをまたいでゴニョゴニョできるわけじゃないので、かなり使い方が限られる。クリップボードを使えば任意のデータをコマンドチェインで扱うこともできるが、OS のクリップボードを汚染するので良い方法とは言いがたい。

スクリプトを組みたい

Vivaldi の利用者層はかなりヘビーユーザーに寄ってるはず [要出典]。カスタム CSS もあるし、ターゲット層も “そっち側” だろう。

ならはじめからスクリプト組めるようにすれば良かったのでは? と思う。あえて GUI を採用し、下に合わせる必要はない (しかもコマンドチェインの設定の UX はすこぶる悪いし、変な挙動がある)。

Vivaldi らしい機能ではあるが、すごく中途半端なものになってしまったなぁ、と。

  • 1
    「処理を待たずに別の処理ができる」とイメージするとわかりやすい。
  • 2
    必要がなくなるだけで、表示のため意図的に遅延させる使い方はあり得るだろう。