C++の後継目指すプログラミング言語「Carbon Language」、Googleの技術者が実験的公開。C++は技術的負債で改良が困難と

2022年7月21日

Googleの技術者Chandler Carruth氏らは、C++の後継を目指す実験的なプログラミング言語として「Carbon Language」(以下、Carbon)をGitHubで公開しましたChandler Carruth氏のツイート)。

fig

GitHubのドキュメントでは、C++が性能を重視するソフトウェア開発において主流のプログラミング言語である一方、言語そのものにおいて数十年にわたる技術的負債が蓄積されていることなどにより段階的に改良していくことが極めて困難になっていると指摘。

一方で、GoやSwift、Kotlin、Rustを始めとする優れた開発者体験を提供する多数のモダンな言語は、C++の代わりに採用する、あるいはC++の開発から移行するには、プログラミング言語の違いや性能のオーバーヘッドなど障壁が多すぎるといった課題があるとも指摘しています。

そこでC++の段階的な改善ではなく、C++との相互運用性を重視し既存のC++コードベースや開発者の大規模な導入や移行を想定した上で、最新のジェネリクスシステム、モジュール式のコード構成、一貫したシンプルな構文といった堅実な言語基盤から再設計したC++の後継言語として開発しているのがCarbonとのことです。

Carruth氏らはまた、次のような例を示しています。

JavaScript → TypeScript
Java → Kotlin
C++ → Carbon

右辺にあるTypeScriptやKotlinはいずれも、左辺にあるJavaScriptやJavaの直接の後継というより進化形 のように見なされています。CarbonもC++に対する同様の位置づけであることを示したいのでしょう。

Carbonの要件として次のようなことが想定されているとのこと。

  • C++に匹敵するパフォーマンス
  • C++とのシームレスな双方向の相互運用性。既存のC++スタックのどのライブラリでも、他を移植することなくCarbonを採用することができること
  • C++の開発者にとって、適度な親しみやすさと穏やかな学習曲線
  • 既存のソフトウェアの設計やアーキテクチャに対応する表現力
  • 大規模な移行が可能で、慣用的な C++ コードに対してはある程度のソース間変換を行える

下記がサンプルとして示されたC++とCarbonの比較コード。

C++のサンプルコード。

fig

同じ内容をCarbonで記述したサンプルコード。

fig

Carbonは現在、実験的なプロジェクトとして開発が進められており、後継言語としての基準を満たせるか、C++業界やコミュニティの中で関心を集めることができるかどうかを確認しつつ、C++コミュニティからより幅広いフィードバックと参加を得ること、バージョン0.1としての設計を完成させることなどに注力しているとのことです。

あわせて読みたい




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本