/note/tech

The Programming Tourist

要約:

■ 1. プログラミングへの参入と「職業的移住」

  • 著者はEE専攻からCS専攻に転向するほどプログラミングに魅了され、かつてはその分野に特別な論理的情熱を持つ人々が集まっていた
  • ソフトウェア業界の好景気により高給が保証されるようになり、プログラミングへの情熱を持たない「職業的移住者」が大量に流入した
  • この現象自体は必ずしも悪ではなく、複雑でない業務を安価に遂行する需要を満たした
  • ハードウェアの高性能化が進み、コードのパフォーマンスが重要視されなくなった
  • 採用プロセスに技術的判断ができる人物が不在の場合、「無能の連鎖」が生じるリスクがあった

■ 2. LLMがソフトウェアエンジニアリングに与える影響

  • 一般的な見解:
    • LLMの登場がソフトウェアエンジニア間のスキル格差を縮小するというのが通説
  • 著者の主張:
    • 最低限のソフトウェアを作るためのハードルが下がったことで、エンジニアの質と人数はかつての水準に自然回帰する

■ 3. オープンソースへの影響と対応

  • 従来のオープンソースはプログラミング知識があり、同僚の批評に耐える成果物を公開する意志を持つ人々によって支えられていた
  • 「プログラミング観光客」(学習意欲なしにプログラミングに惹かれる層)がLLMを活用し、リポジトリにPRを大量投入・LLM生成コードを宣伝している
  • コミュニティの反応:
    • ZigはLLM生成コードをリポジトリから締め出した
    • CodebergはLLM主体のコードを禁止した
  • 今後の予測:
    • コードホスティングプラットフォームの分断化が進む
    • 貢献者に対する信頼の格付け(Vouchなど)が普及する
    • 招待制のコードホスティングプラットフォームが台頭し、品質が担保される

■ 4. LLM活用の適切な条件

  • 非プログラマーがコードを生成できる点は必ずしも否定的ではない(例:芸術家がBlenderのワークフロー自動化スクリプトを生成するなど)
  • 開発者がLLMで自身のコードを補強することにも異論はない
  • 条件:
    • 機械生成の成果物は人間が生成したものと区別がつかない品質でなければならない
    • そのためにはスコープを十分小さく保つか、成果物を継続的に監査・修正し、出力全体を理解・レビューすることが必要

■ 5. ソフトウェアエンジニアリングの将来と失われる人材

  • ソフトウェアエンジニアリングという職業は、マシンの深い知識を持つ人材のみで構成される状態に回帰する
  • LLM活用の有無にかかわらず、複雑で高性能なコードベースを理解・保守・拡張できる能力が依然として求められる
  • 打撃を受ける層:
    • 「生計を立てるために最低限の知識だけを習得した」エンジニア層は、LLMを使う非エンジニアに代替されるリスクがある
  • 本質的な悲劇:
    • 「プログラミング観光客」がソフトウェアエンジニアリングの終焉を叫ぶことで、次世代を担うはずの学生のCS専攻離れが加速している
    • ジュニアエンジニアが不足するのはLLMによる代替ではなく、CS入学者数の減少が原因となりうる