Pythonを選ぶ理由
これを書いた自分はPythonが本業ではなく、Pythonはあくまで仕事を効率化するための小道具としての利用。
このような目的の場合、やりたいことを、手早く簡単に実現できることが重要。
特に、以下No.1またはNo.2の用途であれば、個人的にはPython一択。
No | 用途 | Python以外の手段 | 選択 |
---|---|---|---|
1 | テキストデータの整形、変換、データ取り込み、グラフ化 | 手作業、エディタのマクロ機能 | Python一択 |
2 | Windowsで動作する簡単なGUIアプリケーションの作成 | C# Windows.Forms/C言語 Win32 | Python一択 |
3 | Excelの自動操縦 | Excel VBA | 基本はExcel VBA |
4 | C言語で作られたDLLの呼び出し | 普通にC言語で呼び出す | 基本はDLLと同じ言語 |
No.3やNo.4の場合、Pythonの豊富なライブラリと連携することで、できることの可能性が広がる。
逆にその必要が無くコーディング規模も小さければ、従来の手段が無難。
Pythonの生産性が高い理由
主に以下の3つ。
- 直感を裏切らない、一貫した文法
- 公式ドキュメントが非常に充実しており、学ぶべきことは公式で完結
- 豊富な標準ライブラリとパッケージ
Pythonは学習コストが低いだけでなく、学習した成果を再利用するコストが低い。
コーディング時にドキュメントを見返す必要があまりないのが、非常に大きい。
GUIアプリケーションの補足
ここでは詳細を説明しないが、Pythonの標準GUIインターフェースであるtkinterが無難。
公式ドキュメントからもリンクされているTkDocsが、tkinterに関する事実上の公式ドキュメント。
また、PyInstallerで1つのexeファイルにできるので、Python環境が無いマシン向けに配布することができる。
exe化のデメリットとして、ファイルサイズが最低5MB程度になり、起動時にウィンドウが出るまで数秒のラグがある。ただし現在のPC環境で5MB程度はさほど問題にならない。起動時のウィンドウが出るまでの時間も、PyInstallerにスプラッシュ画像を表示させる機能がある。(2021年7月~)
Excel自動操縦の補足
ここでは詳細を説明しないが、pywin32パッケージを使用する。ネット上に情報も多い。
DLL呼び出しの補足
ここでは詳細を説明しないが、ctypesを利用する。多少学習コストが必要なので、初心者向きとは言えない。
また32bitでコンパイルされたDLLを呼び出すには、32bit版のPython実行環境をインストールしている必要があることにも注意。