3 ポイント 投稿者 GN⁺ 2024-04-30 | 1件のコメント | WhatsAppで共有

Microsoft WordファイルをGoogle Docsで開くことの難しさ

  • 筆者の父親は、Microsoft Wordの文書ファイルを作業するためにノートPCへWordをインストールする必要があった
  • 筆者は父親にGoogle Docsを提案した
    • すでにGoogleアカウントを持っており、使いやすく、クラウドベースで自動同期されるため
  • しかし、約30MBの文書ファイルをGoogle Docsで開くと、入力した内容が画面に表示されるまで数秒かかるなど、ChromeやGoogle Docsには負荷が大きすぎた
  • 最終的にLibreOfficeをインストールしたところ、そちらでは非常に高速に動作した

今日のソフトウェア標準についての考察

  • パフォーマンスの面で、ソフトウェア開発は退歩しているのではないかという疑問がある
    • 最新で洗練されたモダンなツール、フレームワーク、言語が、効率性の面で私たちを後退させているのではないか
  • Webアプリやブラウザを扱うために、ハードウェア要件が増大している
    • 純粋なネイティブアプリだけであれば不要だったはず
    • なぜモバイルフォンに8GBや16GBものRAMが必要なのか
  • Webには、UIレンダリングエンジンのラッパーではなくネイティブレンダリングが必要だ
    • 高性能なノートPCでも30MBのWordファイルをGoogle Docsで開けない理由は、ブラウザがより多くのメモリとCPU使用量を必要とするため
  • 私たちは、最適化され、効率的で、高性能なアプリケーションを開発する方法を見失ってしまったように思える。この問題は解決しなければならない
    • 1966年の2KB RAMのApolloコンピュータは人類を月に送ったが、2024年にはブラウザで30MBの文書ファイルを扱えない
  • 今日では業界の誰もが未来のためにPWAアプリケーションへ注力しているため、Webに焦点が当たっている

API最適化の重要性

  • APIのパフォーマンスはアプリの性能に寄与するため、Webとネイティブアプリの両方でAPI最適化が重要である
  • 筆者の製品であるOnradar(https://onradar.io)は、APIモニタリングを通じて最適化を支援する
    • OnradarはAPIのアップタイム監視とフローベース監視を提供する
    • フローエディタで関連APIによるユーザーシナリオを作成し、Onradarに24/7でテストさせることができる
    • インシデント発生時に通知を提供する

GN⁺の意見

  • Google DocsとMS Officeの互換性問題は長年指摘されてきた課題であり、いまだ完全には解決されておらず、ユーザーに不便を与えている。両社がもう少し積極的に協力してこの問題を解決してほしい
  • Webアプリの性能問題をハードウェアスペックの向上で解決するのは根本的な解決策ではない。限られた資源を効率的に使うソフトウェア開発が必要だ
  • ネイティブアプリを主張するのも一つの方法だが、Webの利点を生かしながらWebアプリの性能を改善するほうが、よりよい方向だろう。Webアプリの可搬性とアクセシビリティは捨てがたい利点である
  • API最適化とモニタリングは、システム全体の性能向上に寄与しうる重要な要素である。特にマイクロサービスアーキテクチャが主流となっている昨今、APIレイヤーへの関心はさらに高まらざるを得ないだろう
  • Apollo時代と比較するのは適切ではないように思える。宇宙船の制御とワードプロセッシングを同列に置くのは難しい。現在のソフトウェアはあまりにも大規模かつ複雑になっており、Apollo時代の効率性を期待するのは難しいだろう

1件のコメント

 
GN⁺ 2024-04-30
Hacker Newsの意見

要約:

  • Apple と Microsoft は、開発者アカウントの必要性、バイナリ署名用証明書の購入、収益分配などによってネイティブアプリ開発を妨げている。Web ははるかにシンプルで安価な代替手段である。
  • ムーアの法則のおかげで、ソフトウェアは数十年にわたりハードウェアの進歩にただ乗りしてきた。これは祝福であると同時に呪いでもあった。
  • 開発者は、完全に統合され接続された普遍的なコンピューティングプラットフォームである Web を好む。ユーザーは性能が十分に良ければそれほど気にしない。良いソフトウェアを作ることは重要ではなくなっている。
  • 主な原因はビジネス上の意思決定にある:
    1. クラウドへの移行 - 企業は定期課金を好み、顧客は自前で IT チームを雇う必要がない
    2. 顧客がオンプレミス SW のアップグレードを拒み、保守サイクルが長期化してパッチ対応が際限なく続く
    3. Web 開発は複数プラットフォーム向け開発よりコストが低い
  • 90年代初頭の MS Word はフロッピーディスクで配布され、実行ファイルは 2MB だった。今では GB 単位で測られるが、何が改善されたのかは曖昧である。
  • 軽量 SW は存在するが、あまり選ばれていない。Lua、SQLite、Fennel、Althttpd、Fossil、Mako Server など、優れた軽量 SW がある。
  • フロントエンドではネイティブアプリと Web ページが好まれるが、Tiddlywiki のような Web アプリにも独自の利点がある。ただし依然として Emacs より多くのリソースを使う。
  • React のページ遷移時に、ドロップダウンのレンダリングに長い時間がかかる事例があった。最終的には React のコードを修正して解決した。
  • 会社が開発者に高性能な機材を支給するため、古い一般的な PC で十分にテストしなくなる問題がある。
  • 「イディオマティックなコード」「性能最適化は諸悪の根源」といったブログ記事を多く目にし、開発時間のほうが重視されるようになった。以前は、より速く、より良いコードを書く開発者がいた。