1 Pythonとは
1.1 Pythonとは
Pythonとは、Guido van Rossum氏が開発したフリーのプログラミング言語で、オブジェクト指向をサポートするスクリプト言語です。最近では軽量プログラミング言語(Lightweight Language,LL)の一つとして、Perl、PHP、Ruby、JavaScriptと共にカテゴライズされることが多いのですが、これらの言語に比べて日本では今ひとつ知名度が低いため、名前は聞いたことあるけどよく知らないという場合がよくあります。
とはいえ、開発者のGuido van Rossum氏がGoogleに勤務していることもあり、Google App Engine(GAE)でサポートされた最初の言語となったことから、ある書籍では「Google言語」とも呼ばれ、注目度が上がってきていることも事実です。そもそも海外では、Pythonは人気のプログラミング言語の一つでもあります。
1.2 Pythonの特徴
Pythonの特徴を下記に示します。Pythonを学んでいくうちに、これらの特徴がいかに強力で、目的を達成するために無駄な実装をせずに済むかがわかってくることでしょう。
- 言語自体の機能を最小限に抑えたシンプルな言語仕様
- インデントによるブロック表現
- ドキュメントの一体化
(DocString-ドキュメント文字列の存在) - 型の宣言がない
- 自動的なメモリー管理
- 高水準のデータ型と操作
- オブジェクト指向言語と関数型言語の良いとこ取り
- 汎用のファーストクラスオブジェクトモデル
- C/C++による組み込みと拡張
- クラス、モジュール、例外処理のサポート
- バッテリー同梱 (batteries included) 哲学
(標準ライブラリが非常に充実している) - オープンソース
- クロスプラットフォーム(Windows/Unix/Linux/Mac)
1.3 Pythonの種類
Python(インタプリタ)には、いくつかの種類がありますが、主に利用されるのは下記の三つです。
Python(CPython)
オリジナルのCで書かれたバージョンです。通常「Python」といえばこのCPythonを指しますが、下記二つと比較してCPythonと呼ぶことがあります。
Jython
JVM(Java仮想マシン)上に移植したものです。Javaのライブラリを使うことができるため、自作したクラスのテストやJavaで開発したツールへの組み込み等をする際に便利です。
IronPython
.NET Frameworkで動作するPythonです。.NET Frameworkのライブラリを使うことができるため、Jythonと同様、.NET Frameworkとの連携時に便利です。
1.4 Pythonのバージョン
これを執筆している時点(2009年8月)において、私が利用をお勧めするバージョンは2.5.Xです。
最新バージョンは、3.1で、通常アプリケーションやランタイムをインストールする際は最新バージョンを入れておけばよいことが多いのですが、Pythonは、バージョン2系から3系の変更が後方互換性を崩す非常に大きなものであったため、サードパーティー製のライブラリ等の対応がまだできておらず、利用するのは得策ではありません。
もちろん、学習目的に3系を入れるのはアリですし、どのような変更が行われたかは知っておくべきですが、実際に今、開発サーバとしているLinuxでスクリプトを動かしたいなど、実用を考えているのであれば、3系への移行を踏まえつつ、2.5で動作する実装をするのがベターと言えるでしょう。なお、実際に移行するとなった場合は、移行ツール(もちろんPythonスクリプト)が提供されているので、これを利用し、機械的に修正できないものを手動で修正するという手順になると思います。
上述の経緯については、下記@ITの記事が参考になりますので、一読されることをお勧め致します。
Python2.6,2.7系について
Pythonには2.6系という3系への移行準備バージョンが存在し、また、3.1系に実装された機能をバックポートした2.7系があり、これが2系における最終のバージョンとなります。それでは、なぜ私が2.6/2.7系ではなく、2.5系をお勧めしているかというと、2.6より、Python自体のコンパイラが変更されているからです。
私が2.5から2.6へ移行して問題となったケースとしては、py2exeというPythonスクリプトを実行ファイルへ変換するライブラリを使用していたときのことです。このライブラリを利用して、Pythonをインストールしていない人にPythonで開発した自作ツールを渡したところ、C++の新しいランタイム(Microsoft Visual C++ 2008 再頒布可能パッケージ)がインストールされていない環境では動作せず、別途MSのサイトからインストールしなければならなくなりました。これでは、せっかくPythonがインストールされていない環境へ配布するという目的を達成できなくなるため、2.5へバージョンを戻したことがありました。
もちろん、2.6ではmultiprocessingという並列処理が可能なライブラリやJSONを扱うライブラリの追加という魅力はあるのですが、これらは2.5でも動作するようにバックポートされており、別途インストールも可能なため、ここでは2.5系をお勧めすることにしました。なお、自分以外の環境で動かす必要がない場合は、2.7系最新版で問題ないと思います。(2011/09/13追記)
1.5 Pythonistaって?
ネットでPythonの記事を見ていると出てくるのが「Pythonista(ぱいそにすた)」という言葉です。これは言ってしまえば、Pythonを好んで使う人、とか愛好者という意味で、同様にRuby愛好者を「Rubyst(るびいすと)」、Perl愛好者を「Perler(ぱーらー)」と呼んでいたりします。
こういう言葉って、知ってしまえばどうということはないのですが、コミュニティで使われて定着したりしているので、入門者には?な感じなことが多いので、一応解説してみました。
ちなみに、Pyhonistaと同じように、「これはPythonらしい実装だよね」というのを「これはPythonicだね」なんて言うこともあります。





