2007年4月17日、、IronPythonプロジェクトはバージョン1.1 をリリースした。このバージョンでは、いくつかのバグフィックスと次のような細かな機能の追加が行われている。

  • array、SHA、MD5の新しいモジュールの追加
  • XML DOCサポートの追加
  • プレコンパイルモジュールのキャッシュ機能追加

例えば、MD5モジュールは、バージョン1.0.1では次のように呼び出しすらかなわなかった。

$ ipy
IronPython 1.0 (1.0.61005.1977) on .NET 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.
>>> import md5
Traceback (most recent call last):
  File , line 0, in <stdin>##9
  File , line 0, in __import__##4
ImportError: No module named md5

これに対して、バージョン1.1以降では以下のように呼び出せるようになった。

$ ipy
IronPython 1.1 (1.1) on .NET 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.
>>> import md5
>>> m = md5.new()
>>> m.update("IronPython")
>>> m.digest()
u'4*w\x83\xd6\xe4\xad\xb6^J2~\xc8\x94#Y'

XML DOCサポートでは、ヘルプシステムの改善が見られる。System.Math.Sin関数の説明を呼び出す例を比較する。

まず、1.0.1の場合。

$ ipy
IronPython 1.0 (1.0.61005.1977) on .NET 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.
>>> import System
>>> help(System.Math.Sin)
Help on built-in function Sin

 | Sin(...)
 | float Sin(float a)

次に、1.1の場合。

$ ipy
IronPython 1.1 (1.1) on .NET 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.
>>> import System
>>> help(System.Math.Sin)
Help on built-in function Sin

  | Sin(...)
  | float Sin(float a)
  |
  | 指定された角度のサインを返します。
  | a: ラジアンで計測した角度。
  |
  | Returns: a のサイン。a が
  | System.Double.NaN、System.Double.NegativeInfinity、S
  | ystem.Double.PositiveInfinity のいずれかに等しい場合、このメソッドは
  | System.Double.NaN を返します。
  |
  |

ご覧の通り、非常に分かりやすい説明が行われることが分かる。これなら、IronPythonインタプリタ上で.NETライブラリのテスト呼び出しを行う際、いちいち大きなヘルプシステムを開く必要もないだろう。

IronPythonを飼ってみよう!

駆け足の説明となったが、IronPythonの面白さが少しは伝わっただろうか? 普段他の言語を操っており、Pythonになじみのない方には、括弧やbegin~endのないインデントだけの言語というイメージしかないかもしれない。しかし、IronPython(すなわちPython)には、他の言語にはない特色があることも感じ取っていただけたら、幸いである。