2 ポイント 投稿者 GN⁺ 2025-02-10 | 1件のコメント | WhatsAppで共有
  • Jonathan Blowの主張の要約

    • 世代間の情報伝達が希薄化している。
    • 理論より実践のほうが技術維持には重要である。
    • ソフトウェアが世界を動かしている。
    • 抽象化は低レベルプログラミングに対する無知を助長する。
    • 低レベルの知識を忘れれば重要なソフトウェアを維持できず、文明は崩壊するだろう。
  • 批判と反論

    • Blowの主張には誤りや誤解が多い。
    • 情報の正確性が重要であり、Blowの情報は多くの点で誤っている。
    • "Five nines"(99.999%の稼働率)という指標は今でも使われている。
    • 堅牢なソフトウェアは今も存在し、技術の進歩も続いている。
    • 抽象化が能力喪失につながるという主張は誇張されている。
  • 技術の進歩と抽象化

    • 多くのプログラマーはメモリ管理やポインタを扱いたがらない。
    • Cやアセンブリコードを書く人はいまも多い。
    • Rustのような新しい言語は堅牢性を重視している。
    • 抽象化は新しい技術の発展に貢献している。
  • Facebookの生産性をめぐる論争

    • Facebookの真の製品は広告配信プラットフォームである。
    • 多くのプログラマーが広告システムの改善に貢献している。
  • 過去と現在の比較

    • 過去のソフトウェア開発環境と現在では大きく異なる。
    • 現代のコンピュータは過去よりはるかに堅牢である。
    • ユーザーの期待値が高まるにつれてソフトウェアの複雑性も増している。
  • 抽象化と知識の喪失

    • 抽象化は知識の喪失を加速させる可能性がある。
    • しかし抽象化は、多くの人に創造性を発揮する機会も与えている。
    • 重要なのは、重要なシステムを維持できる技術基盤を保つことである。
  • 結論

    • Blowの主張には一部妥当な点もあるが、多くの部分で誇張や誤解がある。
    • ソフトウェアの複雑性と抽象化は解決可能な問題である。
    • デジタル世界のより大きな問題はプライバシーと自由である。

1件のコメント

 
GN⁺ 2025-02-10
Hacker Newsの意見
  • 私はMontana Stateでシステムの授業を教えているが、授業を始める時点で学生がファイルシステムとは何かを理解していないことが多い

    • Blowの意見の一部には同意しないが、高校生から技術系の学生までを対象にしたNAND-to-Tetrisスタイルの教育が必要だと思う
    • Little Man Computerや簡単なMIPSエミュレータのような「古典的な」モデルを使って、学生が技術の起源を理解できるよう助けている
    • 現代の64ビットアーキテクチャの本を見ると笑ってしまう
    • 技術を根本からつなげるのは難しい問題だ
  • あなたの意見に同意する。Blowの講演を見たし、批判は重要だと思う

    • Blowが「画面にピクセルを描けない」と言ったとき、それはその通りだと思った
    • 私は中規模のゲーム会社でゲームエンジンプログラマをしており、グラフィックスコードを扱える人を採用するのが非常に難しくなっている
    • DX12は前世代のDX11よりもプログラマに多くを要求し、Microsoftも、以前のグラフィックスAPIの経験なしにDX12を学ぶのは非常に難しいと認めている
    • こうしたAPIは、グラフィックカードの限界を克服し、低レベル最適化を実装しようとする開発者向けのものだが、今では業界標準になっており、経験のない人には教えにくい
    • 変化がなければ、採用候補の層は今後も縮小し続けるだろう
  • 年配のWeb開発者が抽象化について不満を言うときはReact開発者を念頭に置いている

    • Python開発者が抽象化について不満を言うときは年配のWeb開発者を念頭に置いている
    • C++アプリケーション開発者が抽象化について不満を言うときはPython開発者を念頭に置いている
    • ファームウェア開発者が抽象化について不満を言うときはアプリケーション開発者を念頭に置いている
    • 電気エンジニアが抽象化について不満を言うときはファームウェア開発者を念頭に置いている
    • 個人の知識に基づいて「過度な抽象化」の境界を定め、それ以降のすべてを「文明の破壊」と呼ぶのは独特な見方だ
  • サーバーサイドのJavaScriptやReactのようなものが、Webをソフトウェア開発の混沌にしてしまった

    • 多くの子どもたちはHTMLがブラウザでレンダリングされることを知らず、Reactがブラウザでレンダリングされるものだと思っている
    • VercelのCEOがReactを開発におけるLinuxカーネルだと考えているのは愚かだ
  • Blowは開発について優れた点をしばしば指摘するが、しばしば本質を外している

    • 彼は素晴らしい業績を成し遂げており、耳を傾ける価値のあるアイデアを持っているが、ときどきくだらないことを言う
    • 文明の崩壊についての話は、そのくだらない話の一つだと思うし、OPが示した反論に感謝している
    • Casey Muratoriについては触れないでおく。彼はBlowのようにやろうとしているが、良い部分すらまともにできていない
  • 現代のソフトウェア環境には多くの問題があり、過度な抽象化が問題だと思う

    • しかし反対の極端も悪く、人々は過去を過度にロマン化している
    • クラッシュや再起動の問題だけでなく、互換性を追求したシステムでさえ不整合の問題を抱えていた
    • 最も信頼性が低い現代のシステムであるWindows 11でさえ、私のコンピュータは2010年以前のどのコンピュータよりも信頼できる
    • Windows 95向けに書かれたソフトウェアも実行できる
  • すべての単純化が抽象化というわけではない。すべての抽象化が単純化というわけでもない

    • 単純化を目指すことが、通常は抽象化の動機になる
    • 抽象化がソフトウェアや文明を殺すとは思わないが、悪い抽象化は柔軟性とアクセスしやすさを損なう
    • ほぼすべての言語における糖衣構文を例に挙げられる
    • 特定の要素のせいでミスが増えるのではなく、複雑な問題を解決するために道具をうまく使うのが難しいのだ
  • 悪い抽象化は多い。技術における「速度の宗教」と傲慢さのせいで、最初の試みで固定されてしまうことが多い

    • 人気プロジェクトの一部になると、他の人たちが模倣する
    • それが10〜20年繰り返されると、巨大な混乱が生まれる
    • Jonathan Blowの講演が好きで、毎年一度は見返している
    • 彼は議論の余地がないことを言うが、多くの開発者が最善を尽くしていないことも分かっている
  • 著者は新しい世代に属しており、Blowが言ったことを理解していない

    • Figmaがデザインの世界を破壊していると言っても、若いデザイナーたちはすべて順調だと思う
    • 彼らはその環境で育っていないため、文化や経験に相当するものを学ぶ可能性が低い
  • 「低レベルのものを忘れれば文明が崩壊する」という主張には反対する

    • 低レベルシステムを使って高レベルのプロセスをモデル化するには複雑さが大きすぎる
    • 複雑さこそが問題であり、複雑さを最小化し、偶発的複雑さを避けるべきだ