プログラミング · 1 min read · Oct 20, 2025
Googleのオープンソース「Grumpy」を使ってPythonコードをGoプログラムに変換して実行する

GoogleがPythonをGoに変換して実行するためのGrumpyコードをオープンソース化
Googleは水曜日にGrumpyというオープンソースプロジェクトを発表しました。これはPythonからGoへのソースコードトランスコンパイラおよびランタイムで、CPython 2.7のほぼドロップイン置き換えを意図しています。これはGoにとっての創造的なアプリケーションであり、Pythonの使用ケースの変革でもあります。
同社のYouTubeのフロントエンドサーバーとそのYouTube APIは主にPythonで書かれており、他の実装(Jython、PyPy、IronPython)とは異なり、CPython 2.7で実行されています。このプロジェクトは、CPython 2.7でフロントエンドを実行しているYouTubeでPythonの実行を改善する必要から始まりました。
「Grumpyは既存のPython C拡張の豊富さを活用できませんが、並行ワークロードにスケールするAPIとオブジェクト表現を設計するための柔軟性を多く提供してくれました」と、GoogleのYouTubeエンジニアリングのスタッフソフトウェアエンジニアであるDylan Trotterはブログ投稿で述べています。「Grumpyは多くの実世界のワークロードに対してCPythonよりも優雅にスケールする可能性があると考えています。」
Trotterによれば、他のPythonランタイムは満足のいくトレードオフを導入せずに並行性の問題を解決できませんでした。
「そこで私たちは自分たちにクレイジーな質問をしました:『リアルタイムサービスに最適化された代替ランタイムを実装したらどうなるだろう?』」とTrotterは言いました。「一度その穴に入ってしまうと、Goは私たちの使用ケース(例:軽量スレッド)とよく一致するため、明らかなプラットフォームの選択肢のように思えました。私たちは一級の言語相互運用性を望んでおり、Goの強力なランタイム型反射システムはこれを簡単にしました。GoでのPythonは非常に自然に感じられ、こうしてGrumpyが誕生しました。
「GrumpyはGoのための実験的なPythonランタイムです。PythonコードをGoプログラムに変換し、その「トランスパイルされた」プログラムはGoランタイム内でシームレスに実行されます。私たちは大規模な既存のPythonコードベースをサポートする必要があったため、CPythonとの高い互換性を持つことが重要でした(特異性を含めて)。Grumpyは純粋なPythonプロジェクトのためのドロップイン置き換えランタイムになることを目指しています」とTrotterは書いています。
しかし、TrotterはGrumpyがオープンソースとして新たにリリースされたにもかかわらず、アルファグレードのソフトウェアであることを警告しています。
「ほとんどの言語構造と多くのコア組み込み型は期待通りに機能しますが、まだ埋めるべき穴があります — 多くの組み込み型がメソッドや属性を欠いており、組み込み関数が欠如しており、標準ライブラリは事実上空です」と彼は述べました。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。