Learning Pythonを読む

Learning Pythonを読む
2021/09/29

 マーク・ルッツ著"Learning Python 5th Edition"を一昨日からざっと読みました。 『はじめてのPerl』がなかなかよかったので、やはり最初に読む本はオライリーのものにしようと思ったわけです。 2013年の出版でやや年数がたっているのと1500頁を超える分量が不安でしたが、今年になってもいろいろと本文の校正は行われ、プログラム本の頁数は実際ほどのものでないとも感じていたからです。


ハイテク企業に広く使われている Python

 第1章にありますが、現在自社で Python を使っているのは Google, YouTube, Dropbox, Raspberry Pi, iRobot, Netflix, Intel, Cisco, IBM, JPMorgan, NASA など数限りないことに驚きました。 Google が社を挙げて Python を取り入れているというのは仄聞していましたが、YouTube や Instagram、Dropbox も Python でできた Web アプリらしいですね。 こうなるとアメリカのハイテク企業を Python が席巻しているといってもよさそうです。 さらに読み進めると、その言語構造が Javascript にかなりよく似ているのに驚きました。 特に、リストの書き方、リストのコピーが値渡しでなく、参照渡しになっている点など。

あまりに長文なので流し読みする

 先ほども述べましたが、さすがに英語版1500頁を2日では読めないので、あちこち読み飛ばした部分があります。 特にイテレータが出るあたりから、最後の、例外処理、Unicode、属性処理、デコレータ、メタクラスまでは全くの流し読みです。 それで感じたのは、Python は最近の言語動向を取り入れて拡張を続け、これをマスターすれば他言語はいらないとも思えるようなものになっているということです。

Python の言語としての特徴と短所

 ただ最終章で作者も言うように、シンプルな読みやすさを目指した部分(例えば {} を使わず、インデントだけで階層を表現するようにしたところ)と、やみくもに現代的動向を取り入れた部分がマッチしていないきらいはあります。 初期Perl 同様、変数の型宣言のみならずスコープの指定もしないという志は非常に好感が持てるのですが、その一方、3行を1行ですませるアクロバティックな記法を許したりしているのです(まあPerlよりは読みやすい気もしますが……)。

 ともかく、Python はディープラーニングをはじめ、様々な周辺ツールとの協業ができる母体となっているので、もう少しお勉強して、JS 将棋も Python で書いて、ネット上のみならず、Windows や Mac でも動く実行版も作れるかなと思ったりしてます。 そうすれば時間制限などあまり考えなくてもいいですし(後日実現)。

※冒頭の写真はLearning Python(Kindle版)の表紙です。

コメント  記事が気に入ったらいいねしてね! 0  4  

Facebookシェア   
Python の for ループは遅く、内包表記や numpy で高速化可能。Pypy では内包表記、Python3 では numpy が効果的。GPU利用の cupy は別格で大幅高速化が可能だが、CPU とのデータやり取りで減速する場合もある...
JS詰将棋を Perl から Python へ移植し速度差を検証。CPython は Perl より遅く、PyPy でも大差なし。Python は可読性や拡張性に優れるが型変換やスコープ管理が煩雑で、文字列処理では Perl の利便性を再認識...
オライリー本「Learning Python」を流し読みし、Pythonの構造や多機能性、主要企業での採用状況に感銘。JSに似た特徴や最新機能を学んだ...