編集部からのお知らせ
新着・電子インボイスの記事まとめ
記事まとめDL:オンライン確認「eKYC」

グーグル、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 記事を毎朝メールでまとめ読み(登録無料)

特集

CIO

モバイル

セキュリティ

スペシャル

ホワイトペーパー

新着

ランキング

  1. 運用管理

    マンガでわかる「ルール駆動開発」レガシーモダナイズを成功させる開発手法を基礎から理解する

  2. 経営

    5分でわかる、レポート作成の心得!成果至上主義のせっかちな上司も納得のレポートとは

  3. セキュリティ

    APIエコシステムを狙うサイバー攻撃が急増、Webアプリにおける最新のAPIセキュリティ対策とは?

  4. セキュリティ

    クラウドやコンテナ利用が増える中、世界の企業が利用するAPI経由の安全なアプリ構築手法とは?

  5. マーケティング

    ウェビナーによる営業活動が本格化、顧客接点が増加する一方で見えてきたハードルと解決策とは?

NEWSLETTERS

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

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

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