新言語Goose「C++より16%速い」海外で議論、AI製READMEに賛否も

姉妹サイトの新着

他サイトの新着

GitHubで公開された実験的言語「Goose」が、C++より1.16倍、安全なRustより1.12倍高速でありながらメモリ安全だと主張し、Hacker Newsで話題になった。ヒープを持たずスタックだけで完結させる設計が売りだが、コメント欄では「ベンチマークが小規模で言語側がそれに合わせてチューニングされているのでは」という性能面への懐疑や、「16%速い」を「116%速い」と読み違えかねない表記への指摘が相次いだ。加えて、READMEの文章がAI(Claude)によって書かれたことが一目で分かる文体だったため、内容への評価とは別に文体そのものへの拒否反応も広がり、技術的な議論とAI文章への好き嫌いが同時進行する展開になった。

実験的言語Goose:C++より1.16倍、安全なRustより1.12倍速く、メモリ安全

出典: github.com / 元記事はこちら

3 海外の名無しさん 2026-09-18 02:01
Claudeの文章だらけだな。きっと中身はいいものなんだろう(何年か前にaardappelのLobsterでいろいろ触ったことがあるけど、あれはすごく整理されていて扱いやすかった)。でもClaudeの文章、頭が溶けそうになる。申し訳ないけど自分はナシだわ。
18 海外の名無しさん 2026-09-18 02:12
>>3 うん、下の方を見ればAI製なのは一目瞭然。でもこれは、実現できずにいたいいアイデアを持つ人が、実際に形にできてしまう面白いケースだと思う。自分もClaude節は嫌いだけど、サンプルコードを見ただけで言語の雰囲気は十分つかめた。
5 海外の名無しさん 2026-09-18 01:57
C++より速いと聞くと、いつも目を引かれる。メモリ安全性と両立させている『魔法』の正体が気になる。
22 海外の名無しさん 2026-09-18 02:04
>>5 大抵の場合、厳密エイリアシング(strict aliasing)だね。
6 海外の名無しさん 2026-09-18 02:31
面白い試みだ。ただベンチマークが小規模すぎるし、Gooseはそれに合わせてチューニングされていそう。だから自分としては『GooseはCやRustと張り合える性能を持つ』くらいに読んでおいて、メモリ安全性についてはRust並みという言葉をひとまず信じておく、というスタンスかな。
7 海外の名無しさん 2026-09-18 02:20
言語・プロトコル名がかぶってて不運だな。こういうのは要注意(Schneider Electricの製品名にも同名のものがあるらしい)。
8 海外の名無しさん 2026-09-18 02:18
このスレでフラグ付けされて非表示になってるコメントがあるんだけど。この文体がどうやって損失関数を最小化したのか、あるいはRLHFで一番評価されたのか、本気で不思議に思う。なのに毎回のようにここまで嫌われてフラグを立てられまくるのは、Redditと似た現象だ。あえて表現するなら『歯切れが良くて』『無駄がなく情報密度が高い』文体。もちろん自分も好きじゃないけど。
23 海外の名無しさん 2026-09-18 02:49
>>8 自分の見立てでは、文体そのものというより『連想』の問題。みんなAI丸出しの駄文にうんざりしていて、それっぽい匂いがするものには何でも悪く反応してしまう。要約自体はそれなりに有益な内容だったと思うけどね。
9 海外の名無しさん 2026-09-18 02:12
いいローンチだ!自分もまったく同じ発想の言語を作ろうと考えてた。C++より安全でRustより速くて、さらに3つ目の条件『AI向けに最適化』というやつ。それを代わりに実現してくれたわけだ、ありがたい!あとはAI言語最適化の部分だけ足りないな…
24 海外の名無しさん 2026-09-18 02:26
>>9 AI向け最適化っていうのは配布物に含めることでしょ。つまり…見た目をPythonかJSに寄せるってこと?
10 海外の名無しさん 2026-09-18 02:32
何も『ムーブ』しないなら、伸長する配列は作れないってこと?
11 海外の名無しさん 2026-09-18 02:18
全部をスタックでやる、CHICKEN(Cheney on the MTA)の凝った進化形だと見ることもできそう。
12 海外の名無しさん 2026-09-18 01:35
自分も似たアイデアを研究中で、コンパイラが結果の構造を修正できるならムーブも許すという設計だけど、たぶん長いこと小さなサイドプロジェクトのままだろうな。
13 海外の名無しさん 2026-09-18 02:08
『全部スタックでヒープなし』って、Javaの Project Valhalla が目指してる方向性と近くない?それとも自分の勘違い???
14 海外の名無しさん 2026-09-18 02:01
毎回あやふやになるんだけど、これは『116%速い』なのか『16%速い』なのか?ベンチマークを見る限り16%っぽいけど。
26 海外の名無しさん 2026-09-18 02:05
>>14 定番の話題だね(リンク先参照)。『1.16倍の速さ』とか『1.16倍のスループット』みたいな言い方にすべきなんだろうな。
27 海外の名無しさん 2026-09-18 02:04
>>14 116%速いなら2倍ってことになって物理法則を破ってしまう。16%なら、ヒープ確保をしないことで実現可能だろう。それがこの言語の一番の売りだと思う。
15 海外の名無しさん 2026-09-18 01:22
Gooseはメモリ管理について具体的に何を変えているの?
28 海外の名無しさん 2026-09-18 02:05
>>15 自分の理解が正しければ、コンパイラが関数ごと(あるいはグローバルに)N個のバンプアロケータを作る。このNは、たぶん生存区間解析(liveness)か何かで決まっているんだと思う。
29 海外の名無しさん 2026-09-18 01:41
>>15 かなり大きく変えている。タイトルはもう少し編集した方がいいかもね。この言語にはヒープが無くてスタックメモリのみ。だから解放処理は呼び出しスタックフレームから戻ることだけで完結する。
17 海外の名無しさん 2026-09-18 02:59
>>2 うん、Claudeの文体は本当に嫌い。READMEはもっと削った方がいい。ただ、こういう新しいツールを使ったからこそ、これまで眠っていたアイデアを世に出せた、というのがポイントなんだろうな。たぶんそれが無かったら実現しなかった話だと思う。
20 海外の名無しさん 2026-09-18 01:53
>>4 継続渡しスタイル(CPS)にリファクタリングすれば、全部書けるはずだよ。
33 海外の名無しさん 2026-09-18 02:15
>>20 だったらいっそ大昔のやり方に戻って、メモリを100%巨大な事前確保ブロックに突っ込んで、スタックローカル変数の代わりにそのブロックを使えばいい。実行時の確保コストはゼロ、巨大アリーナでベンチマークを『チート』できるってわけだ。
34 海外の名無しさん 2026-09-18 02:21
>>20 CPSは中間表現であって、人間が我慢して書くようなものじゃないだろう。

