その他
優れたツールは不可視である
Good Tools Are Invisible (gingerbill.org)
要約
この記事は、真に優れたツールはユーザーの作業を妨げず、意識されない「不可視」なものであるべきだと主張しています。多くの人がツールの欠点を「パズルゲーム」のように楽しんで解決することに価値を見出しますが、これはツールの限界を隠蔽するだけであり、真の生産性には繋がらないと論じています。ツールの選択が個人のアイデンティティと結びつくことで、その欠点を擁護する傾向に陥りやすいことも指摘しています。
全文翻訳
TL;DR: 優れたツールは、そしてそうあるべきですが、不可視です。そのようなツールを作ることを目指すのがツールメーカーの目標です。私がよく見る、そして反論しなければならない習慣の一つは、ツールの欠点を取り上げて、「楽しい」「パズルゲーム」として再販することです。私はツールに「楽しさ」を求めていません。ツールは不可視であってほしいのです。
テキストエディタ戦争
vimを例に取ってみましょう。これは単なる例であり、他のエディタにも当てはまります。人々がvimを賞賛するのを頻繁に見かけますが、その理由はそれが実際に優れている点ではなく、むしろそれが苦手なことを取り上げて「楽しい」解決すべきパズルに変えているからです。ある人から、一度きりのテキストリファクタリング問題に対処するマクロを構築するのが「楽しかった」と聞かされたことがあります。しかし、彼らがやっていることとそれに要した時間を見ると、正直な感想はこうでした。Sublimeならマルチカーソルを使えば1分でできたか、あるいは簡単なスクリプトを書けばよかったのに、と。
はっきり言っておきますが、テキストエディタがワークフローにおいて重要でないと言っているのではありません。私は、ツールに対するほぼ宗教的な献身について疑問を呈しています。それは、ツールが「ハッカーらしい雰囲気」を与えるからであり、それが基本的にvimやemacsの新規参入者にとっての魅力のすべてです。それが私が「不可視なツール」と言う意味するところです。あなたが選んだエディタで熟達すれば、それは背景に溶け込みます。しかし、それが何かを簡単に処理できない瞬間、それは不可視ではなくなります。
私を困惑させるのは、多くの人がその摩擦、つまりツールの限界を回避するためにかかる労力を「楽しい」部分として扱い、そしてそれをツールが優れている証拠として宣伝することです。私は自分で選んだエディタ、Sublimeにも多くの欠点があることを知っています。私はそれらの欠点を、解決すべき楽しい小さなパズルとして飾り立てることはしません。ただ、実際に必要なツールが不足していることにイライラし、プラグインを書くか、別のプログラムを使ってテキストを望むように変換しなければならないのです。
私は15年間Sublimeを使っています。それが私の選ぶエディタである理由はいくつかあります。そのショートカットはグラフィカルなOS環境のスーパーセットであり(アプリケーション間を移動する際の精神的なコンテキストスイッチを最小限に抑えます)、マルチカーソルはマクロよりも99.999%優れたものです(過去10年間でSublimeでマクロを「必要とした」のは2回だけだと思いますが、どちらの場合も、同じことをするスクリプトを書くよりもマクロの設定に時間がかかりました)。(マクロは直接的な視覚的フィードバックを提供するため)、そしてテキスト編集ワークフローにおいて最も「パズル」を少なくしてくれます。
vimのようなものは基本的な編集には優れているが、バルク操作(grepのような操作ではなく)には劣ることを発見しました。だからこそ、私は長年Sublimeにこだわり続けているのです。vimのモーションがSublimeのワークフローよりもそれほど生産的だとは感じたこともありませんでした。これは、試さなかったり、慣れていなかったりしたからだけではありません。正直に言うと、長年vimのモーションの知識のほとんどを忘れてしまいました。なぜなら、定期的に使わないし、必要もないからです。そして、私はほとんどコードをターミナルで書かないので、ターミナル指向のエディタの必要性は実質的に存在しません。
もし人々がvim、emacs、あるいはその他のツールを本当に優れた生産的なものだと感じているなら、私はそれを使うことを批判しません。人々は自分が知っているものに最も快適さを感じます。しかし、私が議論している人々にとって、その同じ慣れがツールの欠点を見えなくさせ、それらの欠点をゲームのように称賛することにつながります。
ツールとしてのアイデンティティ
これらの議論が宗教的になる理由の一部は、ツールの選択が旗を立てるようなものになるからです。それはあなたのアイデンティティについて何かを語ります。「ハッカーらしい雰囲気」は単なる美学ではありません。それは部族のシグナルであり、それが本当の罠です。一度あなたのアイデンティティがツールに投資されると、その欠点を認めることは、自分自身について何かを認めるように感じ始めます。だから人々は欠点を許容するだけでなく、それを擁護し、最終的には誇示します。ツールの欠点を、そのツールが自分の個性の一部だと決めた人と正直に話し合うことはできません。
生産性を感じること vs 生産的であること
私が言及したテキストエディタのマクロの逸話は、生産性を感じることと、実際に生産的であることの間のギャップに関するものです。厄介な問題を解決することから生まれる巧妙さの感覚があり、その感覚を実際の成果と間違えやすいです。難しいことを英雄的で巧妙に感じさせるツールは、成果のように感じられ、「強力」と認識されるかもしれませんが、静かに遅いのです。正直なテストは、あなたがどれだけ関与したか、どれだけ賢く感じたかではなく、壁時計の時間と、そこに至るまでに犯したミスの数です。人々が熱狂的に勧めるツールの多くはこのテストに落ちるでしょう。もし生産性が本当に目標なら、自分の見解を実際に問い直し、何があなたをより生産的にするかを見てみてください。そうすれば驚くでしょう。
ターミナルUI vs GUI
この文脈でのもう一つの例は、人々がターミナルアプリをGUIよりも推奨する時です。もしあなたが一日中ターミナルに縛られているなら、明らかな利点は完全に理解できますが、ほとんどのプログラマーは一日中ターミナルに縛られているわけではありません。一般的にTUIをGUIよりも推奨する人々からの批判の一つは、「キーボードだけで操作できない」というものです。だから?それはGUIアプリが本質的に悪いということではありません。それは、人々が作るGUIがキーボード操作できるほど十分に良くないということです。キーボードで操作できるGUIを作ることは本質的に不可能なことではありません。ただ、ほとんどのツールメーカーは実装する手間をかけず、通常はキーボード操作がマウスに手を伸ばすよりもはるかに生産的であることに気づいていないからです。もし特定のTUIアプリが、GUIベースの他の代替アプリよりも優れているという議論であれば、それは公正な議論ですが、TUIがGUIよりも本質的に優れていると主張するのは非常に情報不足です。そしてこれはよくある間違いです。人々はツールのカテゴリの現在の状態を見て、その現在の限界が本質的/必須であると仮定しますが、実際には誰もそれらのツールをより良くするために労力を費やしていないのです。
Linuxのデスクトップとしての(人気の)欠如
Linuxのデスクトップが(2026年になっても)まだ普及していない理由の一部は根本的です。Linuxを使う多くの人々は、システムを再形成するために設定ファイルをいじるのが好きです。それが彼らの「楽しみ」であり、パズルゲームなのです。私もその段階を経験しました。しかし、しばらくすると、私はただ物事が機能することを望むようになりました。すべてを設定するのに何時間(あるいは何日)も費やすことは、もうしたくありません。デフォルトが良いもので、すぐに機能することを望みます。そして、マイナーな調整が必要な場合は、数秒で済むべきです。最大の構成可能性はツールの目標であるべきではなく、実際に必要な場合のオプションであるべきです。人間工学に基づいたツールを設計することは、基本的に良いデフォルトを持つことであり、可能な限り/必要な場合にエスケープハッチを許可することです。偶発的な複雑さの魅力は、多くのプログラマー/技術者が愛するものであり、彼らに奇妙な安心感を与えます。良いデフォルトを持つことは、基本的にツールメーカーの責任です。私たちツールメーカーは、ユーザーに負担をかける傾向があります。設定したり、調整したり、学んだりすることです。その負担の多くは、実際には決定を下すことを拒否するデザイナーなのです。「高度に構成可能」というのは、しばしば意見を何も出さずにリリースし、結果として生じる問題をあなたの問題と呼ぶための言い訳です。良いデフォルトは、ユーザーの時間に対する敬意の形です。ツールメーカーが一度考えれば、千人のユーザーがそれぞれ考える必要がなくなります。そして、ツールの設計の一部は、いくつかエスケープハッチを許可することです。それらのエスケープハッチは、何か異常なものを必要とする真の少数派のために存在し、それらは...