ニシキヘビ もっとPython

Pythonはパイソンと読みます。ニシキヘビの意味ですが、Tclと同じスクリプト言語です。

Python vs. Tcl

Tkを使った簡単なスクリプトを作成して、PythonTcl を比べてみました。

ボタン ←「こんにちは」ボタンを押すと終了します。

Python/Tkinter
# hello.py

#import sys, Tkinter
from Tkinter import *

root = Tk()

button = Button(root, text=unicode("こんにちは", "mbcs"), command=sys.exit)
button.pack()

root.mainloop()

Tcl/Tk
# hello.tcl

# package require Tk

pack [button .button -text "こんにちは" -command exit]

ほとんど同じような感じになりました。

自作ソフトTkEngineをPythonに移植してみました。

PyEngine

ほぼ同等の行数で同等の機能を実現できました。→ PyEngine V1.1
性能も互角です。ActivePython2.2以上で動作します。

国際化対応

Tclの国際化はV8.4で大分良くなりました。
Pythonの国際化は不完全でちょっとした小技が必要になります。

実行性能

Pythonの性能スコアはTclやPerlの上に位置します。
Tclは国際化対応で不利な立場にあるとも言えるでしょう。

Microsoft.NET対応

PythonにはVisual Studio.NETのPython pluginであるVisual Pythonがあります。
Tclの.NET計画はまだありません。

GUIツールキット

TclのGUIツールキットはTkだけですが、
PythonはTk(Tkinter)以外にwxPythonPyQtPyGTKがあります。
ただし、PythonのTkinterはTkのやや古い版をベースにしています。
両者ともJavaの実装(Jacl, Jython)があります。

オブジェクト指向対応

Pythonはオブジェクト指向プログラミング言語(OOP言語)です。
と言ってもOOPを使わずにプログラミングすることも出来ます。
TclはコアにOOPの機能を持ちませんが、多くのOOP拡張パッケージを持ちます。
有名なOOP拡張に[incr Tcl]、XOTcl(OTcl)、Snit、ClassyTcl、STooopがあります。

さて、あなたならどちらを使いますか?

参考文献

リンク



[もっとTcl/Tk]