Python for S60

Setupで書いたとおり、E61/N82のOSであるSymbian OS Series 60では公式の開発環境としてPython for S60が用意されている※1

※1 Python for S60は長らくPython 2.2ベースのPyS60 1.4.xだったが、2010年2月13日にPython for S60 2.0.0がリリースされPython 2.5.4が動くようになった。garage.maemo.orgからの配布だが、Forum Nokia内のアナウンスにはNokia signed PyS60 runtime sis which will work on S60 3rdEd, 3rdEdFP1, 3rdEdFP2 and 5thEd devices.などの記述もあり、公式リリースと見てよい。S60ライブラリも強化されている。messagingモジュールにmms_send()が追加されたのは一歩前進だ。PyS60 1.4.5ではsms_send()だけだったので潰しがきかなかったが、ファイルの添付ができるようになって、多少の応用も利く。まあ、Nokiaはすでに日本からは撤退してしまったのだが。

2.2? WMもLinuxも2.5が使えるのにS60では2.2だ。これは悲しい。だが堂々たる公式サポートでありOS依存のライブラリを持つ。Tkinterの ような汎用(WS向き)のモノを使わずに済み、 UIが自然になる(モバイル機器でウィンドウをタップなんて恐ろしいことにはならない)。生産性の高い開発環境と言えよう。そもそも生産性の高い開発環境 というのは馬鹿の一つ覚えのようにIDEを用意するのではなく生産性の高い言語と自由度は低いが簡単に使えるようになるパッケージ/インストーラ生成ツー ルを用意する方が素人にとっては嬉しい物だ。なんでもかんでもJavaでというのも能がない。Python for S60は十分な記述力を持ち、ensymble.pyと合わせればなかなか強力な開発環境となる。WSとしてMacを使っていればなおのことだ。

そうすると問題はライブラリだ。並べてみよう。

e32, sysinfo, appuifw, graphics, camera, keycapture, topwindow, gles, glcanvas, sensor, audio, telephone, messaging, inbox, location(for GSM), positioning, contacts, calendar, e32db, e32dbm

モジュール名だけ並べても、いかに強力かがわかる。OpenGLで描画ができるなど恐ろしいほどだ。E61ではsensorは無効だが audio.say(STRING)なんていうのもあって楽しい(だって喋るんだぜ!)。appuifwだけでもかなりの動作が可能。

Python 標準ライブラリとしては、

anydbm, atexit, base64, binascii, code, codecs, codeop, copy, copy_reg, cStringIO, errno, exceptions, __future__, httplib, imp, keyword, linecache, marshal, math, md5, mimetools, operator, os, os.path, quopri, random, re, repr, rfc822, select(minimal), socket, sre, string, StringIO, struct, sys, thread, time, traceback, types, urllib, urlparse, uu, warnings, whichdb, xreadlines, zipfile, zlib

結構しっかりしている。

そんなわけで、S60にはPythonアプリケーションもかなりある。しかもensymble.pyでsis形式にできるのでインストールも簡単で、実行速度以外はPython製を感じさせない。すばらしい。