clclcl Clojure製クリップボード履歴ツールをSWT対応しました
clclclという以前Clojureの勉強のために作ったクリップボード履歴ツールがあります。
今回、GUI実装をswingからSWTに変更しました。結果、動作も快適になったし、見た目も
OSに馴染んだし、満足してます。課題としては、キーバインドの実装。具体的には
メニューの項目をjkhlで移動したい。グローバルホットキーを有効にしたい。というものです。
簡単に調べたところ素直な方法では、できないようだったので、今後の課題です。
– ダウンロードは、https://sourceforge.net/projects/clclcl/ からどうぞ
いろいろ実験してるのでアーキテクチャは、初期からかなり変わってます。
## アーキテクチャの遷移 ##
### 1期 ###
– DB: Derby
– GUI: awt
最初データベースにDerby(http://db.apache.org/derby/)を使ってましたが、初期化とかが遅くてびっくりした。
### 2期 ###
– DB: sqlite3
– GUI: swing
慣れてるsqlite3にしたら、DB関連の処理は、速くなった。
普通のフォントを使えるように、swingを使ったが、swingの処理が遅くて、結局もっさりした動作になってしまっていた。
### 3期 ###
– DB: sqlite3
– GUI: swt
別プロジェクト(check-git-status)でpygtkに触れてみて、gtkがよかったので、clclclもgtkで描画できるようにSWT経由でGUIを
操作するようにした。
## ようやく実用的な速度で動作するようになった ##
swingから開放されて、ようやく現実的に使えるツールになったと思います。
## 結局swingって、どうなの? ##
swingって初期化が遅いので、小さいツールのGUIに使うのは、厳しいと思った。(それを言ったらjavaもか)
今、swingを使いたくなる又は使わなければいけない状況って、あるんだろうか?もしかして無い?
## まとめ ##
遅いライブラリを使うと、それに連られて、そのソフトウェア自体の価値も、台無しになってしまうので、
速いライブラリを使うことが重要だと痛感した。
