GoogleのRust規約公開で「C++はまだ現役か」論争
姉妹サイトの新着
Googleが社内で使っているRustのスタイルガイドを公開したところ、海外の技術系掲示板Hacker Newsで反応が広がった。ガイドの細かいルールへの感想も出たが、話題は次第に「CやC++は今でも新しいプロジェクトで書かれているのか」という論争に移っていった。防衛関連企業や金融、ゲーム業界ではC++の求人が今も多いという指摘が出る一方、CloudflareのようにRustへ全面移行した企業も挙げられ、意見が分かれた。さらにAIエージェントにコードを書かせる開発スタイルを巡る対立も起きている。
GoogleのRustスタイルガイド
出典: google.github.io / 元記事はこちら
GoogleはなんでMicro$oft製品のGitHubを使ってるんだ?
もう今更、新しくCやC++でコードを書いてる人なんているのか?大企業でさえ、もう終わりかけの言語に見える。
>>8 C/C++は今でもHPC(高性能計算)分野では現役だよ。メモリ管理を細かく最適化したい場面では必要になる。
>>8 防衛産業ではC++はまだ元気にやってるよ。うちの近くの大手軍事企業はC++の求人をたくさん出してるけど、Rustの求人は一つも見たことがない。
>>8 大事な仕事をしてる大人はCを書くものだ
この内容の大半はRustのエコシステム全体で既に標準的なものだけど、一つにまとまっているのはすごく助かる。
boolよりenumを使うルールは、一人で開発する時でも守りたい。証明書の検証処理でフラグが反転してるミスを一度救われたことがある。
>>10 これは「物事の解釈を狭める」という一般原則の一例だね。true/falseで表せるものは無限にあるけど、Rustのenumバリアントとして表現できるのはたった一つに絞られる。
コピペして次のRustプロジェクトのAGENTS.mdに貼り付けるわ(笑)
スタイルをどれだけ統一しても、この言語の酷さは変わらない
>>15 良い感情は、出力されるエンジニアリング品質への自信から来るものだよ(最初のハードルを越えればね。そこはAIが大いに助けてくれる)。
こういうのを見ると、Gofmtのありがたさを改めて実感する
>>2 Googleのことだから、全部が一つの巨大なモノレポに入ってBlazeに投げられると思う。コンパイル単位がクレートなら、クレートをできるだけ小さくしたがるのも理解できる。
>>2 コンパイル速度のため?
>>3 このスタイルはProtocol Buffersに合わせたもので、それはC++でのprotoのスタイルに合わせたものだ。
>>4 正直、どちらの方向であれ一律のルールにするのは良くないと思う。修飾した方が分かりやすい場合もあるし、しない方が分かりやすい場合もある。
>>4 でも下の方には、io::Errorのような「あいまいになるケース」ではそのまま使うべきと書かれている。具体的にはregex::Regexではなく単にRegexと書かない、という話で、こちらの方が妥当だと思う。
>>8 全然そんなことはない。RustがC++のコードをシームレスに読み込めるようになるまでは、当分C++で書かれるコードの方がRustより多いままだろう。HPC、金融、AI、ゲーム、データベース、ハードウェア、どれも今もC++で書かれ続けている。
>>8 残念ながら、うちではそうだよ。リスクを極端に避ける会社は、知っている悪魔(=使い慣れた技術)にしがみつきたがる。自分たちが何を犠牲にしているか分かっていない。
>>8 今日、2007年のTODOコメントが残っているC++のコードベースを見たけど、それは今も年々活発に進化し続けている。信じてくれ、確立されたプロジェクトではC++はずっと残り続ける。
>>8 うちの大企業では、新規のC++開発がまだたくさんある。
>>8 ゲーム、それにLLVMやGCC、CUDA、SYCLなどに依存するものは全部。ついでに言うと、RustのコンパイラバックエンドもLLVMに依存してるし、将来的にはGCCにも依存する。
>>8 Cloudflareは完全にRustに全面移行していて、デフォルトでどこでも使われている。残っていたC++は積極的に取り壊されているところだ。
>>8 最近は証明支援系ツールから、検証済みのCコードを大量に抽出する作業をしている。
>>17 「俺は今やAIエージェント軍団の将軍だ」か。その軍団で何を作ったんだ?クラスのみんなに教えてくれよ。
>>47 俺の予想では、大量の熱と、ちょっとの水蒸気…
>>47 なんで教える必要がある?どう甘く見ても、クラスの連中が『それ実はちょっと良いじゃん、LLMは使えないって考えを変えるわ』なんて言う可能性はゼロで、『お前のプロジェクトはゴミだ、恥を知れ』って言う可能性が100%なんだから。
>>17 生成されたコードを一度も見返さないってことを言ってるのか?
>>52 AI信者は、コードを一切見なくても良いソフトウェアが作れると思っている。もちろん間違っているけど、彼らは聞く耳を持たないし、自分たちの仕事の粗さが隠しきれなくなるまで、おそらく一生聞く耳を持たないだろう。
他サイトの新着
>>35 言いたくないけど、Rustも同じメモリ管理の最適化を全部できるんだよ。
>>57 できるのはできるけど、メモリレイアウトを扱うならC/C++の方がずっと扱いやすい。
>>37 そのコードベースって、動的メモリ確保(他の機能と共に)が禁止されているタイプのものか知ってる?
>>58 一部はそうだと思う。求人を見る限り、多くはいろいろな種類の物理シミュレーションのようで、(自分の経験では)ヒープへのメモリ確保は特に気にせず行われている。いや、気にはしてるんだけど、その関心はパフォーマンスの方に向いている。
>>56 それなら、たぶんそれらはsetterじゃなくてbuilderだね。既存のオブジェクトを変更するのか、それとも新しく構築された(あるいは構築中の)オブジェクトを変更するのか?
>>66 いや、setterだよ。インスタンス化された後に要素を変更する。主に初期構築の一部としてだけど、イベントのクロージャの中でも使う。内部的には、フィールドが内部可変になっているstructだ。
>>62 お前が『落ちこぼれ』と呼んでる連中が、実際に人々が使っていて、現実世界を動かしているソフトウェアを100%書いてきたんだぞ。だから切り捨てない方がいいんじゃないか。
>>72 Linusやジェフ・ディーン、DHH、ジョン・カーマック、グイド・ヴァンロッサムとは違う人たちが?『人々が実際に使い、現実世界を動かしているソフトウェアを100%書いている』のは一体誰のことを言っているのか、本当に知りたいよ。
>>78 Rustは思っているより多くの場所で使われているよ。例の『おばあちゃん』はWindowsのカーネルを使ってる?Androidは?Firefoxは?Chromeは?
>>80 ほとんど使われていないマイナーなモジュールの1%がRustで書かれているからといって、それらが『Rustで書かれている』と主張できるわけじゃない。Firefoxでさえ、Mozillaがその言語を設計したにもかかわらずRustの割合はたった10%で、Rustで新しいブラウザエンジンを書くプロジェクトも彼らは放棄している。
>>80 それは疑わしいな。Rust開発者が目立とうと競争する相手は、クロスフィットやヴィーガンぐらいのものだ。
この話題の背景と論点
GoogleのRustスタイルガイドは、同社内でRustの採用が広がっていることを背景に公開されたものだが、スレッドの中心はガイドの内容よりも「CやC++はもう終わった言語なのか」という対立に移っていった。防衛産業やHPC、金融、ゲーム業界では今もC++の求人が多いという指摘と、CloudflareのようにRustへ全面移行した企業の例が対比され、意見は最後まで割れたままだった。また、AIエージェントにコードを書かせる開発手法への評価でも賛否が分かれており、Rustの採用率の低さが言語としての優劣を直接示すものではない点は、スレ内でも整理されずに終わっている。
※本記事は海外掲示板 Hacker News のスレッド「Google’s Rust Style Guide」から抜粋し、編集部で日本語に意訳したものです。訳文の責任は当サイトにあります。
この記事のリアクション






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