私はUI作成が苦手だ。何故苦手なのかというと「面倒くさい」からだと思う。私のサンデー・プログラマ活動ではこのUI作りが大きな壁である。幾度と無くこの壁を乗り越えようとチャレンジしたけれどすべて挫折してきたのが今までの人生だ。大げさかな。
この壁を少しでも低くしようといろいろなUIライブラリに手を染めてみた。MFC,WTL,Win32 GUI Generics,WPF,Windowsフォーム,JUCE..でもみんな習得するまでは至っていない。理由としてはある種の壁は低くなるのだけれどなんか別の新たな壁が出現して萎えてしまう感じである。
一番理想に近いのはJUCEなんだけれど、オリジナルのコンテナライブラリがどうも使いづらくてダメだった。UIもオリジナルのコンテナをベースにしているのでそこがSTLコンテナだったらなあ、、と思うことしばしばだった。そこから萎え始め、今はもう使っていない。
STL的な方向でジェネリックなライブラリだ!と思って手をだしたWin32 GUI Generics。なんか妙に凝ったライブラリですげえ!とか思うのだけれど、コンパイルしてできるオブジェクト・サイズが強力にでかくて萎える。
WTLはCRTPを全面的に採用しており、仮想関数をあまり使わないのでオブジェクトサイズが小さくできるのだけれど、あまりにもクラスの命名規則がWindowsくさかったり、メッセージマップというマクロの塊が萎える。MFCも同様。
WPFは一見ビジュアルエディットできてよさそうだけれど、ちょっと変わったことをしようとするとXAMLをいじらなくてはいけなくて、それが萎える。
Windowsフォームは重いので萎える。
JUCEのようなわかりやすいライブラリでSTLコンテナベースな感じのUIラッパで、かつビジュアルエディタが充実しているものが登場すればいいのだけれどね。。今更ないか。。
なので今は原点に立ち返りWin32 API+自作の薄いラッパでなんとか頑張っているわけである。