2002年2月13日水曜日

OldMac のプログラミングをかじってみた。

使用言語は ThinkPascal。何故、C でなく Pascal を使うかというと、現在ただで手に入るからです。
古い処理系なので、フレームワーク等は一切無し。Mac の ToolBox を直接呼び出すことになります。

というわけで、他の OS? との GUI を比較してみました。


とはいっても、AmigaOS と X11R6 しか比較対象が無いですが。(Win32 はどうなんでしょう)/PPそれぞれ、OS が標準で備えているインターフェースを使った場合です。(Amiga の場合は Intuition、X11 だと Xlib)FONT size -2 X11 に付いては嘘を書いているかも... Xlib を直接使った事はほとんど無いので。


メッセージの扱い



Amiga
メッセージはウインドウ毎に送られる。

X11
メッセージはウインドウ毎に送られる。ただし、全てのウィジェット(ボタン等) はウインドウとして実装されるので、実質ウィジェット毎に送られているとみなして良い。

Mac
メッセージはアプリケーション毎に送られる。


ウインドウの移動等



Amiga
ウインドウのドラッグ、ボタンの反応はシステムが自動で行う。更に、ウインドウの隠れた部分の再描画も標準でやってくれる。

X11
ウインドウのドラッグ、タイトルバーのボタンはシステム(実際はウインドウマネージャー?) が担当。ウインドウの隠れた部分の再描画は標準では無いが、オプション機能(Backing Store)として存在する。

Mac
ウインドウのドラッグも、クローズボタンの反応時の表示変更も、プログラマが実装。実際は関数を一つ呼び出すだけだが、面倒な事この上ない。


他のアプリケーションを意識する必要があるか



Amiga
他のアプリケーションの動作は考えなくても良い。

X11
他のアプリケーションの動作は考えなくても良い。(Unix 上では)

Mac
他のアプリケーションの動作も考えなくてはならない。きちんと処理しないと、バックグラウンドのアプリケーションの再描画すらされなくなる。(どうして? これ)


というわけで、Mac が一番原始的です。 Mac のプログラマは凄すぎます。よくもまあこんな環境で...

というわけで、ある Mac プログラマに訊いてみた。(15 Feb 2002)

「それがいい」らしい。さいでっか。

0 件のコメント:

コメントを投稿