プログラミング
高速なソフトウェアこそ、最高のソフトウェア
Fast Software, the Best Software (craigmod.com)
要約
ソフトウェアの速度は、ユーザーのエンジニアリング品質や使いやすさに対する認識に大きく影響する、最も価値がありながらも過小評価されている資産です。高速なソフトウェアは、ユーザーの生活にスムーズに溶け込み、信頼感を与えます。逆に、遅いソフトウェアは、たとえ機能が優れていても、ユーザーの信頼を損ない、不満の原因となります。
全文翻訳
高速なソフトウェアこそ、最高のソフトウェア
速度の速いソフトウェアの利点、そしてそれがユーザーのエンジニアリング品質と全体的な使いやすさの認識にどのように影響するかについて
元記事:Roden 028
私は高速なソフトウェアを愛しています。つまり、機能とインターフェースの両方で素早いソフトウェアのことです。何かを起動したり操作したいと思ったときから、それが実行されるまでのラグが最小限、あるいは全くないソフトウェアです。軽快さ。速度の速いソフトウェアは、通常、それが焦点を絞っていることを意味します。良い道具のように、それはしばしばシンプルであることを意味しますが、それは必ずしも真実ではありません。
ソフトウェアにおける速度は、おそらく最も価値があり、最も評価されていない資産です。私にとって、速度の速いソフトウェアは、アプリケーションがあなたの生活にスムーズに統合されるか、それとも非常に乗り気でないときに呼び出されるかの違いです。ソフトウェアの速さは、本における素晴らしい余白のようなものです――理由を必ずしも知らずとも、あなたを笑顔にします。
私が最も頻繁に使用し、最も速度の速いソフトウェアの一つはnvALTです。1 それは奇妙な名前の、非常に地味なアプリケーションです。単なるプレーンテキストファイルのデータベースに、プレーンテキストエディタが取り付けられているだけです。しかし、それは高速です。私が使った中で最も高速なテキストカタログソフトウェアです。瞬時に開き、瞬時に結果を生成します。私のnvALTデータベースには、10年分のメモがすべて入っています。それを開くと、カーソルはすでに検索フィールドにあります。それはキーボードフレンドリーなソフトウェアです:もし検索フィールドにいなければ、ESCキーを押せばそこにたどり着けます。数文字タイプすると、それらの文字を含むすべてのメモが表示されます。それは、オフボードブレインの最良の具現化です。私の人生において価値のあるあらゆるテキストはnvALTに投入されます。nvALTはSimplenoteと同期します。これは便利です、なぜならnvALTはmacOS専用だからです。そのため、SimplenoteのiOSアプリを使って、外出先でもあなたの追加の脳を近くに置いておくことができます。SimplenoteにはmacOSアプリもあります。あなたは思うかもしれません:なぜSimplenoteデスクトップアプリケーションを使わないのか?それは――それほど速くないからです。ミリ秒単位の話ですが、違いを感じるには十分です。それは1000ドルの日本庭園用ハサミと150ドルの庭園用ハサミの違いです。どちらも問題なく切れますが、もしあなたが一日中庭仕事をするなら、その違いを感じるでしょう(おそらく?)。
私は主にUlyssesで執筆しています。今でも、このUlyssesで書いています。Ulyssesは、比較的大きな文章を整理するのに役立ちます。その整理機能が、私がそれを使う主な理由です。2 しかし、それは遅くなることがあります。Ulyssesは何度か遅くなっています。もし私が5000語の記事を持っていて、その一番上に向かってタイピングすると、時々私のタイピングに追いつけなくなります。それはキーストロークごとに全体を再レンダリングします。これは私を狂わせます。しかし、アプリケーションの整理機能とシンプルさは、この時折の遅さを上回っています。それでも、その遅さは機械の内部の目に見えない腐敗の兆候のように感じられます。その遅さは、不快な臭いのようです。それがそれほど小さなテキストファイルで遅くなることがなければ、私はそのアプリケーションをより信頼するでしょう。5000語は取るに足らない量です。信仰は試される:それは同期機能がどれほど優れているのか疑問に思わせます。それはアプリケーションがデータを失うのではないかと疑問に思わせます。3
速度と信頼性はしばしば手を取り合って直感的に結びつけられます。速度は、一般的なエンジニアリング品質の良い代理となることがあります。アプリケーションが単純なタスクで遅くなる場合、それはエンジニアが細部にまでこだわらない職人気質ではないことを意味する可能性があります。常にそうとは限りませんが、他の壊滅的な問題が潜んでいることを意味する可能性があります。私はすべての職人が細部にこだわることを望んでいます。私はUlyssesがひどく作られているとは思いませんが、入力とインターフェースの速度をより優雅に扱わない場合よりも、それに自信を持っています。速度があれば、私はそれをより信頼するでしょう。
対照的な例として、Sublime Textは私にとって決して遅くなりません。私は50,000行のファイルをそれに投げ込んでも、それはサクサクと動作します。あなたは私がなぜSublime Textで書かないのか(私も時々疑問に思うことですが)不思議に思うかもしれません。そしてその答えは:フルコンポジションには、単に十分には快適ではないということです。Sublimeのタイポグラフィ、スペルチェック、ファイル整理(キーワードなし、順序を自由に変更できないなど)――それらはそれほど洗練されていません。Sublime Textは言葉のためではなく、コードのために最適化されています。一方、Ulyssesは言葉に焦点を当てています。その違いは微妙ですが、意味のあるものです。とはいえ、Sublime Textは――私の経験では――常に速くなっています。私はこのようなソフトウェアを愛しています:時間が経つにつれてアンブロート(不要なものを削ぎ落とす)するソフトウェアです。これはすべてのソフトウェアの目標であるべきです。長く存在するほど、よりエレガントになるべきです。川石のように滑らかになるのです。
私はSublime Textのエンジニアリングに全幅の信頼を置いています。それは、10年以上使ってきたからです。しかし、それが常に高速で焦点を絞ったツールのように感じられる(実際には非常に複雑であるにもかかわらず)こと、そして私がそれを使用する時間が長くなるにつれてさらに速くなったからです。Adobe Lightroomは、高速で焦点を絞ったツールのように感じられません。Photoshopも同様です。かつてはそうでした。だからこそ、それらを選んだのです。90年代のPhotoshopは非常に高速でした。私は、それが単なる昔の幻想だと呼び起こしているとは思っていません。それは本当に活気のあるコードでした。同様に、私は2007年頃にLightroomを使い始めました。なぜなら、それはAppleのApertureよりもはるかに高速だったからです。しかし、Apertureは消え、Lightroomは何年経っても滑らかになっていません。Lightroomは、多くの鈍く、遅いエッジを持つ、ぎこちない塊です。なぜそれが速くならないのか?これは長年の謎ですが、私はそれがa)機能の肥大化、そしてb)その機能の肥大化のためにコアエンジニアリングが最適化されていないことによるものだと疑っています。これがAdobeがLightroom CCをリリースした理由でしょうか?おそらく。古いプログラムを修正するよりも、新しいプログラムを作る方が簡単なことがあります。
Photoshopは今や七面鳥です。Photoshopで新しいファイルダイアログを開くだけでも数秒かかります。2019年に、新しく空白のファイルを作成するのに数秒です。画像をエクスポートするためにCmd-Opt-Shift-Wを押すと、その画面をロードするのに3〜5秒かかります。(そして、誤ってCmd-Opt-wを押すと、すべてのウィンドウが閉じます。)リリースごとに遅くなっています。だからこそ、私はAffinity Photoにお金を払ったのです。単に速度のためです。それだけです。私はまだCreative Cloudライセンス(主にLightroom ClassicとInDesign用)を支払っていますが、Affinityには喜んでお金を払いました(ドルでの投票です)――それは非常に高速で、特にWeb消費用のファイルをエクスポートするのに高速だからです。Photoshopを開かなければならないときは、ため息をつきます――実際にため息をつきます。
Sketchのようなデザインアプリが速度のために人気を集めたと主張する人もいるかもしれません。Sketchは、リリースされたとき、Adobeが提供するほとんどのものよりもはるかに高速で、シンプルで、UXデザインに焦点を当てていました。信頼性の問題はありましたが、私たちはそれを大目に見ることができました。なぜなら、それは再び、使うのが楽しかったからです。このように、速度は巨大な商業的資産となり得ます。人々が一日中使うソフトウェアに関しては、楽しさの3%の増加を軽視すべきではありません。
Figmaは、SketchやIllustratorの系統の別のデザインツールです。ブラウザベースであるにもかかわらず、Figmaは非常に高速なので、使うたびに喜びで笑ってしまいます。現代のコンピューターで期待されるすべての速度――つまり、非常に高速――と同じように感じられます。愛されているように感じます。私はその背後にあるエンジニアリングとデザインチームを知っており、それが愛されていることを知っています。それは職人の立場から構築されています。金属に近い職人技です。そして、あなたはそれを感じます。単なる速度としての速度だけでなく、直感性としての速度でもあります。つまり:ツールは、例えばIllustratorの同じツールよりも、より合理的に機能します。ペンツールはその例です。Figmaでは、ペンツールは合理性の立場から機能します。この意味で、「速度」はコンピュータサイクルのあたりの作業だけでなく、ユーザーサイクルのあたりの作業としても現れます。
Google Mapsは、無数の遅延によって悲劇的で公の死を遂げつつあります。GoogleはGoogle Mapsの至る所にアニメーションを追加しました。それらは個々には良いですが、合計すると非常に遅いです。Google Mapsはかつて、高速で焦点を絞ったツールでした。今ではかなり鈍重です。間違ったボタンを押すと、モーと鳴ります。ぎこちない、と言うこともできるでしょう。複雑すぎる。不必要にレイヤー化されている。おそらく、やりすぎなのでしょうか?特定のモード(例えば、ナビゲーション)から抜け出すために、ユーザーは4つか5つの異なる領域をタップし、それと同じくらい多くの遅いアニメーションに耐えなければならないかもしれません。私たちは耐えます。なぜなら、Google Mapsは、そうでなければ、私たちの周りの世界に関するデータの宝庫だからです。それは、情報の驚異であり、アプリケーションの驚異です。しかし、ますます、その情報はマルチUIバリアント、4そしてUIの背後に隠されています。それは...