世界を動かす技術を、日本語で。

報告書の大幅な増加

2026年4月2日原文(lwn.net)

概要

  • バグ報告数の急増 に関する議論
  • AI活用によるコード品質向上 の重要性
  • 既存コードと新規コード 双方への精査の必要性
  • Sashiko導入の動き とその意義
  • 今後のバグ報告ペース への懸念と期待

バグ報告数の急増について

  • 2026年3月末時点 でバグ報告数が大幅に増加
  • 報告ペースの持続性 についての不安
  • バグは新規作成よりも報告が速い 傾向
  • 過去の未報告バグの一掃 が進んでいる可能性
  • 既存のバックログ解消 への期待

コード品質向上のためのAI活用

  • AIを用いたコードレビュー の重要性強調
  • マージ前のコード精査 による品質管理
  • 既存コードにもAIチェックを適用 する必要性
  • 新機能追加より品質維持を優先 する姿勢
  • バグ報告の質向上 とスパム防止

Sashiko導入とその意義

  • Andrew MortonによるSashiko必須化提案
  • メモリ管理サブシステム への適用検討
  • Sashikoによる自動検証強化
  • 提出物の品質基準向上
  • AIツールを活用したセキュリティ向上

今後の課題と展望

  • バグ報告ペースの継続性 への疑問
  • AIの活用範囲拡大 による効率化
  • 長期的な品質維持体制の構築
  • 開発プロセス全体の透明性向上
  • コミュニティ全体での品質意識の共有

Hackerたちの意見

このペースがどれくらい続くのか分からないな。バグが書かれるよりも早く報告されてる気がするから、実際には長いバックログを整理してるのかも。これらのツールが、書かれた時点でセキュリティバグを見つけるのにも役立つといいな。いつか新しい脆弱性の発見がすごく稀になる時が来るのかな?

セキュリティ脆弱性の約70%はメモリ安全性に関するもので、CやC++で書かれているから存在しているんだ。ほとんどの脆弱性は新しく書かれたコードにあるから、Googleは新しいコードを書くときにRustを使うだけで、見つかる脆弱性の数が劇的に減ることを発見したんだ。

最後の段落が面白いね。「全体的に見て、2000年以前のネットが誰でも使えるようになった頃と同じくらいのレベルで、ソフトウェアの質がずっと高くなると思う。ソフトウェアがCDに焼かれたり、何百万ものフロッピーディスクに書き込まれたりしていた頃は、今よりもはるかに多くのテストを受けていたから。」2000年以前のソフトウェアは本当に良かったのかな?もしそうなら、それはテストが良かったからなのか、複雑さが低かったからなのか?

2000年以前のソフトウェアは本当に良かったのかな?リリース時には、そうだったね。CDやフロッピーに焼く前に、ソフトウェアがちゃんと動くか確認しなきゃいけなかったから。今はバグだらけのバージョンをリリースして、ユーザーにテストさせてる感じだよね。

90年代にマイクロソフトで開発者をやってたんだ(Visual Studio(ボストン)とWindowsチーム)。当時のソフトウェアが「良かった」とは言わないけど、確かにもっと低いレベルで考えなきゃいけなかったのは事実だね。例えば、どのWin32関数がリング3からリング0に遷移するかを知っておかなきゃいけなかった。そういう遷移はすごくコストがかかるからね。「正しい関数を見つけて次に進む」なんてことはできなかった。アプリやシステム全体をダウンさせない正しい関数を見つけなきゃいけなかった。KiUserExceptionDispatcherの問題にぶつかるたびに、人生が嫌になったのを覚えてるよ。例外のような簡単なことでも、アプリのパフォーマンスを殺す可能性があったからね。それに、問題が発生したらパッチを当てるだけじゃなかった。フロッピーディスクでパッチを送ったり、BBSに投稿したり、PC Magazineに送ったりしなきゃいけなかったんだ。[0]: https://doar-e.github.io/blog/2013/10/12/having-a-look-at-th...

8ビットや16ビットのビデオコンソールゲームを考えてみて。あのカートリッジは高かったから、何百万も作る前にバグがないことをどれだけ確信していたのかな?

