EXPLORINEER
ja

Hacker News

Goose プログラミング言語

ソフトウェア初登場 146ポイントコメント52件


Goose は、ヒープ(動的メモリの置き場所)もゴミ収集機能も持たないプログラミング言語です。このリポジトリのベンチマークでは、C++ や Rust より速く、使うメモリも少なかったと報告されています。

何が起きたのか

Goose という新しいプログラミング言語が紹介されました。C 言語や Rust に似た書き方ですが、ヒープを使いません。データは、コンパイラが管理する「データスタック」と呼ばれる領域に直接置かれます。メモリは、そのデータが属する範囲(スコープ)が終わると解放されます。

主な数字

  • 16 個のベンチマークで、Goose は一般的な C++ の 3.3 倍速いと報告されています。
  • 手で最適化した C++ に対しては 1.16 倍、最も良い安全な Rust に対しては 1.12 倍の速さです。
  • 使用メモリは、C++ の 1.9 倍少なく、手で最適化した C++ の 1.3 倍少なく、Rust の 1.2 倍少ないとされています。
  • 例として、C++ で 160 バイトの確保が必要なレコードは、Goose では 29 バイトで、確保も不要です。

やさしい背景知識

多くの言語では、メモリを使い終わったかどうかを、ゴミ収集機能や参照カウントで確認します。Goose は、コンパイラが参照の元を調べ、持ち主より長生きする参照を拒否することで安全性を保ちます。プログラマーがライフタイム(参照の有効期間)を書く必要はありません。

なぜ大切なのか

速さと安全性を両立させようとする言語は、近年注目されています。Goose は、メモリの扱い方を根本から変えることで、その両方を狙っています。ただし、これらの数字はそのリポジトリ内のベンチマークによるものです。実際の仕事で同じ結果が出るかは、別に確かめる必要があります。

今後の注目点

  • 実際のプロジェクトで、ベンチマークと同じ速さやメモリ節約が出るか。
  • チュートリアルやサンプルプログラムを使って、多くの人が試し始めるか。
  • C 言語のコンパイラがあればどこでも動く点が、実用の広がりにつながるか。

用語解説

Goose
ヒープを使わず、安全にメモリを扱うことをめざして作られたプログラミング言語です。
ヒープ
プログラムが実行中に必要なだけメモリを取り出して使う場所のことです。
データスタック
データを順番に積み上げて置く、メモリの領域のことです。
ベンチマーク
複数の言語やプログラムの速さや使用量を比べるための、決まった試験のことです。
ライフタイム
参照が有効でいられる期間のことです。Goose では書かなくても安全性が保たれます。

出典: Hacker Newsで原文を読む ↗

この記事は原文をもとにAIがやさしい言葉で書き直した解説です。事実関係は原文をご確認ください。