DUICUO

Carbon は C++ の後継者となるか? Google が新しいプログラミング言語をオープンソース化。

Carbon は Google が社内で開発した最新のプログラミング言語で、C++ の実験的な後継として最近発表されました。

Googleは長年にわたり、複数のプログラミング言語を開発してきました。その中には、他よりも人気が高く、独自の特徴を持つものもあります。例えば、Golang(略してGo)は、サーバーや分散システムの開発効率を向上させるために開発され、広く採用されています。一方、Dartプログラミング言語は元々JavaScriptの代替として開発されましたが、Flutterのリリースによってようやく主流となりました。

今月19日、トロントで開催されたCpp Northカンファレンスにおいて、コナー・フクストラ氏はGoogle社員のチャンドラー・カルース氏による新しいプログラミング言語「Carbon」のビジョンを共有しました。その背景を説明すると、カルース氏は…
これは、今日最も人気のあるプログラミング言語の多くに後継言語が存在することを示しています。これにより、開発者は生産性を迅速に向上させ、最新の言語設計を活用できます。Android開発者はKotlinがJavaの後継言語であることを知っています。iOS開発者はSwiftがObjective-Cの後継言語であることを知っています。MicrosoftのTypeScriptはJavaScriptを徹底的に強化しながらも、快適な操作性とJavaScriptへの「コンパイル」を可能にしています。Googleで広く使用されているC++も、オリジナルのCプログラミング言語の後継言語です。

Mozillaプロジェクトとして始まり、多くの支持を集めるプロジェクトへと進化したRustをC++の後継言語と考える人もいるかもしれないが、Carruth氏はそのような見方が正しいかどうか疑問視している。Rustは確かに新しいプロジェクトを始めるのに最適な言語だが、JavaやKotlinとは異なり、「双方向の相互運用性」が欠如しているため、安定した移行が困難だ。

Rustが今あなたにとって便利なら、ぜひ使ってみてください。しかし、C++エコシステムをRustに移行するのは困難です。

そのため、CarbonはRustと多くの共通点を持つ一方で、開発者が「パフォーマンスクリティカルなソフトウェア」を開発するのを支援するなど、既存のC++コードとの完全な相互運用性も目指しています。さらに、必要に応じてC++からCarbonへの移行を可能な限り容易にすることも目標としています。C++開発者がCarbonをコードベースに導入することを検討する理由について、Carruth氏はこの言語の多くの特徴を説明しました。

  • 導入キーワードと基本構文
  • 関数の入力パラメータは読み取り専用値です
  • ポインタは間接的なアクセスとバリエーションを提供する
  • 式を使用して型に名前を付ける
  • パッケージはルート名前空間にあります
  • パッケージ経由でAPIをインポートする
  • 明示的なオブジェクト パラメータを使用してメソッドを宣言します。
  • 単一継承。デフォルトでは final クラスが使用されます。
  • 強力な定義チェック済みのジェネリック
  • 型は明示的にインターフェースを実装できる

Carbonチームは、言語自体の特性だけでなく、Carbonの将来を形作る開発プロセスにも注力しています。プロジェクトのコードはGitHubで公開されており、プルリクエストを受け付けています。また、Carbonの文化は、社員と個人の両方にとってオープンで包括的なものであるとされています。

言い換えれば、Carbonプログラミング言語のある側面には、Googleの関与が明確に示されていません。本日のプレゼンテーションはGoogle社員によって共有され、Carbonの現在のプロジェクトリーダーは主に(ただし全員ではない)Google社員ですが、CarbonがGoogleのプロジェクトであることは他に言及されていません。

これは実は意図的なものでした。CarbonはGoogle社内で始まったものの、チームは将来の成功のためには、CarbonがGoogle自身の目的だけでなく「独立したコミュニティ主導のプロジェクト」である必要があることを理解し、オンラインで共有していたからです。同じコメントの中で、Carruth氏はCarbonは現在実験段階にあるものの、いくつかの企業が初期段階から関心を示していることを強調しました。

Carbon を使い始めてみたい方は、ソースコードをダウンロードしてご自身のデバイスで試してみることができます。また、無料の Compiler Explorer ウェブアプリケーションとの統合により、ブラウザで直接 Carbon プログラミング言語を体験することもできます。