Pythonはじめました

前々から使ってみたいとは思っていたのですが、この度少し生活に隙が出来たため諸々のプログラミング系書籍と一緒に入門書を購入して来ました。

Pythonチュートリアル 第2版

Pythonチュートリアル 第2版

Python導入の書籍として選んだのは、恐らく最も鉄板であろうPythonチュートリアルです。

Pythonの作者であるGuido van Rossumが著しただけあって、抜群の安定感です。
重そうな箇所を流し見で済ませれば、1日で読了出来る軽さも中々魅力的です。

入門書を読んでウキウキしたのは割と久しぶりかもしれません。
某キリンさんの本とかはあまり自分に合わなかった。


なんでPythonかっていうのは、まぁ色々あります。
今ぱっと浮かんだ点としては、

  • インデントに価値を持たせる設計
  • Google先生が主力で使ってる
  • UnityにPythonライクなBooという言語がある
  • PHPがきらい
  • Rubyがきらい

etc......

インデントの話は恐らく誰もが知っているであろうことなので特に書くことはありません。
コーディング規約なんかで述べられる最も基本的なルールの代表格であるインデントですが、実質的に順守していないコードなど生成しないにも関わらず、それら自体が意味を持たないというのは少し勿体無い気がします。
そういうわけで自分としては、Pythonのインデントによるブロック分けを支持したいと考えています。

Google先生もまぁ、大した理由ではないのでいいです。

UnityのBoo言語について。
自分としてはC#は割と好きな言語なので(深く扱っていないので雰囲気だけですが)わざわざBooを使う必要もないのですが、Pythonが保守性に優れているコードを生成出来るであろうことは間違いないと思うので、どうせならPythonやってUnityで書くのもBooに統一しちゃえば良いじゃん!みたいな理由です。
ただまあBooはPythonと違って静的言語なので、その辺りは実際に使ってみないと何とも言えないかもしれないですね。
メソッド定義やらコンストラクタやらもPythonとは異なるので、厳密には差異がかなりあるようですし。

private some_var as int

この記法に耐えられれば勝利でしょうか。


そして多分これが一番大きな理由なんですが、PHPおよびRubyが書きたくないのです。

PHPは言わずもがな、Rubyは根底にある思想が好きになれません。
Web界隈で熟練したプログラマPerlを使う人が多いと思いますが、RubyPerlリスペクトな言語ですよね。
すなわち、
There's More Than One Way To Do It.
の思想が言語の根底にあるわけです。

これは個人的に非常に気に入りません。
実装法なんて一つあれば十分で、原則的には誰が読んでも誰が書いても同じ結果が導き出される言語のほうが圧倒的に保守性が高いと思うからです。
というわけなので、RubyとまぁPerlも正直あまり書きたいとは思わない言語の筆頭なわけです。


PYPLによると2014 / 6月現在でPythonのシェアは4位と、スクリプト言語の中ではPHPに次いで人気があります。
f:id:taka_say:20140629090504j:plain
PYPL PopularitY of Programming Language index - pyDatalog

PHPは……まぁいいでしょう。
この言語を仕事以外で扱いたい人がいるならば、感動で咽び泣いてしまいそうです。

とはいうものの、日本でのPython普及率はどうかというと、サッパリと言わざるをえないのが現状だと思います。
国内に限定するならば、Rubyよりも仕事が無いと言われていますね。
Web界隈で利用されるために必須なフレームワークも、スタンダードと呼べるほどのものがあるとは言えません。
代表的なのはDjango, Flask辺りでしょうが、決定打にはなっていませんね。
Pyramidなどの新鋭も出ているようなので、スタンダードなフレームワークがいつどれに決まって来るのか見通しも立てづらいようです。

個人的にRoRは好きです。
非常に高機能なくせに、何というか感覚的に馴染みやすいから。
何度車両に轢き殺されたかは分かりませんが、それでもRoRは好きです。

PythonにもPHPでいうCakeみたいなのが出てくれれば嬉しいなあと思うんですが、どうもCakeの人気低迷っぷりを見るに、海外ではあまりこの系統の思想は気に入られてないみたいですね。

まぁ自分も他のフレームワークをそこまで触ったことはないのでなんとも言えないのですが。


ともかく!主言語をPythonにすべく色々コード書いたりフレームワーク試したり、ゲーム作ったりしていきたいと思います!

There's Only One Way To Do It !

PEP 20 -- The Zen of Python