lldeade python language update
DESCRIPTION
This is the slide of 15 minutes talk at the annual lightweight language event in Japan, which mentions to past decade and future of Python language.TRANSCRIPT
Pythonの10年とこれから柴田 淳 @atsウェブコア株式会社
12年8月6日月曜日
短い自己紹介
「みんなのPython」の著者です
嫁&息子&わんこLove
12年8月6日月曜日
Pythonの,10年で変わったこと変わらなかったことについて話します
12年8月6日月曜日
2003年 日本のPython 超マイナー
12年8月6日月曜日
2003年にPythonの発表をしたとき
•珍獣扱い
•「インデント,ウザくないですか?」という質問があった
•意味が分からない
•外資ヘッドハントの標的
•秘密兵器的に使っていた
12年8月6日月曜日
2003年世界のPython 超メジャー
12年8月6日月曜日
期待のルーキー
•標準ライブラリが充実(Battery Included)
•マルチプラットフォーム
•Googleが使い始める(2002年,Python 2.2)
•Python 2.3(2003年7月29日リリース)
12年8月6日月曜日
Zope Pythonのキラーアプリ
12年8月6日月曜日
Zope
•サーバ内蔵Webアプリケーションフレームワーク
•オブジェクト指向,メタプログラミングを使った開発
•テンプレート言語
• KVM風のオブジェクトデータベース(ZODB)内蔵
•プリミティブなO/Rマッパーを使ってDB操作
12年8月6日月曜日
GUIインストーラAnaconda
12年8月6日月曜日
Anaconda
• GUIフレームワークPyGTKベース
•ファンシーなUIでLinuxのインストールベース拡大に貢献
• Linuxのデスクトップは最近では普通にPythonを使っている
• yum
• PythonないとLinux動かない
12年8月6日月曜日
NumPy(Numeric) 科学計算ライブラリ
12年8月6日月曜日
NumPy(Numeric)
• Pythonの科学計算用ライブラリ
•大規模な多次元配列,行列のデータ型を内蔵
•高速な数学ライブラリ
• SciPy(NumPy + MatPlotLib),BioPython,etc.
• iPythonは科学技術系紀元
12年8月6日月曜日
Pythonの言語としての10年
あんま変わってない
12年8月6日月曜日
Python 3からのバックポート
Python 3からのバックポート
Changes between Python 2.3 to 2.7
Python 2.3(2003)
yield文
Python 2.4(2004)
set型デコレータジェネレータ式複数行import
整数型の統合
Python 2.5(2006)
条件式絶対/相対importtry/except/finally
例外の新スタイルクラス化
Python 2.6(2008)
with文except .. as
8/2進数のリテラルバイトリテラルクラスデコレータ
Python 2.7(2010)
Set型のリテラルディクショナリ/
Set内包表記
12年8月6日月曜日
Changes between Python 3.0 to 3.3
Python 3.0(2008)
print()関数view
比較の変更整数型の統合
“/”演算子の変更文字列型の変更
bytes型関数注記
キーワードのみ引数nonlocal文
クラスデコレータexcept .. as
Python 3.1(2009)
with文で複数のcontext managerを受けられるように浮動小数点の評価方法変更
Python 3.3(2012)
u”~”リテラルの復活yield from例外の再構成
Python 3.2(2011)
(モラトリアム期)
12年8月6日月曜日
慎重すぎるPython デコレータの例
12年8月6日月曜日
デコレータとは
def foo(self): perform method operationfoo = classmethod(foo)
def foo(cls): passfoo = synchronized(lock)(foo)foo = classmethod(foo)
もっと綺麗に書きたい
12年8月6日月曜日
決まるまで4ヶ月かかった(c.f. PEP 318)
def func(arg1, arg2, ...): passfunc = dec2(dec1(func))
<classmethod>def foo(arg1,arg2): pass
[classmethod]def foo(arg1,arg2): pass
記号で囲むべきだよ派
decorate: classmethod def foo(arg1,arg2): pass
decorate文が必要だよ派
def @classmethod foo(arg1,arg2): pass
def foo @classmethod (arg1,arg2): pass
def foo(arg1,arg2) @classmethod: pass
|classmethoddef foo(arg1,arg2): pass
@classmethoddef foo(arg1,arg2): pass
前に記号をつけるべきだよ派
|が好きだよ派
@が好きだよ派
12年8月6日月曜日
今時のPythonベースサービス
12年8月6日月曜日
利用者の広がり PythonはWebだけじゃない
12年8月6日月曜日
10年で最も進んだイノベーション
チープ革命
12年8月6日月曜日
チープ革命が科学計算の分野にもインパクトを
• SGI,クレイがコモディティ化したPCサーバに
•並列計算が主流に
• FORTRANやMathematicaなどの代替としてPythonが選ばれる
•外部ライブラリとの連携のしやすさ
• NumPy,SciPy,BioPython,MatPlotLib
12年8月6日月曜日
Pythonがデファクトとして使われている分野
バイオインフォマティクス 自然言語処理
金融工学気象科学 GIS
CG
12年8月6日月曜日
LucasfilmとTwisted
• 2004年から利用
•分散レンダリングに利用
• 2009年にスポンサーに
12年8月6日月曜日
気象とPython
• PyAOSPython for Atmospheric and Oceanic Science
•海洋気象物理学のためのライブラリ
•日本の気象庁でも利用
• 省庁で日本の明日を真剣に考えているのは気象庁だけ
• 日本の明日を真剣に考えている
のはPythonだけ
12年8月6日月曜日
シンプルなのはいいことだ
12年8月6日月曜日
シンプルさがもたらす恩恵
•複数の実装系
• Jython,IronPython,PyPy
• Python Inspiredな言語など
• Boo,CoffeeScript,Go(?)
• Pythonの世界広がりまくりんぐ
12年8月6日月曜日
そろそろPython 3
• Python 3.3イケてる(2012年8月末リリース予定)
•主要フレームワーク,ライブラリがPython 3に対応
みんなのPython 第三版が出るのです(2012年8月末くらい)
12年8月6日月曜日
ありがとうございました
12年8月6日月曜日