Tcl/TkでクロスプラットフォームなCLI&GUIツールを爆速開発する方法
Develop Cross-Platform CLI and GUI Tools with Tcl/Tk
Develop Cross-Platform CLI and GUI Tools with Tcl/Tk
Tcl/Tkを活用して、Windows、macOS、Linuxで動作するCLI(コマンドラインインターフェース)ツールやGUI(グラフィカルユーザーインターフェース)アプリケーションを開発する手法について解説します。Tcl/Tkは軽量かつ移植性が高く、シンプルながらも強力なデスクトップアプリを構築するのに非常に適しています。
豆知識:macOSのバイナリエディタ「Hex Fiend」は、テンプレート言語にTclを使ってるよ。
CLIやブラウザ以外のものを作る時、真っ先に手を出すのはTkinterとかTkベースのGUIインターフェースだな。
普段はPythonを「メイン」で使ってるんだけど、それを使ってクロスプラットフォームなツールをサクッと立ち上げられるのが最高なんだ。Tcl/Tkは鉄板だし、めちゃくちゃ便利だよ。
Tcl/Tkの何が問題って、Tclそのものだよ。著者がそのクセとか問題点について書いてるから、この記事自体はいいんだけど、結局のところTclは習得したいと思える言語じゃないんだよね。シェルスクリプトと同じで、必要なら使うけど好みじゃないって感じ。
記事でも触れてる通り、アプリをクロスプラットフォームにしてくれるのはネイティブに近いGUIのおかげで、その点Tkは優秀なんだろうね。
でも、もっとマシな言語で使いたいな。記事でもPythonについて触れてたけど、PythonのTkバインディングは十分じゃないって指摘はすごく洞察に富んでて勉強になったよ。
他の言語だともっとうまくやれるのかな?例えばGoとかどう?他の言語でTkを試したことある人がいたら、経験談を聞かせてほしいな。
100MBというフットプリントについては納得いかないな。fasm、tcc、rebolがどれも1MBに近いことを考えれば、まだかなりデカいよ。
俺はSchemeで日常的にTkを使ってるよ。コード内にTclは一切出てこないけど、TkはシンプルながらすごくいいGUIキットだし、プログラムもLinux、BSD、MacOS、Windowsで動く。他の人も言ってるけど、PythonにはTkと連携するライブラリのTkinterが同梱されてるし、Rubyもたしか同じだね。それどころか、COBOLでプログラムしてても(Cを呼び出せるなら)Tkは使えるし。Tcl/Tkを愛するためにTcl自体を好きになる必要なんてないんだよ。
これらのGUIアプリはWindows、Linux、macOSでネイティブに見える
著者がどうやってこんなことを真顔で書けるのか理解できない。
どう見ても2003年当時のネイティブアプリの見た目だよ。