Pythonのダメ自慢、どうしよう
ダメポを2つ用意する。5分x2なので、1分でわかることがよい。
オレとしてはいつもいわれる「インデント」と内輪でいわれている「Webフレームワーク」をプッシュ。
なんか最近あがってるネタ
- J*UGをダシに
- Pythonで仕事をやっててタルくなったら息抜きに趣味のPythonコードを書く
- lambda, map, filter, reduceがあるせいで関数型と主張されてしまう
- Debian Sarge
- 2.1,2.2,2.3,2.4が入っている(古いバージョンに依存させたままのパッケージが存在)
- profilerがnon-free(DFSGに合致しない orz)
- sidでもまだ2.3が強い
- 日本語処理用サードパーティルーチンが弱い
- kconv, pykf...
- まあいらないといえばいらない
- docstring(コード内のドキュメント)を翻訳したいがうまい手が今のところない。
マスコットがいない < (|)<=
- 自動翻訳だと「ピュートーン」に変換される
ノミネート
前フリ用か
入れ子にはインデント
- いくら薦めてもPythonを使う気が起きないという最大の理由。
- 昔で言えばLispのカッコに相当。今はSchemeもあるか。
- 本当はインデントだけがブロックの区切りじゃないのだが。(インデントする前の行の末尾に注目)
if condition: expression
フォロー
- 編集がタルいんじゃないかと思いがちだが、少なくともHTMLとか制御文の評価部分にカッコつけたり文末にコロンが必要な言語よりはタイプが少ない分楽。
- 後で見直すときもインデントがそろっているので読むのが楽。
EmacsならPython-modeがあるのでTabとBSでカレント行のインデント操作、C-c C-<(C-l)やC-c C->(C-r)でリージョンごとインデントをずらせる。C-c C-cでバッファを実行できる。なので楽。
viなら>>とか<<がそのまま使える。
- 思ったほどインデントは大変じゃない。何重にもなったブロックができたらアルゴリズムを見直すべき。
和書の不足
- はじぱい(初めてのPython)とクイックリファレンスがあれば十分。
- ネットからで拾えるオンラインマニュアルとかtips充実しまくりなのでそもそも本買う必要もあまりない。
- Zope関係の本と抱き合わせでも売れそうで売れない。そもそもZopeがあまりメジャーじゃない。Jakarta系ばっかり。
オレオレエピソード
- 仕事仲間(Aさん)にPythonの良さを伝え、Aさん曰く「勉強しみるよ!」
- 数日後、Aさん曰く「クイックリファレンスを購入した」
- ミーディングしたとき、Aさん曰く「でかすぎて読めないごめん」
- なぜかオレの手元にクイックリファレンスがある。
攻めの一手
フレームワーク百鬼夜行
【百鬼夜行】三省堂提供「大辞林 第二版」より
- 妖怪が列をなして、夜中に歩くこと。中古から中世の迷信。夜行(やぎよう)。
- 得体の知れない者たちが我が物顔に振る舞うこと。
- Webフレームワーク乱立しすぎ
- これだけでもフレームワーク対決ができてしまう
- 本命、対抗、穴、大穴と揃ってます
ものによってはHTTPdを介さず自力でHTTPを喋ります(ZopeとかCherryPy)
- フレームワークのリスト(python.orgにあるもののみ、つまりだいたいアクティブ。)
- Albatross
- Aquarium
CherryPy
- Cymbeline
- Django
- Draco
- Impostor
JonsPythonModules
- JOTWeb
- Karrigell
- Nevow
- Paste
- Python Servlet Engine
PythonWebModules
PyWork
- QLime
- Quixote
SkunkWeb
- Snakelets
SnakeSkin
TwistedMatrix
- Wareweb
- Webware
- Zope
- Webフレームワークに追従して、テンプレートエンジンも豊富です:p
- フレームワークのリスト(これもpython.orgにあるもののみ)
- Airspeed - Velocity Templates for Python
- Castalian
- Cheetah
CubicTemp
- Elements
EmPy
- HTMLTemplate
- htmltmpl
- Kid
- Myghty
- pso
PyMeld
SimpleTAL
- Spyce
- Spytee
- teng
- WASP
- XIST
- フレームワークのリスト(これもpython.orgにあるもののみ)
サーバーコンプレックス
サーバの集合じゃなくて「サーバに対するコンプレックス」
これはダメというか愚痴なだけなので見送る予感。
- 国内のレンタルサーバのPythonサポートがイマイチというかダメ
- S△K□R△の共用サーバプランの場合
- とりあえずPythonが動く(2.3系)
- MySQLが入ってるけどMySQLdb等は自前でインスコしないと入ってない
- 国内のレンサバなのに日本語コーデックが入ってない
- 不満はあるがMakeする環境はあるからなんとかなる
- Zopeなどの常駐系は監視されてたまに殺されるので使うのは無理(まあこれはしょうがない)
- ▽▽▽△゛本舗の共用サーバプランの場合
- Python本体すら入ってない orz
- (それ以前に技術的な情報が全くと言って良いほど無いので...)
- VPS以上のグレードじゃないと動かすのが厳しいというのは明かにおかしい(環境がLightweightじゃない)
- Alias等が使えない場合、インストールにコツがいる。っていうか面倒。
- 海外のサーバはPythonサポートが驚くほど充実しているところもある
- 趣味だけのシステムに月数万払えるようなバカはそんなにいない
- ロハで使わせてくれて、且つPythonも使えるところはほとんどない
- あったとしても自宅サーバを貸してるというケースがほとんど
- んじゃあ結局自前で家サーバを用意したほうがそれなりに勝手が良いという結果に(実際オレのサーバはtepco光とDDNSで動いているのだが)
- S△K□R△の共用サーバプランの場合
スータクー スータクー たーっぷりスタック
- re.match('(a|b)+' 'a'*1000) みたいなのをやるとスタックを 2000 個消費するそうです..(2.4a3以降改善か) 情報提供:ymasda
もっていくもの
- 資料
- 当日、発表資料データを会場に持参
- ファイル形式自由
募集要項
2005年8月27日に開催されます LLDN の夜の部、Lightweight Language Night で各言語
のだめ自慢を競ってもらおうというセッションを企画しました。
今回は、Perl, Ruby, PHP, Pyhton の4言語について各言語1ずつご参加いただくことに
なりました。
・参加者には、自分の言語のもっともダメだと思う点を2つ準備してもらいます。
・また、ダメな点の発表スライドとして
- キャッチーなタイトル(プロレス技のような感じで)
- 具体的な説明
をひとつのダメな点につきそれぞれ1枚ずつ用意していただきます。
・発表は各言語順番に1つずつ行い、それぞれについて議論(雑談?) + 会場
からの意見を募集します。これを2周ぐらい回します。この議論に関しても
- 他の言語をけなしてはいけない
- 自分の言語のよりダメな部分を自慢するのが望ましい
というルールを設けます。
自虐ネタでも何でも、より多くのウケを取ってやるぜという、勇気ある発表内容を
お待ちしております。