SlideShare ist ein Scribd-Unternehmen logo
1 von 73
Downloaden Sie, um offline zu lesen
Pythonの実装系総ざらい
お前誰よ 
• @Masahito 
• P2P,File,Transfer,Engineer,at,Skeed,Co., 
Ltd. 
• I,work,with,Scala,&,JVM(Sorry!) 
• We,use,Python,for,ImplementaJon,the, 
CLI,,and,,to,deploy,the,P2P,client(fabric, 
etc)
PyCon&Singapore&2014でLTしてきました
みなさんの反応
今年のPyConJPのテーマ
Pythonで再発見
伝えたいこと 
• いろんな処理系の紹介 
• メリット/デメリットよりも使うシーン 
• 言葉がたくさん出てくるので名前だけでも覚えていただれば 
• Python)is)Glue 
• 用途にあった言語を使おう
伝えないこと 
• Pythonの仕様 
• 各実装系の細かい仕様の差異 
• 実際にどんなところで使われてる?
今回ご紹介する実装 
• CPython(2.X-and-3.X) 
• Jython 
• IronPython 
• PyPy 
• Pyston
Pythonの特徴かるくまとめ
Pythonとは 
1. 広範囲に及ぶ標準ライブラリとサードパーティのモジュール 
2. 拡張とモジュールはC/C++で書くのが容易 
3. アプリケーションに組み込んでスクリプトインタフェースとし 
て利用することが可能
クエスチョン 
1. C言語より速く動作する? 
2. 静的型付け?
GlueとしてのPython
CPython
CPython 
• CPython2(2.7.8) 
• CPython3(3.4.1) 
• Python2プログラミング言語の最も広く用いられている標準の実 
装である。2CPython2は2C言語で記述されている。 
• Pythonでできないことを、もしくは低レベルコードの高速性が 
必要になった場合は、C/C++で拡張モジュールを作成
ctypes 
!ctypes!は!Python!のための外部関数ライブラリです。このライブ 
ラリ!は!C!と互換性のあるデータ型を提供し、動的リンク/共有ラ 
イブラリ内の関数呼び出しを可能にします。動的リンク/共有ライ 
ブラリを純粋な!Python!でラップするために使うことができます。 
from%h'p://docs.python.jp/2/library/ctypes.html
 例!dllをたたく 
