グーグル、Pythonコードを「Go」言語に変換する「Grumpy」を公開

Chris Duckett (ZDNET.com) 翻訳校正: 編集部

2017-01-06 12:03

 Googleは米国時間1月4日、標準的なPythonインタープリタの代替となるアプローチとして、Pythonコードを「Go」言語にトランスパイル(変換)する「Grumpy」というプロジェクトを発表した。Grumpyは、コンカレント(並行)ワークロードにおいて同社が抱えているパフォーマンス上の不満を解消するために生み出されたものだという。

 GrumpyはApacheライセンスの下で公開されている。PythonのソースコードをGoのソースコードに変換し、ネイティブコードとして実行できるようにコンパイルするGrumpyは、純粋なPythonコードが使用するランタイムとの互換性に軸足を置いて設計されている。

 GitHub上の同プロジェクトのページには「これは、Grumpyには仮想マシン(VM)がないことを意味している。コンパイルされたGoのソースコードは、Grumpyランタイムへの一連の呼び出しとなる。Grumpyランタイムとは、PythonのC言語APIと同様の目的を果たすGoのライブラリだ」と記されている。

 GoogleのYouTube担当エンジニアであるDylan Trotter氏は同社ブログへの投稿で、GrumpyプログラムはGoのパッケージをインポートできるとともに、参照カウント方式ではなく、Go内部でのガーベッジコレクションを利用できるが、設計上の選択により、C言語で記述されたPythonの既存拡張モジュールを利用できないと述べている。

  Trotter氏は同投稿で「Grumpyは、C言語で記述され、大量に存在しているPythonの拡張モジュールを使用できない。しかしこれによって、並列作業向けのスケーラビリティに優れたAPIやオブジェクト表現の設計に大きな柔軟性がもたらされる」と述べるとともに、「現実世界の多くのワークロードにおけるスケーラビリティという観点で、われわれはGrumpyがCPythonよりも優れた力を秘めていると考えている」と述べている。

 「これはまだアルファ版のソフトウェアだが、言語構造のほとんどと、核となる多くの組み込み型は期待通りに動作している。ただ、やるべきことはまだまだある。メソッドや属性の実装されていない組み込み型が数多くあり、組み込み関数も実装されておらず、標準ライブラリはないに等しい状態だ」(Trotter氏)

 Trotter氏によると、同プロジェクトを開始したのは、YouTube上でのPythonの実行状況を改善する必要性に迫られてのことだという。YouTubeのフロントエンドでは、コンカレントワークロードを効率的に取り扱うためにPython 2.7が使用されている。

 Goは、Googleが扱うような大規模ワークロードをプログラミングするために、Robert Griesemer氏とRob Pike氏、Ken Thompson氏によって2007年に生み出され、2009年11月に披露された言語だ。

この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ホワイトペーパー

新着

ランキング

  1. ビジネスアプリケーション

    生成 AI 「Gemini」活用メリット、職種別・役職別のプロンプトも一挙に紹介

  2. セキュリティ

    まずは“交渉術”を磨くこと!情報セキュリティ担当者の使命を果たすための必須事項とは

  3. セキュリティ

    迫るISMS新規格への移行期限--ISO/IEC27001改訂の意味と求められる対応策とは

  4. ビジネスアプリケーション

    急速に進むIT運用におけるAI・生成AIの活用--実態調査から見るユーザー企業の課題と将来展望

  5. セキュリティ

    マンガで分かる「クラウド型WAF」の特徴と仕組み、有効活用するポイントも解説

ZDNET Japan クイックポール

所属する組織のデータ活用状況はどの段階にありますか?

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]