不得意なものは他言語にお任せ! ”言語的キメラ”なプログラミング技法とは #pyconjp #pyconjp_204

複数の言語からなるプロジェクトを作るということ Kosuke Kusano @cocuh_ https://pycon.jp/2016/ja/schedule/presentation/33/ 1つのプロジェクトが1つのプログラミング言語で完結することが少なくなっています。言語的にキメラ(chimera)なプログラミング技法についてこれまであまり議論されてきませんでした。PythonとRustを用いたmulti-threaddingについて取り上げながら、Pythonの不得意とする処理を他の言語に委譲する方法論を議論し、chimeraに対する議論を深めようと思います。
5
夜道 @yomichi_137

(直接的な)言語の組み合わせは色々あるが、基本的には手続き(プロシージャ、関数、etc)呼び出しに帰着 #pyconjp #pyconjp_204

2016-09-21 15:40:49
ケース @ksbycase

- procedure call - local procedure call - remote procedure call #pyconjp_204

2016-09-21 15:41:32
夜道 @yomichi_137

呼び出し元と呼び出し先とでホストが同じかとかプロセスが同じかとかでライブラリやフレームワークが色々ある #pyconjp #pyconjp_204

2016-09-21 15:41:43
Hiroshi Sano @hrs_sano645

紹介するもので宗教がわかるスピーカー様 #pyconjp #pyconjp_204

2016-09-21 15:42:47
wolfin_ikeom @wolf20xx

みんな言語間連携の時の各言語宗教から離れるために、通信で連携できるホスト間ホストの組み合わせをとるんだろうなぁ #pyconjp #pyconjp_204

2016-09-21 15:42:58
夜道 @yomichi_137

大体の言語間の組み合わせで、先達が書いたbinding libがある #pyconjp #pyconjp_204

2016-09-21 15:43:19
夜道 @yomichi_137

ctypes は標準ライブラリだし簡単だけれど、ライブラリの位置は自分で見つけないといけないから実用するのはむずかしい #pyconjp #pyconjp_204

2016-09-21 15:46:45
tpdn @KIM_TPDN

ctypesは怪しいガジェットをPythonから叩きたい時に重宝するので個人的には大好き #pyconjp_204

2016-09-21 15:48:09
夜道 @yomichi_137

Cython はpython にちょっと手を加えるだけで C に書き換えてくれるし、よそのライブラリも `cimport libc` という感じで簡単に持ってこられる #pyconjp #pyconjp_204

2016-09-21 15:49:43
られ @rarewin

「ちゃんとハロー幼女になる」 ……シュール。 #pyconjp #pyconjp_204

2016-09-21 15:50:25
られ @rarewin

ctypes 簡単だけど低機能 Cython そこそこ手軽で高機能 C Extension どM向け #pyconjp #pyconjp_204

2016-09-21 15:53:18
られ @rarewin

SAT solverとか久々に聞いた…… #pyconjp #pyconjp_204

2016-09-21 15:53:44
夜道 @yomichi_137

事例紹介: SAT を解くために、C++ で書かれた既存のソルバをpython から呼ぶ #pyconjp #pyconjp_204

2016-09-21 15:55:08
夜道 @yomichi_137

自分で書いたCython 部分で、自分のpython 側で使いやすいようにインターフェースを書く(Cython はそのままC++ 11 が使える) #pyconjp #pyconjp_204

2016-09-21 15:58:00
られ @rarewin

コミットログが寿司だったりワインだったりビールだったりなのね……。 github.com/cocuh/pyconjp2… #pyconjp #pyconjp_204

2016-09-21 16:01:35
リンク GitHub cocuh/pyconjp2016-chimera Contribute to pyconjp2016-chimera development by creating an account on GitHub.
夜道 @yomichi_137

Cython でガッツリとしたC++ を書くことはできないしデバッグが辛いので、C++ で書いて最後のインターフェースだけCython で書く #pyconjp #pyconjp_204

2016-09-21 16:01:49
wolfin_ikeom @wolf20xx

cythonで大きなコードを書くのはやめよう! という結論 #pyconjp #pyconjp_204

2016-09-21 16:01:54
夜道 @yomichi_137

事例紹介2:並列処理をしたいけれどsubprocess が面倒くさいのでRUST で並列処理を書いて呼ぶ #pyconjp #pyconjp_204

2016-09-21 16:02:38
Kamon @cameong

rust は並列処理得意。ほー。 #pyconjp_204

2016-09-21 16:03:04
られ @rarewin

「Rustご存知な方?」 「意外といる、やったー!!」 #pyconjp #pyconjp_204

2016-09-21 16:03:25