どちらが理由かは難しいけど、両方の可能性が高いよね。つまり、低い複雑さがより徹底的なテストを可能にしたってこと。とにかく、2000年以前のソフトウェアは今より確実に良かったと思う。絶対に失敗しないように設計されてたから、何をしてもクラッシュしたりデータが壊れたりすることはなかった。ただ、その頃のほとんどの人が使っていたコンピュータはシングルスレッドのCPUだった。プリエンプティブマルチタスクのOSやマルチスレッドのアプリを使っても、シングルスレッドのCPUで実行すると、マルチコアCPUで露呈するような微妙なバグは見つからなかったんじゃないかな。今は、どんな状況でも絶対に失敗しないOSなんてないけど、2003年以前とは違って、古いプログラムの質が良かったのか、それともハードウェアの並列性を持つシステムでソフトウェアの同時実行を正しく実装するのが難しいからなのか、ちょっと気になるね。

最高の時代でもあり、最悪の時代でもあった。最高だったのは、QAが実際に存在していて、多くの会社にとって重要だったから。QAが何かを見つけたら、最終マスターがプレスされる前に「出荷停止」できたから(だいたいゲームのことだけど)。フォークロアや歴史的なサイトを探せば、そういう例が見つかるよ。プログラマーが夜通し働いて、出荷マネージャーがそばで見守っていて、ディスクを掴んで倉庫に駆け込む準備をしてた。だけど、アップデートもあったよ。バグや機能のため、プログラマーが完璧じゃなかったから(完璧なコードを作るために宇宙シャトル並みの努力をしてたわけじゃないし、ボイジャーだってアップデートがあるしね)。DooMを見てみて。BBSでリリースされて、当時からいろんなバージョンがあったし、1994年くらいかな?でも「最悪」だったのは、フレームワークやコードが今ほど進んでなかったから。CRUD開発者でも、全てがどう動くか結構知っておかないといけなかった。今当たり前に思ってる多くの保護機能(Cのような「低レベル」言語でも)なんて存在しなかった。セキュリティの問題も多かったけど、みんなあまり気にしてなかった。だって、全てがローカルだったから(自分のボックスをr00tできるかどうかなんて誰も気にしない)。2000年はインターネットが本格的に始まり、全てが「オンライン」になり始めて、問題が次々と見つかるようになった時期だった。

こういうことを言うとき、ちょっとバラ色のメガネをかけてる感じがする。プログラムは自動保存されず、頻繁にクラッシュしてたから。誰かが何時間も作業を失ったって話を聞くのはすごく普通だった。コンピュータはランダムにブルースクリーンになってたし、デバイスドライバーはカーネルから隔離されてなかったから、簡単にシステムを不安定にするようなドングルを買っちゃうこともあった。ウイルスはホワイトカラー経済をひざまずかせることがよくあった。オンラインで協力プレイを始めたばかりのコンピュータゲームは、クライアントが送るものの検証を全くしてなかった(今でもそういうことはあるけど、当時はそれが普通だった)。

見た目は良かったけど、機能が少なくて開発とテストに時間がかかったからだよね。でも、ノスタルジーもある。全てが遅く動いていて、世界も小さくて、基準も低かった。人々は通常、ソフトウェアの後のバージョンを覚えているか、初期のバージョンに出会ったことがないから。インターネットがなかった頃は、みんなが細かいことについて文句を言うこともなかったし、一般的な意識も今ほど毒性がなかった。

デルタ、ジェットブルー、アメリカン航空、アラスカ航空は、無料でロイヤリティプログラムに登録している限り、無料のインターネットを提供してるよ。ジェットブルーとデルタはViaSatを使ってる。私はほとんどデルタしか利用しないけど、ViaSatは私が乗った国内路線では全て利用できたよ。ATLから南西GAに行く小さいA900を除いて(50分のフライト)。その後は、T-MobileのGoGo地上サービスを使って、無料の無制限1時間アクセスを利用してる。

AIが書いたソフトウェアが原因かもしれないって考えてるんだけど、これが実際に嬉しい唯一の側面なんだ。企業で書かれるソフトウェアの大半はクソだし、誰かが適当に組み合わせてなんとか動かしたものだから、次のことに移らなきゃいけないんだよね。時間が限られている世界では、新機能が最優先になって、終わりのないバグのリストを潰す羽目になる。でも、良いソフトウェアのコストが、ほとんど機能しないソフトウェアのコストを圧倒するのは、その時だけなんだ。何かを磨くのにかかる追加コストが、最初に書くのにかかった時間よりもほんの少し長いだけなら、何度も見直してバグを取り除いて、ちゃんと仕上げる理由がないよね。今、AIは(そしてこれからも)人間が書く気にならないような、徹底的なテストケースを作成できるし、どんどん良くなっていく。もし企業が質の高いソフトウェアを、ゴミを出すのとほぼ同じ時間で出荷できるなら、インセンティブは急速に変わるだろう。少なくとも、そう願ってる。

Hacker Newsで議論の続きを見る