他サイトの新着

21 海外の名無しさん 2026-09-18 01:50
>>4 具体的にどういうものがこのモデルにうまく落とし込めないと思う?
35 海外の名無しさん 2026-09-18 01:53
>>21 元の投稿者じゃないけど、クロージャとかがそうじゃないかな?例えばイベントに反応するコールバックを使うNode.js的なフレームワークを作りたいとする。そのコールバックは周囲の変数をキャプチャするクロージャになりがちで、そうなるとキャプチャされた変数は単純にはスタック確保できなくなる。とはいえRustのムーブと似たようなやり方で対処できるかもしれない。
39 海外の名無しさん 2026-09-18 02:46
>>35 いや、Microsoft Bandで似たようなことをやってたよ(詳しくは自分のブログに書いた)。要するに、キャプチャしたいものをあらかじめ全部構造体にプリアロケートしておく必要があった、という話。
40 海外の名無しさん 2026-09-18 01:55
>>35 自分のコンテキスト内でイベントハンドラをあらかじめ定義しておいて、『フレームワークに入る』関数を呼び出す際にそのハンドラを引数として渡せばいい。これが継続渡しスタイルというやつ。
30 海外の名無しさん 2026-09-18 03:01
>>16 独自性があって『新しいアイデア』と言えるものにするには、ある程度そうする必要があるんだろうな。でないと新しい言語を作る意味がそもそも無い。
32 海外の名無しさん 2026-09-18 02:21
>>18 Claudeの文体を見抜く自分の能力を自慢しているように見えたら困るんだけど(今回それを証明できるほどの話でもないし)、一応READMEはその部分に気づく程度にはざっと読んだよ。
36 海外の名無しさん 2026-09-18 02:46
>>22 単なる厳密エイリアシングだけなら、あらゆるケースでC++と同じ速さにはなり得ない。だからRustのような『抜け道』を用意して安全性の主張を『ほぼ本当』程度に留めるか、一部のケースで性能が落ちるのを受け入れて速度の主張を『ほぼ本当』にするか、どちらかしかないはずだ。
37 海外の名無しさん 2026-09-18 02:05
>>29 スタックサイズはどれくらい?大きなデータだとすぐ上限を突破して、マルチスレッド環境だと隣のスタックまで壊してしまうことがよくある。オーバーフローを検知するためのメモリバリアは使われているの?
41 海外の名無しさん 2026-09-18 02:16
>>37 ここで言う『スタック』は、`sp`レジスタそのものというより、データ構造としての一般的な意味のスタックなんじゃないかな。mmapをうまく使えば物理的な上限まで任意サイズにできそうな気もする。それでどうやって実用的なプログラムを書けるのか、自分もまだよく分かってないけど、面白そうではある。
42 海外の名無しさん 2026-09-18 02:23
>>40 その通りではあるけど、もっと正確に言えば余帰納的なステップに対する除去子(eliminator)だね。

この話題の背景と論点

Gooseの開発者はaardappel氏で、以前に開発した言語「Lobster」の名前もスレ中で言及されている。ヒープを使わずスタックのみでメモリを扱う設計は、CやRustにおけるアリーナ確保、あるいはJavaのProject Valhallaが目指す値型最適化と近い発想で、GC無しでも安全性を確保しやすい半面、クロージャのようにライフタイムを跨いで変数を保持する処理とは相性が悪いという弱点がスレ内で指摘されている。また「1.16倍速い」を「116%速い」と誤読しやすい表記は、性能ベンチマークの報告でたびたび起きる典型的な混乱で、今回もその指摘が複数付いた。もう一点、コメント36が挙げた「厳密エイリアシングだけで安全性と性能を両立させるのは原理的に難しく、どこかで例外(エスケープハッチ)を認めているはず」という疑問には、スレ内で明確な回答は出ておらず、Goose側のドキュメントを確認しないと判断できない部分として残っている。

※本記事は5ch(Hacker News)スレッド「Goose:experimental lang 1.16x faster than C++ and 1.12x than safe Rust, mem safe」より抜粋・要約して構成しています。

この記事のリアクション

他サイトの新着

まだコメントはありません。

コメントする

誹謗中傷・個人を特定する書き込みは削除対象です。投稿は承認後に表示されます。

相互リンクサイト新着記事