AG の前身は、数年前に作った awk スクリプトでした。
これは単にグラフを ASCII 文字で出力するだけのもので
実用性 0 だったためか自分自身忘れさっていました。
ところがある時、Windows から telnet で入ったマシンのデータを
グラフで見たいことがあり、この awk スクリプトを思い出して使ってみました。
結果、やっぱり使えなかったんですが…
ただ、この時にグラフを出力するだけでなく操作できれば、 それなりに面白い(使える)のではないのかい?と思いました。 そこで、まず perl5 + Curses-1.02 (perl から curses の関数を呼ぶ拡張モジュール) で実装してみました。 この perl 版は、C 版(ag-0.1.1 時点)の、ほとんど全ての機能を持っていました。 それなりに使えそうではあったのですが、 なんと言っても遅いのがネックでした。 スクロールなどほとんど使いものになりませんでした。
もちろん、速くするには C で書けばいいのですが、 それほど使わないしなぁと悩んでいました。 結局、C で書くことにしたわけは、
となっています。
関数 ag_xxx_yyy() マクロ AG_XXX_YYY 宣言子 AG_xxx_yyy グローバル変数 AgXxxYyy ローカル変数 xxx
要するに作ってみたかっただけなんですけどね。
というわけなので実用性は2の次です。
ただ、コマンド自体は使いやすいものになっていると思います。