ナレッジこんにちはー。今回は今勉強している"Python"というプログラミング言語を選んだわけとその他周辺ネタを触りつつ、自分へのメモ代わりに書いていこうと思います。Pythonって?そもそも"Python"は様々な分野で利用されている、汎用型スクリプトプログラミング言語です。そもそもプログラミング言語はテキストエディタに書けばすぐ実行できるスクリプト言語と、機械語に変換することで初めて発動するコンパイラ言語に分かれます。(難しいので詳細割愛)わたしは比較的学ぶのが簡易なスクリプト言語、かつWeb(サーバ)で使えてそれでいて汎用的な言語を探していました。日本ではRubyが流行っているためPythonは流行らなかったそうな。おかげで資料やQ&A探すのも一苦労。Pythonを選んだのか。Pythonこの3つはよく比べられていて、あるプログラマはこの3つをプログラマの3大美徳にたとえて比較しています。Python『Laziness(怠惰)』は、100回同じことを繰り返すくらいだったら、10の手間でプログラムを書いて簡単にすませてしまうというもの。この分野で一番強いのが、Perlだと思います。次が『Impatience(短気)』です。これは、要するにコンピュータが『短気』になるということ。『高速なCPUもっているのに何もしていないじゃないか』といわんばかりに、コンピュータもこき使う気性が一番マッチしているのが、現在だとRubyかなと思います。Rubyでは文字列とか数値ですとかが手元でガンガン拡張する流儀がある。そんなに待たずにできる。Railsも出てきて、Rubyはこれでブレイクしたわけです。『Hubris(傲慢)』とは『神罰が下るほどの過剰な自尊心』、そして『人様に対して恥ずかしくないプログラムを書き、また保守しようという気質』。これはやはりPythonでしょう」Pythonは傲慢な言語と彼は仰っていました。「人様に対して恥ずかしくないプログラム」というのがPythonのポリシーで、Pythonは基本的に(程度の差はあります)プログラミングのスキル次第でコードの長さが変わることはあまりないです。わたしが少しかじってみた感じ、Pythonはコードの長さよりも読みやすさを重視している感じがありました。正規表現なども一応ありますが、見やすさが犠牲になるくらいならわかり易く冗長に書いてみるほうがいい。いった特徴もあると思います。Pythonは読みやすさ-「可読性」を重視している言語なのです。その可読性の特徴にインデント下げによる見やすい表現技法があります。class(オブジェクト)などでは、行末に:をつけて、次の行からは8バイトインデントを開けて書かなければならないのです。それによるカッコなどは使わないため他言語よりカッコが少なくなり、インデント下げも加わり独特の見やすさを手にしたのです。(まぁでも関数やリスト、辞書などでカッコは使います。)その可読性はそのまま保守性にもつながります。保守性は作成したずっとあとで自分もしくは他人が見ても、コードの居場所がすぐにわかり、書き直しやすいことが重要です。Pythonは見易く、オブジェクト指向などにも対応していて、コメントもかなり推奨されているので比較的保守性も高いです。Pythonでは独自の思想をいつでもコマンド一つで見れるようになってます。"Zen"は日本の禅でPythonプログラマが持つべき心構えを簡潔にまとめています。醜いより美しいほうがいい。暗示するより明示するほうがいい。複雑であるよりは平易であるほうがいい。それでも、込み入っているよりは複雑であるほうがまし。ネストは浅いほうがいい。密集しているよりは隙間があるほうがいい。読みやすいことは善である。特殊であることはルールを破る理由にならない。実用性を求めると自然さが失われることがある。エラーは隠すな、無視するな。隠されているのなら見逃せ。曖昧なものに出逢ったら、その意味を適当に推測してはいけない。ひとつの冴えたやりかたがあるはずだ。そのやり方は一目見ただけではわかりにくいかもしれない。オランダ人にだけわかりやすいなんてこともあるかもしれない。やらないでいるよりは、今やれ。今"すぐ"にやるよりはやらないほうがマシなことが多い。コードの内容を説明するのが難しいのなら、それは悪い実装である。コードの内容を容易に説明できるのなら、おそらくそれはよい実装である。名前空間は優れたアイデアであるため、積極的に利用すべきである。この規約は、Pythonプログラマだけでなく、全プログラマが守るべきものなんじゃないかなと私は思います。PerlやRuby,PHPにもそれぞれいいところはありますが、Pythonは初めて学ぶ言語としては比較的学び易く、またプログラマとしての暗黙の規律、常識も理解できる言語なのではないかなと思っています。速さやコードの短さも大事ですが、わたしはそれよりも可読性のほうが大事だなと思っています。勉強中の身ですが、書いていてすごくシンプルで楽しいです。日本の資料や文献、などが他と比べて少ないのが残念です。日本でもこれから伸びてくるとは思うんですけどねー。ナレッジプロフィールMewW6m@meww6m3年目SEです。Web系を主軸に様々なことに挑戦してます。