IronPython だ。
とにかくまずはダウンロード。
http://www.gotdotnet.com/workspaces/workspace.aspx?id=ad7acff7-ab1e-4bcb-99c0-57ac5a3a9742
解凍して適当なフォルダに入れるだけでインストール完了だ。
Python の説明は不要だろう。IronPython はその .NET 版だ。何が凄いって Python から .NET Framework クラスライブラリが簡単に使えるのだ。
Python には「対話型プロンプト」というものがあり、IronPython にも用意されている。対話型プロンプトはコマンドラインで次々に実行結果を確認できる環境だ。まずは対話型プロンプトで IronPython と遊んでみよう。
解凍したフォルダにある「IronPythonConsole.exe」を実行する。
実行すると、下記のようなメッセージが表示される。表示されているのは、IronPython のバージョンと対応する .NET のバージョンだ。つまり、実行には .NET Framework 2.0 が必要だということだ。まだ .NET Framework 2.0 をインストールしてないければ、IronPython のためにインストールしよう。
IronPython 1.0.60420 (Beta) on .NET 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.
>>>
「>>>」に続けて、IronPtyhon のコードを書く。Enter を押すとその結果が次の行に表示される。
最初の IronPython のコードだ。
>>> print "Hello IronPtyhon!"
"Hello IronPtyhon!"
あまりにつまらないので、もう少し凝った例を。
>>> print 1 + 1
2
さらに凝る。
>>> def pow( x, y ):
… return x ** y
…
>>> print pow( 2, 2 )
4
>>> print pow( 4, 2 )
16
べき乗を計算する pow という関数を定義し、それを使った例だ(Python にはべき乗の演算子があるから無駄だが)。
return x ** y の行頭にはスペースかタブで字下げを行う必要がある。Python という言語は「字下げ」でブロックを表現するのだ。つまり「字下げ」は強制だ。そうする事によって、誰が書いても同じフォーマットになる。
Python は C# 等と違い、「ダイナミックな型付け言語」だ。変数を宣言するときに、型を明示する必要がない。というかできない。それが Python を簡単に扱える要因の一つだ。
ここまでは、普通の Python でもできる。では、IronPython の機能を使っていこう。
>>> import System
>>> print System.Math.PI
3.14159265359
ドキュメントによると import System で System 名前空間をインポートするという意味らしい。後々の記事で述べたいが、これは少々おかしい。別の意味で考えないと納得できない。まぁとにかく今のところは難しく考えないようにしよう。
とにかく、これで「パイ」を表示するのも簡単だ。
Python では次のように書けない。Python の import は、C# の using や Visual Basic の import とは違う。あくまで「モジュールを使う」という宣言だ。.NET の場合はモジュールではなく名前空間だが。
>>> import System
>>> print Math.PI
Traceback (most recent call last):
File , line 0, in input##5
NameError: name 'Math' not defined
次のように書くと、System を省く事ができる。System 以下を全て import するという意味だ。
>>> from System import *
>>> print Math.PI
3.14159265359
さらに面白い事に IronPtyhon は次の様な事もできる。当然、static な要素のみできる事だ。
>>> from System.Math import *
>>> print PI
3.14159265359
IronPython の触りだけ述べたが、少しは魅力が伝わったと思う。Windows フォームのアプリケーションも IronPtyhon で書く事ができるが、個人的にはそれは意味がない事だと思う。Windows フォームのアプリケーションが作りたければ、C# や Visual Basic 等、向いている言語で作ればよいのだ。
IronPython のソースコードは事前コンパイルの必要がないし、対話型プロンプトを使えば、ソースコードを作る必要すらない。IronPython はもっとお手軽に使いたい。例えば、ハイパーボリックタンジェントを求める事は日常茶飯事だと思うが、IronPythonConsole を使えば数秒で求められる。