ずいぶんご無沙汰しています。高木です。

先日、仕事で久々にTcl/Tkを使いました。
少し忘れていましたが、使い始めてすぐに思い出すことができ、複数種のGeometry Managerをバリバリ使いこなすことができました。
最近GUIを作るのはもっぱらC#だったので、Tcl/Tkはなんか新鮮でしたね。

なぜTcl/Tkを使うことになったかというと、理由はいくつかあります。

  1. WindowsでもLinuxでも動くGUIを作る必要があった。
  2. 既存のC++のコードから呼び出して、GUIを付加する必要があった。

主にはこの二点です。
特に大きいのは前者の理由です。

実は以前にもC#で作られた同様のツールがあり、ずっとそれを使い続けていたのですが、Windowsでしか動かないので非常に面倒でした。
というのも、メインの開発はUbuntuでやっているので、そのツールのためだけにWindowsを引っ張りだし、イーサネット経由で接続しないといけなかったのです。

今回のものは、Windows(といってもCygwin)でもUbuntu(Linux)でも動きますので、どちらの環境でも単独で作業ができます。
しかも、イーサネット経由ではなく、呼び出し元の(C++で作った)プログラムから別スレッドで直接呼び出されるので、非常に高速です。

さて、Tcl/Tkで具体的に作ったものですが、物理的なデバイスのシミュレータです。
組込み開発に携わっていると、ボタンやLEDなどの物理的なデバイスを制御することが日常茶飯事です。
けれども、いちいち実機で作業しないといけないとなると作業効率は悪くなりますし、複数人で分業する際にも実機の台数に縛られてしまいます。
そこで自作のシミュレータが登場するわけです。

考えてみれば当たり前の話なのですが、実践できている技術者は意外に少ないように思います。
Tcl/Tkを使うかどうかはともかく、デバイスのシミュレータに関してはみなさんも一度試してみてください。