パーフェクトPythonとパーフェクトRubyを読んでいる
最近研究が進んでいない。なので、逃避行動としてプログラミングの勉強をしている。
今日はパーフェクトPythonを読んだ。Python3.3がようやく普及してきて、NumpyやScipyなど人気のライブラリが3.3に対応していることなどを知った。
動く小説投稿サイトDenkinovelなどはRubyで書いてるのだけど、高速計算を伴う研究にはPythonが向いている。NumpyとScipyのおかげだ。研究に使うという目的以外にも、Pythonを学んだことで得たものがある。
Pythonのおかげで、プログラミングの基礎を学ぶことができた。たとえば、式(Expression)と文(Satement)の違いをいままで僕はわかっていなかった。Rubyは文にも返り値があるので、式と文を混在させていてもなんとなく書けてしまう。
またオブジェクト指向プログラミングとはどういうものか、ある程度わかってきた。Rubyを知っているだけだと、果たして自分が今書いているコードがオブジェクト指向的なやりかたに則っているのか確信を持てなかったりする。というか、Railsばかり使っているので、Railsの流儀が客観的にみてどの位置にあるのか、遠い視野で理解する機会がなかった。
その点Pythonは変数ひとつひとつの意味の理解を誘導する言語なので、自分の書いた文字がどんな働きをしているのか把握しながら書き進めることになる。あと、Flaskというマイクロフレームワークを使っているのでコードの処理に直接肌に触れながら歩んでいけていることも、理解を促す一助になっている。
日本語の資料が少ないことさえなんとか解決すれば、プログラミング初心者が最初に触れる言語としてPythonは最適だと思う。ルールに従って書けばインデントの揃った読みやすいコードになるし、PEP8のようなガイドもある。Sublime textにSublimeRopeとPep8Lintを入れれば無駄な落とし穴を防いだうえで読みやすいコードを身につけやすい。