#include "dll.h" 
#include <Windows.h> 
BOOL WINAPI DllMain(HINSTANCE hinstDll, DWORD fdwReason, LPVOID lpReserved) { 
switch(fdwReason) { 
case DLL_PROCESS_ATTACH: 
break; 
case DLL_THREAD_ATTACH: 
break; 
case DLL_THREAD_DETACH: 
break; 
case DLL_PROCESS_DETACH: 
break; 
} 
return TRUE; 
} 
// 単純な加算。 
DLL_EXPORT int __add(const int x, const int y) { 
return x + y; 
}
from ctypes import windll 
lib = windll.LoadLibrary("dll.dll"); 
if (lib.__add(1,2) != 3): 
print("error!") 
else: 
print("ok")
CPython 
• Python/C*API 
• Pyrex 
h0p://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/ 
• Cython 
h0p://cython.org/ 
• boost.python 
h0p://www.boost.org/doc/libs/1560/libs/python/doc/
Python/C)API 
#include <Python.h> 
static PyObject* helloworld(PyObject* self) 
{ 
return Py_BuildValue("s", "Hello, Python extensions!!"); 
} 
static char helloworld_docs[] = 
"helloworld( ): Any message you want to put here!!n"; 
static PyMethodDef helloworld_funcs[] = { 
{"helloworld", (PyCFunction)helloworld, 
METH_NOARGS, helloworld_docs}, 
{NULL} 
}; 
void inithelloworld(void) 
{ 
Py_InitModule3("helloworld", helloworld_funcs, 
"Extension module example!"); 
}
numpy関連 
ちょっとそれるけどnumpyでのスピードアップ用に 
• numba 
h(p://numba.pydata.org/ 
ってのもあります。 
バックエンドはLLVMPY 
h'p://www.llvmpy.org/
例 
from numba import jit 
from numpy import arange 
# jit decorator tells Numba to compile this function. 
# The argument types will be inferred by Numba when function is called. 
@jit 
def sum2d(arr): 
M, N = arr.shape 
result = 0.0 
for i in range(M): 
for j in range(N): 
result += arr[i,j] 
return result 
a = arange(9).reshape(3,3) 
print(sum2d(a))
cpython3 
• C#APIのInterfaceが少し変わった 
• むしろめんどいのはString/Unicode#=>#Unicode/Byteなところ
って口で言うだけだとあれですね 
ここでコード例をひとつ 
前に自分で書いたやつを見せておきます。 
• pyuv 
Pythonでのlibuvのwrapper1module. 
asynchronous1I/O1にフォーカスしたマルチプラットフォームライ 
ブラリでnode.jsで使われてる。
Python 
#ifdef PYUV_PYTHON3 
static PyModuleDef pyuv_fs_module = { 
PyModuleDef_HEAD_INIT, 
"pyuv.fs", /*m_name*/ 
NULL, /*m_doc*/ 
-1, /*m_size*/ 
FS_methods, /*m_methods*/ 
}; 
#endif 
#ifdef PYUV_PYTHON3 
module = PyModule_Create(&pyuv_fs_module); 
#else 
module = Py_InitModule("pyuv.fs", FS_methods); 
#endif
もっと詳しく知りたい方 
• Python(インタプリタの拡張と埋め込み 
h)p://docs.python.jp/3/extending/index.html 
• Python(3(への拡張モジュール移植 
h)p://docs.python.jp/3.4/howto/cpor<ng.html
Jython
Jython 
1. h$p://www.jython.org/ 
2. 最新は12.5.3/12.5.4rc1/12.71beta3 
3. JVM上で動作するPython
Jythonの特徴 
• Javaのライブラリが使える.GUIとかも 
• コンパイル)/)実行という手順を踏まずに、アイデアやAPIの実験 
および調査を簡単に実行できる 
• No)Global)Interpreter)Lock[やばい]
例:"GUIアプリケーション 
from javax.swing import JButton, JFrame 
frame = JFrame('Hello, Jython!', 
defaultCloseOperation = JFrame.EXIT_ON_CLOSE, 
size = (300, 300) 
) 
def change_text(event): 
print 'Clicked!' 
if __name__=="__main__": 
button = JButton('Click Me!', actionPerformed=change_text) 
frame.add(button) 
frame.visible = True
例:"classpath"の設定 
foo.jarを使う 
$ export CLASSPATH=$CLASSPATH:foo.jar; jython foo.py
invokeDynamic 
一言で言うのは難しいんだけどこれに対応してると、JVM上で動 
く動的型付け言語でもJavaの呼び出しと同じ最適化をかけてくれ 
ると思ってください。 
言語処理系が自分で最適化ではなく、JVMにお任せできる
今のところinvokeDynamic対応はまだらしい 
h"ps://wiki.python.org/jython/RoadMap 
Towards(v3.3 
(Use(of(Java(7(invokedynamic:(Jim?( 
いつか実装されるのかも
Iron%Python
Iron%Python 
1. h$p://ironpython.net/ 
2. 最新は02.7.4 
3. .NET0Framework0上で動作するPython 
4. Python0Tools0fo0VisualStudioで導入できる
DLR 
• 動的言語を.NET&Framework上に実装するために使われる。 
• DLR&は既存のCLRと.NET&Framework仮想マシン上に構築されて 
いる. 
• 現在の最新版であるIronPython&2.x系列は.NET&4に対応し、 
DLR(動的言語ランタイム)上に実装されている
例:空のウィンドウ 
import clr 
clr.AddReferenceByPartialName("System.Windows.Forms") 
clr.AddReferenceByPartialName("System.Drawing") 
import System 
from System.Windows.Forms import Form 
from System.Drawing import Size 
form = Form() 
form.Size = Size(300,200) 
form.Text = "Hello World!" 
System.Windows.Forms.Application.Run(form) 
h"p://www.yasundial.org/ironpython/book.html
Pythonで書いたんだしこのまま早 
くなると言いなぁ
そう思うこと多いよね
ここからははやく動かすのを考えた 
処理系の話をしますね
PyPy
PyPy 
1. h$p://pypy.org/ 
2. the/Python2.7/compa6ble/release/—/PyPy/2.3.1 
3. the/Python3.3/compa6ble/release/—/PyPy3/2.3.1/ 
4. PyPyは、Armin/Rigoが開発した、PythonのJIT特殊化コンパイ 
ラである/Psyco/の後継プロジェクト 
5. Pythonにいくつかの制約を加えた言語であるRPythonで記述 
6. セルフホスティング
PyPy#とは? 
2つの側面がある 
1. インタプリタ型言語のインタプリタを実装するためのツールセット 
2. このtoolchainを使用した Python の実装
toolcahinを利用した他の実装 
• Topaz'(an(implementa/on(of(the(Ruby(programming(language( 
using(PyPy(technology. 
h<ps://github.com/topazproject/topaz 
• HippyVM('(an(implementa/on(of(the(PHP(language(using(PyPy( 
technology. 
h<p://hippyvm.com/
JIT 
• PyPyと言えば速さ 
• Just(In(Time(Compiler 
実行時に処理の流れを解析して最適化,(JSのV8とかのが有名か 
• JIT(document 
h;p://pypy.readthedocs.org/en/latest/jit/ 
• 流行りのJITコンパイラは嫌いですか?( 
h;p://www.longsleeper.com/pypyadvent11
いま行われていること 
1. PyPy3 
2. STM(So,ware1Transac5onal1Memory) 
GILがとれるかも 
3. numpypy
おまけ 
• PyPy$jaってユーザグループがございます 
h"ps://groups.google.com/forum/#!forum/pypy4ja
Pyston
Pyston 
• あのGuidoが所属してるDropboxで作られてる実装 
• Python12.X互換(未来のどこかで3.X対応するらしい) 
• LLVMでビルドしてLLVM1IRに変換して実行 
• Unladen1swallowのことは忘れよう 
• 0.2が昨日出たorz
Pyston 
• 現状binaryは配られてないので自分でbuild 
• LLVMからビルドするよ! 
• LLVM/IRに変換して実行
Roadmap 
v0.1:&released&4/2/2014 
• Focus'was'on'building'and'valida1ng'the'core'Python8to8LLVM' 
JIT'infrastructure. 
• Many'core'parts'of'the'language'were'missing.
v0.2:&released&9/11/2014 
• Many&new&features: 
• Excep3ons 
• Class&inheritance,&metaclasses 
• Basic&na3ve&C&API&support 
• Closures,&generators,&lambdas,&generator&expressions 
• Default&arguments,&keywords,&*args,&**kwargs 
• Longs,&and&integer&promo3on 
Mul3threading&support
v0.3:&current&series 
• Goal&is&to&improve&performance,&informed&by&our&behavior&on& 
real&benchmarks.
速度比較
速度比較 
• Python(v2.7.3 
• PyPy(v2.2.1 
• Pyston(v0.1(2014/04/15)
再帰 
import time 
def fib(n): 
if n < 2: return n 
return fib(n - 2) + fib(n - 1) 
if __name__ == "__main__": 
for x in range(3): 
fib(3) 
start = time.time() 
result = fib(38) 
timespan = time.time() - start 
print(result) 
print (timespan)
ループ 
import time 
def fib(n): 
value = 0 
f1, f2 = 1, -1 
for i in range(n+1): 
value = f1 + f2 
f2 = f1 
f1 =value 
return value 
if __name__ == "__main__": 
for x in range(3): 
fib(3) 
start = time.time() 
result = 0 
for x in range(0,5000): 
result = fib(38) 
timespan = time.time() - start 
print(result) 
print (timespan)
One$more$thing...
Pyston'0.2での結果
• Python(v2.7.6 
• PyPy(v2.3.1 
• Pyston(v0.2(2014/09/11)(new!
(つд⊂)ゴシゴシ→(;゚%Д゚)傾向が変わっていない...
今後に期待
組み込み用ではMicroPythonっての 
がある
この後お話が聞けるので興味のある 
方は[Conference)Room)1]へGo!
まとめ 
• PythonはGlueとして使うと便利 
• Pythonの実行を効率化しようとしてる実装は複数存在する 
• PyPyは楽しいよ 
• Pystonは今後に期待
Pythonを再発見できたでしょうか?
Ques%on?

Weitere ähnliche Inhalte

Was ist angesagt?

"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another ApproachDaisuke Miyakawa
 
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack botPython × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack botdcubeio
 
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All ThingsUnityTechnologiesJapan002
 
各OSにおいて、OpenCVをpythonから使う方法
各OSにおいて、OpenCVをpythonから使う方法各OSにおいて、OpenCVをpythonから使う方法
各OSにおいて、OpenCVをpythonから使う方法Katsuhiro Morishita
 
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPCZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPCYoshifumi Kawai
 
Pythonのシグナル処理
Pythonのシグナル処理Pythonのシグナル処理
Pythonのシグナル処理Atsuo Ishimoto
 
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法Yoshifumi Kawai
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようKenji NAKAGAKI
 
QtでHello, World!!
QtでHello, World!!QtでHello, World!!
QtでHello, World!!treby
 
2017/12/21 虎の穴 Python勉強会
2017/12/21 虎の穴 Python勉強会2017/12/21 虎の穴 Python勉強会
2017/12/21 虎の穴 Python勉強会虎の穴 開発室
 
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化Yutaka Kato
 
Python パッケージの影響を歴史から理解してみよう!
Python パッケージの影響を歴史から理解してみよう!Python パッケージの影響を歴史から理解してみよう!
Python パッケージの影響を歴史から理解してみよう!Kir Chou
 
久しぶりのPythonでgoogleのアレを制御してみた
久しぶりのPythonでgoogleのアレを制御してみた久しぶりのPythonでgoogleのアレを制御してみた
久しぶりのPythonでgoogleのアレを制御してみたShohei Tai
 
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...Yoshifumi Kawai
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版Katsuhiro Morishita
 
NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#Yoshifumi Kawai
 
FINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolangFINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolangYoshiki Shibukawa
 
20170131 python3 6 PEP526
20170131 python3 6 PEP526 20170131 python3 6 PEP526
20170131 python3 6 PEP526 masahitojp
 

Was ist angesagt? (20)

"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach
 
第1回python勉強会
第1回python勉強会第1回python勉強会
第1回python勉強会
 
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack botPython × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack bot
 
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
 
各OSにおいて、OpenCVをpythonから使う方法
各OSにおいて、OpenCVをpythonから使う方法各OSにおいて、OpenCVをpythonから使う方法
各OSにおいて、OpenCVをpythonから使う方法
 
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPCZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
 
Pythonのシグナル処理
Pythonのシグナル処理Pythonのシグナル処理
Pythonのシグナル処理
 
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
Windowsにpythonをインストールしてみよう
 
QtでHello, World!!
QtでHello, World!!QtでHello, World!!
QtでHello, World!!
 
2017/12/21 虎の穴 Python勉強会
2017/12/21 虎の穴 Python勉強会2017/12/21 虎の穴 Python勉強会
2017/12/21 虎の穴 Python勉強会
 
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
 
Python パッケージの影響を歴史から理解してみよう!
Python パッケージの影響を歴史から理解してみよう!Python パッケージの影響を歴史から理解してみよう!
Python パッケージの影響を歴史から理解してみよう!
 
Pythonでゲーム作る
Pythonでゲーム作るPythonでゲーム作る
Pythonでゲーム作る
 
久しぶりのPythonでgoogleのアレを制御してみた
久しぶりのPythonでgoogleのアレを制御してみた久しぶりのPythonでgoogleのアレを制御してみた
久しぶりのPythonでgoogleのアレを制御してみた
 
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
 
NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#
 
FINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolangFINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolang
 
20170131 python3 6 PEP526
20170131 python3 6 PEP526 20170131 python3 6 PEP526
20170131 python3 6 PEP526
 

Andere mochten auch

Effective Numerical Computation in NumPy and SciPy
Effective Numerical Computation in NumPy and SciPyEffective Numerical Computation in NumPy and SciPy
Effective Numerical Computation in NumPy and SciPyKimikazu Kato
 
Pyconsg2014 pyston
Pyconsg2014 pystonPyconsg2014 pyston
Pyconsg2014 pystonmasahitojp
 
Oktavia Search Engine - pyconjp2014
Oktavia Search Engine - pyconjp2014Oktavia Search Engine - pyconjp2014
Oktavia Search Engine - pyconjp2014Yoshiki Shibukawa
 
Directory Write Leases in MagFS
Directory Write Leases in MagFSDirectory Write Leases in MagFS
Directory Write Leases in MagFSMaginatics
 
FlyData Autoload: 事例集
FlyData Autoload: 事例集FlyData Autoload: 事例集
FlyData Autoload: 事例集FlyData Inc.
 
2014-01-28 Operation in the future
2014-01-28 Operation in the future2014-01-28 Operation in the future
2014-01-28 Operation in the futureOperation Lab, LLC.
 
PyConJP Keynote Speech (Japanese version)
PyConJP Keynote Speech (Japanese version)PyConJP Keynote Speech (Japanese version)
PyConJP Keynote Speech (Japanese version)nishio
 
Getting Started with Performance Co-Pilot
Getting Started with Performance Co-PilotGetting Started with Performance Co-Pilot
Getting Started with Performance Co-PilotPaul V. Novarese
 
第29回WebSig会議「効率化だけではない!中小~中堅ECサイトの成果を上げる「メディア編集力」とは」
第29回WebSig会議「効率化だけではない!中小~中堅ECサイトの成果を上げる「メディア編集力」とは」第29回WebSig会議「効率化だけではない!中小~中堅ECサイトの成果を上げる「メディア編集力」とは」
第29回WebSig会議「効率化だけではない!中小~中堅ECサイトの成果を上げる「メディア編集力」とは」WebSig24/7
 
SI業界の営業の役割と存在意義を一緒に考えよう
SI業界の営業の役割と存在意義を一緒に考えようSI業界の営業の役割と存在意義を一緒に考えよう
SI業界の営業の役割と存在意義を一緒に考えようManabu Terada
 
Site Search Analytics in a Nutshell
Site Search Analytics in a NutshellSite Search Analytics in a Nutshell
Site Search Analytics in a NutshellLouis Rosenfeld
 
Nttドコモ事例から見るモバイル&クラウド時代のサービス開発についてr4(public)
Nttドコモ事例から見るモバイル&クラウド時代のサービス開発についてr4(public)Nttドコモ事例から見るモバイル&クラウド時代のサービス開発についてr4(public)
Nttドコモ事例から見るモバイル&クラウド時代のサービス開発についてr4(public)Osaka University
 
Micro Python で組み込み Python
Micro Python で組み込み PythonMicro Python で組み込み Python
Micro Python で組み込み PythonHirotaka Kawata
 
Pycon2014 django performance
Pycon2014 django performancePycon2014 django performance
Pycon2014 django performancehirokiky
 
Deep Learning for Image Recognition in Python
Deep Learning for Image Recognition in PythonDeep Learning for Image Recognition in Python
Deep Learning for Image Recognition in PythonHideki
 
Riverbed Software Defined IT Survey
Riverbed Software Defined IT SurveyRiverbed Software Defined IT Survey
Riverbed Software Defined IT SurveyRiverbed Technology
 

Andere mochten auch (20)

Pyramid入門
Pyramid入門Pyramid入門
Pyramid入門
 
Effective Numerical Computation in NumPy and SciPy
Effective Numerical Computation in NumPy and SciPyEffective Numerical Computation in NumPy and SciPy
Effective Numerical Computation in NumPy and SciPy
 
Pyconsg2014 pyston
Pyconsg2014 pystonPyconsg2014 pyston
Pyconsg2014 pyston
 
Oktavia Search Engine - pyconjp2014
Oktavia Search Engine - pyconjp2014Oktavia Search Engine - pyconjp2014
Oktavia Search Engine - pyconjp2014
 
Cracking PRNG
Cracking PRNGCracking PRNG
Cracking PRNG
 
Directory Write Leases in MagFS
Directory Write Leases in MagFSDirectory Write Leases in MagFS
Directory Write Leases in MagFS
 
FlyData Autoload: 事例集
FlyData Autoload: 事例集FlyData Autoload: 事例集
FlyData Autoload: 事例集
 
2014-01-28 Operation in the future
2014-01-28 Operation in the future2014-01-28 Operation in the future
2014-01-28 Operation in the future
 
PyConJP Keynote Speech (Japanese version)
PyConJP Keynote Speech (Japanese version)PyConJP Keynote Speech (Japanese version)
PyConJP Keynote Speech (Japanese version)
 
PCP
PCPPCP
PCP
 
Getting Started with Performance Co-Pilot
Getting Started with Performance Co-PilotGetting Started with Performance Co-Pilot
Getting Started with Performance Co-Pilot
 
第29回WebSig会議「効率化だけではない!中小~中堅ECサイトの成果を上げる「メディア編集力」とは」
第29回WebSig会議「効率化だけではない!中小~中堅ECサイトの成果を上げる「メディア編集力」とは」第29回WebSig会議「効率化だけではない!中小~中堅ECサイトの成果を上げる「メディア編集力」とは」
第29回WebSig会議「効率化だけではない!中小~中堅ECサイトの成果を上げる「メディア編集力」とは」
 
SI業界の営業の役割と存在意義を一緒に考えよう
SI業界の営業の役割と存在意義を一緒に考えようSI業界の営業の役割と存在意義を一緒に考えよう
SI業界の営業の役割と存在意義を一緒に考えよう
 
Site Search Analytics in a Nutshell
Site Search Analytics in a NutshellSite Search Analytics in a Nutshell
Site Search Analytics in a Nutshell
 
Nttドコモ事例から見るモバイル&クラウド時代のサービス開発についてr4(public)
Nttドコモ事例から見るモバイル&クラウド時代のサービス開発についてr4(public)Nttドコモ事例から見るモバイル&クラウド時代のサービス開発についてr4(public)
Nttドコモ事例から見るモバイル&クラウド時代のサービス開発についてr4(public)
 
Micro Python で組み込み Python
Micro Python で組み込み PythonMicro Python で組み込み Python
Micro Python で組み込み Python
 
Pycon2014 django performance
Pycon2014 django performancePycon2014 django performance
Pycon2014 django performance
 
Deep Learning for Image Recognition in Python
Deep Learning for Image Recognition in PythonDeep Learning for Image Recognition in Python
Deep Learning for Image Recognition in Python
 
Riverbed Software Defined IT Survey
Riverbed Software Defined IT SurveyRiverbed Software Defined IT Survey
Riverbed Software Defined IT Survey
 
Docomo Cloud Package
Docomo Cloud PackageDocomo Cloud Package
Docomo Cloud Package
 

Ähnlich wie Pyconjp2014_implementations

PyPy 紹介
PyPy 紹介PyPy 紹介
PyPy 紹介shoma h
 
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発shoma h
 
Python & PyConJP 2014 Report
Python & PyConJP 2014 ReportPython & PyConJP 2014 Report
Python & PyConJP 2014 Reportgree_tech
 
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of PythonTakanori Suzuki
 
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12Takanori Suzuki
 
Apilecture for 2014/02/22 at shannonlab
Apilecture for 2014/02/22 at shannonlabApilecture for 2014/02/22 at shannonlab
Apilecture for 2014/02/22 at shannonlabYutaka Kobayshi
 
Pyconjp2016 pyftplib
Pyconjp2016 pyftplibPyconjp2016 pyftplib
Pyconjp2016 pyftplibShinya Okano
 
Python physicalcomputing
Python physicalcomputingPython physicalcomputing
Python physicalcomputingNoboru Irieda
 
Pythonによる画像処理について
Pythonによる画像処理についてPythonによる画像処理について
Pythonによる画像処理についてYasutomo Kawanishi
 
明日からはじめるネットワーク運用自動化
明日からはじめるネットワーク運用自動化明日からはじめるネットワーク運用自動化
明日からはじめるネットワーク運用自動化Taiji Tsuchiya
 
LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45civic Sasaki
 
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?Developers Summit
 
20130316 プログラミング言語Go
20130316 プログラミング言語Go20130316 プログラミング言語Go
20130316 プログラミング言語GoYoshifumi Yamaguchi
 
PyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッションPyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッションTetsuya Morimoto
 
Polyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGAPolyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGAryos36
 
Goji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャGoji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャShiroyagi Corporation
 
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)hiroshi oshiba
 
Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)Tetsuya Morimoto
 

Ähnlich wie Pyconjp2014_implementations (20)

PyPy 紹介
PyPy 紹介PyPy 紹介
PyPy 紹介
 
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発
 
Python & PyConJP 2014 Report
Python & PyConJP 2014 ReportPython & PyConJP 2014 Report
Python & PyConJP 2014 Report
 
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
 
Introduction Pycon2010
Introduction Pycon2010Introduction Pycon2010
Introduction Pycon2010
 
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
 
Apilecture for 2014/02/22 at shannonlab
Apilecture for 2014/02/22 at shannonlabApilecture for 2014/02/22 at shannonlab
Apilecture for 2014/02/22 at shannonlab
 
Pyconjp2016 pyftplib
Pyconjp2016 pyftplibPyconjp2016 pyftplib
Pyconjp2016 pyftplib
 
Python physicalcomputing
Python physicalcomputingPython physicalcomputing
Python physicalcomputing
 
Pythonによる画像処理について
Pythonによる画像処理についてPythonによる画像処理について
Pythonによる画像処理について
 
明日からはじめるネットワーク運用自動化
明日からはじめるネットワーク運用自動化明日からはじめるネットワーク運用自動化
明日からはじめるネットワーク運用自動化
 
LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45
 
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
 
How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
20130316 プログラミング言語Go
20130316 プログラミング言語Go20130316 プログラミング言語Go
20130316 プログラミング言語Go
 
PyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッションPyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッション
 
Polyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGAPolyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGA
 
Goji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャGoji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャ
 
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
 
Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)
 

Mehr von masahitojp

Python と型ヒントとその使い方
Python と型ヒントとその使い方Python と型ヒントとその使い方
Python と型ヒントとその使い方masahitojp
 
Enjoy Type Hints and its benefits
Enjoy Type Hints and its benefitsEnjoy Type Hints and its benefits
Enjoy Type Hints and its benefitsmasahitojp
 
Build a RESTful API with the Serverless Framework
Build a RESTful API with the Serverless FrameworkBuild a RESTful API with the Serverless Framework
Build a RESTful API with the Serverless Frameworkmasahitojp
 
Presentation kyushu-2018
Presentation kyushu-2018Presentation kyushu-2018
Presentation kyushu-2018masahitojp
 
serverless framework + AWS Lambda with Python
serverless framework + AWS Lambda with Pythonserverless framework + AWS Lambda with Python
serverless framework + AWS Lambda with Pythonmasahitojp
 
The Benefits of Type Hints
The Benefits of Type HintsThe Benefits of Type Hints
The Benefits of Type Hintsmasahitojp
 
chat bot framework for Java8
chat bot framework for Java8chat bot framework for Java8
chat bot framework for Java8masahitojp
 
Akka meetup 2014_sep
Akka meetup 2014_sepAkka meetup 2014_sep
Akka meetup 2014_sepmasahitojp
 
Riak map reduce for beginners
Riak map reduce for beginnersRiak map reduce for beginners
Riak map reduce for beginnersmasahitojp
 
Play2 translate 20120714
Play2 translate 20120714Play2 translate 20120714
Play2 translate 20120714masahitojp
 
Play2の裏側
Play2の裏側Play2の裏側
Play2の裏側masahitojp
 
Play!framework2.0 introduction
Play!framework2.0 introductionPlay!framework2.0 introduction
Play!framework2.0 introductionmasahitojp
 
5分で説明する Play! scala
5分で説明する Play! scala5分で説明する Play! scala
5分で説明する Play! scalamasahitojp
 

Mehr von masahitojp (14)

Python と型ヒントとその使い方
Python と型ヒントとその使い方Python と型ヒントとその使い方
Python と型ヒントとその使い方
 
Enjoy Type Hints and its benefits
Enjoy Type Hints and its benefitsEnjoy Type Hints and its benefits
Enjoy Type Hints and its benefits
 
Build a RESTful API with the Serverless Framework
Build a RESTful API with the Serverless FrameworkBuild a RESTful API with the Serverless Framework
Build a RESTful API with the Serverless Framework
 
Presentation kyushu-2018
Presentation kyushu-2018Presentation kyushu-2018
Presentation kyushu-2018
 
serverless framework + AWS Lambda with Python
serverless framework + AWS Lambda with Pythonserverless framework + AWS Lambda with Python
serverless framework + AWS Lambda with Python
 
The Benefits of Type Hints
The Benefits of Type HintsThe Benefits of Type Hints
The Benefits of Type Hints
 
chat bot framework for Java8
chat bot framework for Java8chat bot framework for Java8
chat bot framework for Java8
 
Akka meetup 2014_sep
Akka meetup 2014_sepAkka meetup 2014_sep
Akka meetup 2014_sep
 
Pykonjp2014
Pykonjp2014Pykonjp2014
Pykonjp2014
 
Riak map reduce for beginners
Riak map reduce for beginnersRiak map reduce for beginners
Riak map reduce for beginners
 
Play2 translate 20120714
Play2 translate 20120714Play2 translate 20120714
Play2 translate 20120714
 
Play2の裏側
Play2の裏側Play2の裏側
Play2の裏側
 
Play!framework2.0 introduction
Play!framework2.0 introductionPlay!framework2.0 introduction
Play!framework2.0 introduction
 
5分で説明する Play! scala
5分で説明する Play! scala5分で説明する Play! scala
5分で説明する Play! scala
 

Pyconjp2014_implementations