Google が C++ の実験的な代替品である Carbon を発表

C++ の進化の遅さに不満を感じていた Google のエンジニアは、由緒あるが古い C++ の後継候補として、Carbon と呼ばれる新しい「実験的な」オープン ソース プログラミング言語を立ち上げました。

Microsoft が JavaScript を更新するために Typescript を作成し、Java の弱点を補うために Kotlin が作成されたように、Carbon は C++ の後継言語として機能する可能性があります。メモリの安全性とジェネリックとして。

Google エンジニアの Chandler Carruth は、今週、トロントで開催された CPP North C++ カンファレンスでこの言語を紹介しました。

ウィザー C++

パフォーマンスが重要なアプリケーションを構築するために長い間選択されてきた言語である C++ は、現代の開発者を妨げる多くの問題に悩まされている、と Carruth は GitHub ページで説明した。 C++ は何十年にもわたって技術的負債を蓄積しており、言語の前身である C の一部であった時代遅れのプラクティスの多くをもたらしています。C++ の維持者は、Linux やそのパッケージなどの広く使用されているプロジェクトをサポートし続けるために、下位互換性を優先しています。エコシステム管理、カルースが請求。

この言語の進化は、設計よりも標準化を重視する官僚的な委員会のプロセスによっても妨げられています。 これにより、新しい機能を追加することが難しくなる可能性があります。 C++ には、大部分が分離された開発プロセスがあり、選択委員会が重要な決定を行うウォーターフォール プロセスで、数年かかる場合があります。

「委員会の構造は、言語に積極的に貢献している専門家や人々の包括的で歓迎的なチームやコミュニティを構築するのではなく、国や企業の代表を確保するように設計されています」とCarruth氏は書いています. 「委員会と基準へのアクセスは制限されており、費用がかかります。発言するには出席が必要であり、決定は出席者のライブ投票によって行われます。」

Carruth は、よりオープンなコミュニティ主導の環境によって Carbon を構築したいと考えています。 プロジェクトは GitHub で維持され、Discord で議論されます。

Carbon は Google の内部プロジェクトとして開始されましたが、開発チームは最終的に、年末までに Google または他の単一企業からの貢献を 50% 未満に減らしたいと考えています。 彼らは最終的に、プロジェクトを独立したソフトウェア財団に引き渡し、その開発はボランティアによって主導されることを望んでいます。

箱の中は何ですか?

設計では、年末までにコア作業バージョン (「0.1」) をリリースしたいと考えています。 Carbon は、インスタンス化のたびにコードをチェックして再チェックする必要をなくす、ジェネリックス システムを含む最新のプログラミング原則に基づく基盤の上に構築されます。

C++ に欠けているもう 1 つの非常に必要な機能は、メモリの安全性です。 メモリ アクセスのバグは、セキュリティ エクスプロイトの最大の原因の 1 つです。 Carbon の設計者は、初期化されていない状態をより適切に追跡し、動的境界チェックをサポートする API とイディオムを設計し、包括的なデフォルト デバッグ ビルド モードを構築する方法を探します。 時間が経つにつれて、設計者は安全な Carbon サブセットを構築することを計画しています。

ドキュメントによると、言語は次をサポートします。

  • パフォーマンスが重要なソフトウェア
  • ソフトウェアと言語の進化
  • 読みやすく、理解しやすく、書きやすいコード
  • 実用的な安全性と試験メカニズム
  • 高速でスケーラブルな開発
  • 最新の OS プラットフォーム、ハードウェア アーキテクチャ、および環境
  • 既存の C++ コードとの相互運用性と移行。

開発チームは、組み込みのパッケージ マネージャーの作成にも着手します。これは、C++ に欠けているものです。

以下は、Carbon に変換された C++ コードの一部です。 まず、C++ コード:

以下は、Carbon で書かれた同じ関数です。

開発チームは、C++ コードを Carbon コードに移行するための変換ツールを作成する予定です。

なぜ錆びないのですか?

Rust は、メモリセーフ パフォーマンス アプリケーションのニーズに対応するために特別に構築されたもう 1 つの最近の言語です。 それではなぜ Rust を使わないのでしょうか? CPP North でのプレゼンテーションで、Carruth 氏は Rust を使用している人々に Rust を使い続けるようアドバイスしました。 Carbon は、Rust への変換が困難な C++ の大きなコードベースを既に持っている開発者向けです。 Carbon は特に Carruth が「後継言語」と呼んだもので、既存のエコシステム (この場合は C++) の上に構築されています。

「これは、C++ との相互運用性、および既存の C++ コードベースと開発者のための大規模な採用と移行を中心に設計されています」とドキュメントは説明しています。 これは、言語が C++ と同じくらい効率的で、シームレスに提供され、C++ との双方向の相互運用性を提供する必要があることを意味します。

グループ スケッチで作成。

Leave a Comment

Your email address will not be published. Required fields are marked *