背景
2011年は、ラムダ式、スマートポインタ、より効率的な標準ライブラリなど、言語を近代化する多数の機能を導入したC++11のリリースにより、C++のルネサンスを記録しました。しかし10年後、Google、Microsoft、Amazon、Apple、Metaなどの大手テクノロジー企業が、C++からの移行プロセスを開始しています。この変化は、メモリ安全性への懸念の高まりと、システムプログラミングの変化する状況を浮き彫りにしています。
つい最近、別の大手企業がC++離れの動きに加わりました。Appleです。Appleは C++をSwiftに置き換えることを推奨。
問題はC++自体ではなく、それを使う開発者にあると主張することもできます。しかし、現実には大手企業がC++から離れつつあります。
ビッグテックとC++からの移行
Amazon
Amazonは、多くの重要なシステムでC++の代替としてRustを積極的に追求しています。Rustのメモリ安全性と並行機能を活用して、インフラストラクチャの信頼性とセキュリティを向上させることに重点を置いています。
Amazonは最近、 C++コードのRustへの変換を自動化する取り組みにより、Niranjan Balasubramanian教授とMichalis Polychronakis教授を表彰しました。
Microsoft
Microsoftは、特に安全性とパフォーマンスが最重要視されるシステムで、C++からRustへの移行プロセスを開始しています。Azureクラウドプラットフォームやさまざまな内部ツールなどのプロジェクトが、メモリ関連の脆弱性を防ぐためにRustの機能を探っています。
Microsoftは、 Rustプログラミング言語の採用を積極的に拡大しています。
Googleも、特定のアプリケーションでC++をRustに置き換える初期段階にあります。この決定は、メモリ安全性を強化し、手動メモリ管理から生じ得るセキュリティ欠陥のリスクを削減する必要性に由来しています。
Googleは、 C++からRustへの移行に多額の投資をしています。。
Apple
Appleの戦略は、C++からSwiftへの移行を含みます。Swiftはモダンで安全かつ高性能な環境を提供し、以前C++に依存していたAppleの多くのアプリケーションやサービスに適しています。
最近、Appleは C++をSwiftに置き換えることを推奨しました。。
Meta
Meta(旧Facebook)は、バックエンドシステムのC++の代替としてRustを検討しています。Rustの安全な並行処理とメモリ管理機能を採用することで、インフラストラクチャのセキュリティと堅牢性の向上に焦点を当てています。
Metaは、 C++からRustへの移行プロセスを開始しています。。
メモリ安全性の議論
歴史的経緯
長年、C++コミュニティと標準委員会は、パフォーマンス重視のアプリケーションでの言語の広範な使用にもかかわらず、メモリ安全性を優先してきませんでした。この重点の欠如が、数多くの注目される脆弱性やセキュリティ侵害に寄与してきました。
業界の対応
テクノロジー業界のC++離れは、部分的にはこれらのメモリ安全性の懸念への対応です。企業は、熟練したC++開発者でさえ、重大なメモリの問題を不注意にコードに持ち込み得ることを認識しています。これが、コンパイル時のメモリ安全性保証を提供するRustなどの言語の採用を促進しました。
課題と抵抗
より安全な言語の明確な利点にもかかわらず、C++コミュニティ内には抵抗があります。適切なコーディング慣行と厳格なテストでメモリの問題を軽減できると主張する人もおり、他言語への移行を不要と見なしています。しかし、業界のトレンドは、組み込みの安全メカニズムの必要性がますます優先事項として認識されていることを示唆しています。
まだ決定的な解決策はない
C++からの移行は複雑で段階的です。この移行は始まっていますが、膨大なC++コードベースとC++で書かれた多くのシステムの重要性を考えると、完全な移行には数年、あるいは数十年かかる可能性があります。このプロセスには、コードの書き直しだけでなく、新しい言語環境での互換性、パフォーマンス、信頼性の確保も含まれます。
その間に、C++委員会は、移行プロセスが本格化する前に、この重大な安全性の問題に対する決定的な解決策を見つけなければなりません。
結論
テクノロジー大手がC++をRustやSwiftのようなより安全な代替言語に置き換える動きは、ソフトウェア業界の優先事項の大きな変化を浮き彫りにしています。メモリ安全性は重要な関心事となり、組み込みの安全機能を提供する言語が支持を集めています。移行が進行中である一方で、C++からの完全な移行にどれくらいかかるのか、そしてソフトウェア開発への長期的な影響がどうなるのかは、まだわかりません。
