5年振りの改訂
2024年2月16日に秀和システムから『Pythonプロフェッショナルプログラミング 第4版』が発売される。
今回、第1章「Pythonをはじめよう」を書いた。 書いた、と書いたものの、「Pythonをはじめよう」は初版から存在する章であり、書いたというより改訂したの方が適切である。 しかし、5年という月日の経過を感じる改訂になっている。 せっかくなので、初版から第4版までの第1章「Pythonをはじめよう」を比較してみる。
目次の変遷
初版の「Pythonをはじめよう」
Chapter 01 Pythonをはじめよう 01-01 Pythonのセットアップ 01-01-01 aptパッケージのインストール 01-01-02 easy_installとpip 01-01-03 virtualenvのインストール 01-01-04 複数バージョンのPythonの使用 01-02 Mercurialのセットアップ 01-02-01 Mercurialの概要 01-02-02 Mercurialのインストール 01-02-03 リポジトリの作成 01-02-04 ファイルの操作 01-03 エディタと開発に便利なツール 01-03-01 エディタ 01-03-02 Python開発Tips 01-04 まとめ
第2版の「Pythonをはじめよう」
Chapter 01 Pythonをはじめよう 01-01 Pythonのセットアップ 01-01-01 debパッケージのインストール 01-01-02 サードパーティ製パッケージのインストール 01-01-03 virtualenvの使い方 01-01-04 複数バージョンのPythonの使用 01-02 Mercurialのセットアップ 01-02-01 Mercurialの概要 01-02-02 Mercurialのインストール 01-02-03 リポジトリの作成 01-02-04 ファイルの操作 01-03 エディタと開発に便利なツール 01-03-01 エディタ 01-03-02 開発に便利なツール 01-04 まとめ
第3版の「Pythonをはじめよう」
Chapter 01 Pythonをはじめよう 01-01 Pythonのセットアップ 01-01-01 debパッケージの更新 01-01-02 Python 3.6のインストール 01-01-03 パッケージ管理ツール(pip) 01-01-04 Python仮想環境の作成(venv) 01-01-05 複数バージョンのPythonの使用 01-02 Gitのセットアップ 01-02-01 Gitの概要 01-02-02 Gitの確認 01-02-03 リポジトリーの作成 01-02-04 ファイルの操作 01-03 エディターと開発に便利なツール 01-03-01 エディター 01-03-02 開発に便利なツール 01-04 まとめ
第4版の「Pythonをはじめよう」
Chapter 01 Pythonをはじめよう 01-01 Pythonのセットアップ 01-01-01 Dockerイメージの選択 01-01-02 Dockerコンテナの起動 01-01-03 パッケージ管理ツール(pip) 01-02 Gitのセットアップ 01-02-01 Gitの概要 01-02-02 Gitのインストール 01-02-03 Gitの動作確認 01-02-04 Gitの環境設定 01-02-05 リポジトリの作成 01-02-06 ファイルの操作 01-03 エディターと開発ツールのセットアップ 01-03-01 エディター 01-03-02 開発に便利なツール 01-04 まとめ
変遷その1:仮想マシンからDockerへ
過去の「Pythonをはじめよう」ではVirtualBox上の仮想マシンでDebianまたはUbuntuを立てて、その内部でapt乃至debでPythonを導入している。 今回の第4版ではDockerイメージをベースにPythonを導入する流れを取った。 ただ単にPythonを導入するだけならばやや大げさというか、Dockerというレイヤーを加える必然性はないのだが、 この本はプログラミング言語Pythonの本ではなく、Pythonを使ってチームで開発するための本である。 Dockerで統一した開発環境を揃えるのは非常に有効である。
変遷その2:パッケージインストーラおよび仮想環境の変遷
初版ではまだeasy_installが現役であった。 僕もPythonを始めたころには既にeasy_installはpipを入れるためのツールとなっていた。 第2版まではvirtualenvを使い、第3版では標準であるvenvで仮想環境を切る流れである。 今回の第4版はDocker環境なのでvenvは使わず、コンテナ単位で環境を切っている。
変遷その3:バージョン管理
以前、僕はバージョン管理がない地獄で働いたことがあり、自分だけでGitを使っていた。 勝手な想像だが、PythonコミュニティだとMercurialを使っていた人が多く、現在でもプロジェクトによってはMercurialを使っているケースもあると思う。 第3版以降、MercurialからGitになった。 第4版も引き続きGitである。 注意深く読まないと第3版との違いがわからないが、コマンド例は最新のコマンドを使うように更新されている。
変遷その4:ツール周り
第3版ではエディタについて細かく書かれていたが、第4版では個人で好きなエディタを使えばいいでしょう、という考えから記述を削った。 お金をかけずに手早く始めるならVSCodeが一番良い選択だと思われる。 僕はPyCharmの有料版を使っているが、どこまで使いこなしているかは謎である。 ツールもBlackとRuffという組み合わせは思い切った記述であると感じている。 個人的にはRuffは時期尚早ではないか、と考えていたがそうではなかったらしい。 mypyをはじめとする型ヒント系のツールも一般化しつつある。 ツール周りの個別記事は浅めであるが、これはポインタであると理解していただきたい。 こういう便利なツールがありますよ、ということを知ってもらう程度でまずは十分である。
そして変遷は続く
Dockerの初期設定周りは「Docker init」を使うと便利になるかもしれない。
パッケージ管理ツールもRust製のツールが増え、その内いずれかがデファクトになるのかもしれない。
我々に必要なのはCargoのような言語標準のパッケージツールなのだろう。
最後に
なるべくコンパクトになるように改訂したつもりである。 『Pythonプロフェッショナルプログラミング 第4版』はPythonを使ってチームで開発するために読む本であり、Python言語そのものにはそこまで触れていない。 つまり、Python言語そのものはある程度分かっている、またはキャッチアップできる前提で書いてあるため、以下のような本で補う必要がある。 なお、いずれも僕が翻訳・監訳した本である。
『Pythonプロフェッショナルプログラミング 第4版』はこれらの先に位置する本である。 チームでソフトウェアを開発する方は是非とも手に取って読んで欲しい。 少なくとも、どのように開発を進めるのかの議論のベースとなるだろう。