米Googleは、Pythonで書かれたコードをGo言語に変換・実行できるGoランタイム「Grumpy」を、1月4日(現地時間)に同社のGitHubリポジトリで公開した。
Googleは、さまざまなサービスにおいてPythonを活用しており、YouTubeのフロントエンドはCPython上で動作している。一方で、CPythonのコンカレント処理に関する悩みも抱えていた。
「Grumpy」は、そういった問題を解決するために、Pythonのコードをコンカレント処理に優れたGo言語で実行すべく開発された実験的なランタイムで、CPythonとの互換性を高めつつ、将来的には既存のPython実装との置き換えを目指している。
「Grumpy」では、C拡張モジュールをあえてサポートしないことで、APIデザインとパラレル実行におけるオブジェクトの柔軟性を高めており、グローバルインタープリタロックを必要としないほか、Go言語のガベージコレクションをオブジェクトのライフタイム管理に活用できる。また、このような実装によって、CPythonよりも高いスケーラビリティを実現する可能性を秘めている。
さらに、「Grumpy」はインタプリタではなく、他のGo言語で書かれたプログラム同様コンパイルおよびリンクされているため、開発や実装における柔軟性は損なわれる反面、コンパイル時の最適化が可能であると同時に、PythonとGo言語の高い相互可用性を実現する。具体的には、PythonからGo言語で書かれたパッケージを、Pythonモジュールと同様に実行できる。
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です