Talk Submission
If you are interested in attending this talk at PyCon JP 2016, please use the social media share buttons below. We will consider the popularity of the proposals when making our selection.
talk
Go で挑戦する Python モジュール開発(ja)
Speakers
Tetsuya Morimoto
Audience level:
Intermediate
Category:
Other
Description
Python の C 拡張モジュールを開発する手段はいくつかありますが、その手段の1つとして Go で開発できないかといった点に着目します。とはいえ、C 拡張モジュールを開発するために Go を学ぶというのは現実的ではないため、既に Python と Go の両方に慣れていて、C 拡張モジュールを作ってみたいと思ったとき、どうすれば実現できるかという技術的興味を中心に考察してみます。
Objectives
Python の C 拡張モジュールの概要と C 拡張モジュールを開発する手段としてどういったものがあるかを確認します。そして、Go 言語から C 言語とやり取りするための仕組みや機能についてもみていきます。
Abstract
Python では昔から C 拡張モジュールを開発する仕組みがあり、主にはシステムプログラミングやパフォーマンスが要求される分野で C 拡張モジュールを使ったライブラリ/パッケージが数多く提供されています。直接 C 言語を書かなくても Cython のように Python ベースの言語で書いたコードをコンパイルして C 言語のコードを生成するといった方法もあります。
一方 Go 1.5 から共有ライブラリ (.so) を生成できるようになりました。これにより、Go 言語で開発したライブラリを C 言語から呼び出せます。ここで Go で開発したライブラリを C 経由で Python から呼び出す、もしくは Python オブジェクトを C 経由で Go のライブラリ関数からアクセスするといったことが理論上はできそうにみえます。
既に Python と Go に慣れ親しんだ開発者が C 拡張モジュールを開発するために Cython を学習しなくても Go で C 拡張モジュールを開発できれば嬉しいかもしれません。そして、そのために要求される知識や学習コストは現実的なのかどうか。またそれぞれの言語の処理系にも触れながら可能性を探ってみようと思います。