読者です 読者をやめる 読者になる 読者になる

或阿呆のブログ

Pythonを好んで使っているプログラマです。Ruby,Perl,PowerShell,VBAなどでもたまに書いています。おバカなことが大好きです。

Pythonプログラマから見て、Rubyって羨ましいなと思うところ。 #Python #Ruby

Python

Rubyに鞍替えすればいいじゃん?!という話なんだけど、Pythonのスタイルとかツールとかを気に入っちゃってるし、Rubyを使ってみてもいまいち好きになれなかったので、鞍替えはしない。

Rubyの書籍って、方法論とか実践系の書籍があるからいいよね。

例えば、Rubyには、リファクタリングに焦点を併せた書籍がある。リファクタリングの概念もわかるし、Pythonの書き方もわかる。だけど、いざ、自分のコードのリファクタリングをしようっていうときに、どこをどう直して良いかわからないのだよね・・・。こういうの、Pythonにも欲しいよね。Rubyって羨ましいよなぁ。

リファクタリングRuby―実践ワークブック
ウィリアム・C. ウェイク ケヴィン ラザフォード
ピアソン桐原
売り上げランキング: 253,729

リファクタリング:Rubyエディション
Jay Fields Shane Harvie Martin Fowler Kent Beck
アスキー・メディアワークス
売り上げランキング: 97,362

Rubyには、デザインパターンに焦点を当てた書籍もある。デザインパターンといえばGoF(wikipedia:ギャング・オブ・フォー_(情報工学))が有名だけれども、あれってC++とかJavaを使っている前提のデザインパターンだから、言語によってはそんなデザインパターンいらねぇよという話になる場合がある。なので、言語に特化したデザインパターンの書籍ってあると便利。Pythonにもこういうのが欲しいよね。Rubyって羨ましいよなぁ。

Rubyによるデザインパターン
Russ Olsen ラス・オルセン
ピアソン桐原
売り上げランキング: 59,411


Rubyって羨ましいよなぁと、そんなときに思う。

更新1

エキスパートPythonプログラミングの第14章でデザインパターンについて言及されているのだけれども、GoFデザインパターン23のうち、以下の7つしか取り上げられていません。

  • Singletonパターン
  • Adapterパターン
  • Proxyパターン
  • Facadeパターン
  • Observerパターン
  • Visitorパターン
  • Templateパターン

著者曰く、

Pythonにおいて特に有益なパターンや、話題として興味深いパターンをいくつか取り上げます。

らしいです。

逆に言えば、他はあんまり有益じゃない、興味深くないということになりましょうかね。

デザインパターンは、

一部のデザインパターンは、プログラミング言語(例: Java, C++)の機能の欠損の印であると主張されることがある。計算機科学者のピーター・ノーヴィグは、GoFによるデザインパターン本の23パターンのうち16パターンは、言語によるサポートによって単純化または除去できることをLispやDylanを用いて実演した。

などと批判されることもある。Pythonでは不要なデザインパターンももちろんあるだろう。

Pythonのクックブックや、プラクティスや、実アプリのソースコードを見て、演繹的にデザインパターン*1にするにもいいけど、JavaとかRubyで出ているようなデザインパターンの書籍みたいなものが、Pythonにも欲しいですねぇ。

なんで、Pythonにはそういう書籍が無いの?その理由は、

  • コミュニティの規模が小さい
  • デザインパターンをそれほど重要視していない
  • 書籍のニーズが少ない

などいろいろ考えられる。

id:doloopwhileさんの、
http://d.hatena.ne.jp/doloopwhile/20110207/1297068455
は大いに参考になりました。

*1:上手い書き方程度にしかならないかも。