Scribble at 2023-04-28 13:41:05 Last modified: unmodified

添付画像

Programming Python

本書は O'Reilly から出ている大部の本でも UNIX Power Tools や Linux のドライバの本に匹敵する、約1,500ページの大著である。僕が所持している第3版は2007年に出ていて、ちょうど僕が東京へ毎週のように行っていたときに新刊として購入したものだ。オアゾの丸善から大阪の自宅まで、こんなものを持ち帰るサラリーマンもそういないと思うが、当時はいまよりも他の(つまり、それぞれ5年以上の開発実績がある Perl や PHP とは別の)開発言語に関心をもっていたわけである。

それから15年以上が経過して、再び Python の復習に時間を使っておこうというのが本年の課題の一つだ。もちろん、ここ最近のトレンドがあって Python を使ったサービスなりアプリケーションが増えているというのも動機づけの一つにはなっている。50代の爺さんとしては手習い程度のことしかできないとは思うが、たぶん大多数の若者よりははるかにまともなことができるという程度の自負はあるので(実際、もう10年以上は前の話で NDA も無効になってるから書くが、日本テレビと電通の案件で NTTDATA の音楽データベースを検索するガラケー対応のサービスを Python で実装したこともある)、現在も道具として使って成果が出せたらいいなとは思っている。

さて、そのために先日の落書きでご紹介した Python Essential Reference を読んでいるのだが、それの副読本というには巨大すぎるものの、Mark Lutz の本書も参考にしようと思って、いま会社にあるからパラパラと眺めているところだ。でも、本当に手に取って読んだことがある人なら分かってると思うが、本書は Python の入門書としてご紹介するようなものではない。標準的なプログラミング言語の仕様の説明という、或る程度は型のように決まっているスタイルとはぜんぜん違うからだ。かといって、サンプルの何かを作ってみる道すがらに言語仕様を少しずつ説明するという、僕はよくないと思っているのだが、そういうスタイルの解説なのかというと、そうでもない。なにせ、100ページも進まない間にシステム・プログラミング(シェル・コマンドの実行など)の説明が始まるからだ。これは恐らく、Linux のまともなエンジニアなら知っているように、実は Python は Linux の色々なツールの実行をサポートしているからなのかもしれない(実際、Linux から python の処理系を無暗に削除すると、幾つかのコマンドが使えなくなる)。

そういうわけで、本書は考え方とかコーディング・スタイルの参考にはなっても、Python の言語仕様を学ぶには記述内容が散漫で厳密さにも欠けているため、これだけの大著でありながら奇妙なことだが、Python の言語仕様について進んだ知識を得たい方には全くお勧めできない。それに、本書でかなりの割合を占めている GUI プログラミングなんて、ウェブのエンジニアである僕らには縁遠い話である。もちろん、どうでもいいとは思わないが(Windows の互換シェルに関連して Visual Studio を使っていた頃は、僕も GUI シェルのプログラミングについて少しは学んだことがある)、ウェブ・アプリケーションの開発に従事してきた経歴で GUI プログラミングに関わった機会はゼロであり、その手の知識は全く不要である。それに、2007年に出版されたという決定的な制約があるために、いまでは全く当てにならないことも多い。たとえば、驚くべきことに1,500ページにもなる本書には、例外処理について章立てした解説が全くないのだ(言及はされているし、コードの事例もわずかにあるが)。よって、Python 3.x 系統で学び始めた方にはぜんぜん勧められない。読み方、つまり何を過去の記述として保留するべきかという勘やら経験のようなものを持っていない、現在の初心者は手を付けるべきではない。さっさと去年から今年にかけて出版された手軽なテキストを数時間で通読し、ローカルにウェブ・サーバを立ててコードを動かしてみるべきだ(Python の処理系だけ入れてインタープリタか PowerShell で動かすだけという使い方は融通が利かないので、お勧めしない)。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook