コピペとDrap-n-Dropの代償

大分前のポストでログ監視にメールを使用していることを書きましたが、その際にネックになっていたのはメールクライアントの処理速度でした。一日に平均3000通ほどのログメールを処理するのですが、これを一般のクライアントで処理すると:

  1. インデックスを使わないと検索が遅すぎる
  2. インデックスを使うとメールの量が多くなったときにメールクライアントのパフォーマンスが全体的に低下する

とという課題が出てきてしまって、メールを削除してインデックスを作り直すという作業が対策が必要になっていました。

その解決策として昨日から「メールサーバーにsshターミナル経由でログインして、コンソールアプリで直接メールストレージ上で操作する」というやり方を実践しているのですが、そこで気がついたのが(今更的な部分はありますが)僕らがGUIの使用のために払っているコストの大きさです。

僕も日々のメール処理には検索速度の速いMail.appを使用していますが、よくよく考えてみると、CUIよりGUIを選ぶ理由は:

  • マウスによるポイント&クリックによる個別選択
  • コピー&ペーストによる繰り返し編集
  • ドラッグ&ドロップ(DND)によるファイルシステム連携

の操作性の部分にあるんだなぁ、ということに気がつきました。そして、これらの機能を実現するためにGUIアプリはCUIアプリに比べて圧倒的に大きく、そして遅くなってしまっているのです。

ウェブを使った情報操作が僕の主な業務ですが(響きは悪いね)、そこで上記のようなGUIの操作性はかなり重要な役割を果たしているので、だからだめなんだ、って言う事ではないですが、業務内容・要件によってはCUIを見直す必要があるなぁ、そして、GUIのコストって改めて高いんだなぁ、という事をつくづく実感しました。

ちなみに上記で使用しているCUIメールクライアントはmuttです。ソフトウェア技術者以外の人だとあまり聞き覚えの無いアプリかもしれませんが、メール処理のスピードという観点ではかなりの優れものです。

muttはMUAに徹した設計になっていて、メールをローカルストレージから読み書きして表示する以外は基本外部アプリに依存する形で開発がスタートしたため、その部分の機能が非常に軽快に、かつ的確に動作します。特に正規表現によるタグと、タグされたメールへの一括処理機能は、大量のメールを処理する際に重宝しています。