私のPython事始

2007年5月25日 (金)

私はソフトウェア開発を生業としている。メインの開発言語はC++とJava。C++はWindowsのスタンドアローンアプリケーション開発、JavaはWebアプリケーション開発に使用している。

私は自分のソフト開発スピードは速い方だと思っている。数年前に一人で開発したJavaのWebアプリケーションの場合、空白・コメント込みのステップ数(プログラム行数)は、Javaが20万行、JSPが5万行であった。設計と総合テストは別にして、コーディングと単体テストに要した期間は約4ヶ月。それも他の仕事も行いながら、である。速いでしょ?このときはさすがに痩せたが。

その開発時、そのアプリ専用の基本ライブラリ(クラス)の作成に1ヶ月近くを要してしまった。またそのときはJavaのStrutsフレームワークを使用したがそれに対し若干の不満もあった。その経験から、もっと「お手軽」にWebアプリケーションを開発できる言語がないか、探し始めた。

「お手軽」とは言っても、オブジェクト指向であることと、実行速度がそれほど遅くないことが条件である。この条件に合致したのは、RubyとPythonの2言語であった。

早速入門書を買い求め、勉強した。私の視点での両言語の特徴は次のとおりであった。

  • Ruby
    1. オブジェクト指向言語である。
    2. 実行速度はそれほど速くない。
    3. 日本人が開発している言語なので日本語情報は多い。
    4. 日本語処理に問題はない。
    5. Webアプリ開発フレームワークとして”Ruby On Rails”が有力。これはRubyの世界的に有名なフレームワークである。
    6. 言語設計者は否定しているようだが、私の嫌いなPerl言語臭さが少し残っている。

  • Python
    1. オブジェクト指向的にも使用できる。完全なオブジェクト指向言語ではない。
    2. 実行速度は充分速い。事前に中間言語にコンパイルされているからである。
    3. 日本語情報はかなり少ない。この数ヶ月でやっと日本語書籍が出回るようになり、日本においては今年が「Python元年」のようである。
    4. 文字コードをutf-8にすれば日本語処理に問題はない。
    5. Webアプリ開発フレームワークとして”TurboGears”が有力。”Pylons”も可能性を秘めている。
    6. Perl臭さは無し。
    7. Googleが社内開発言語に採用した、ということで言語の将来性有り。

この各項目に点数を付けて合計すれば、Rubyの勝ちかもしれない。ただ私は、実行速度の観点と、なんとなく感じた言語との相性から、Pythonを採用した。

早速Pythonのテストプログラムを何本か書いてみた。最初はかなり不安になった。

「型の宣言無しで大丈夫なの?」

いままでC++,Javaのコンパイラに型の整合性チェックを任せていたので当然の不安である。型が無いPythonクラスはC++,Javaのテンプレートによるクラスと同じ、と思い込むことで型宣言無しを利点と考えるようにした。たとえば、Pythonでソート処理を書けば、C++のテンプレートでソート処理を書いたのと同等と見なせる。普通に何気なく書いたPythonクラスがいろいろ宣言して苦労して書いたC++のテンプレートクラスと同等とはスゴイ、と思うようにした、ということである。

そうこうするうちにPython的考え方に慣れ、型宣言の無いことに不安どころか何も感じなくなった。コンピュータ言語はその考え方に慣れれば習得は速い。ある程度Pythonに慣れたが、まだPythonオタク(Pythonist)には成れない。成りたくない!!その理由は、後日。

この記事のトラックバックURL:
http://www.momologue.net/archives/5/trackback/

コメント投稿

(承認制となっております。)


(必須)


(必須ですが表示されません)



コメント・トラックバック一覧(0)

この記事にはまだコメントがついていません。

 

QLOOK ANALYTICS