タイトルMacの現役プログラマがMac OS Xを語るセミナーが開催、開発者の本音も(2)カテゴリーMac OS X, イベント
作成日2000/10/20 22:18:27作成者新居雅行
休憩に続いて、小池氏によるCarbon化についてのデモが行われた。まずはAppearanceのデモアプリケーションを見せ、Appleが提供するサンプルコードですらボタンが欠けている点など修正が必要になるところを見せた。そして、Mac OS上でCodeWarrior 6を起動した。Carbonによって組み込むライブラリがCarbonLibだけになり楽になった。JPEGを表示するアプリケーションをサンプルにコンパイルして実行をデモした。C言語でフレームワークを使わないで、ToolboxのAPIを使ったアプリケーションのソースの変更例をデモした。まず、初期化などの不要なAPIを削除する。そして、なるべく新しいAPIに切り替えるが、NewWindow/NewCWindowをCreateNewWindowに変更するものの引数が違う。こうした新しいものへの変更も、Mac OS Xでのパフォーマンスを確保するためには必要になる。さらに、ウィンドウポートとグラフポートの区別が必要になり、SetPortを使った部分の変更しなければなず、これをしないとMac OS Xで落ちてしまう。構造体への直接利用はできなくなったので、アクセッサというAPI群を使う必要がある。さらにPrint ManagerやScrap Managerも新しいものに対応するために完全に書き換えないといけない。そして、終了メニューの位置を変更する必要があるが、Gestaltを使ってメニューバーを切り替える必要がある。そして、新しいイベントマネージャ対応があり、大変な作業となる。やらなくてもいいけども、やった方がいい作業だ。これによりイベントループを使わなくなる。また、最適化の作業も必要になる。画面処理を高速化するためにオフスクリーンに書き込み描画結果をコピーするようなことを従来はしていたが、そうしたことをOSがやるようになった。従って、余分にオフスクリーン処理を行うことになる。ただし、そこを省略するとMac OSでの動作が悪くなる。結果的にMac OS X専用というソフトに進展することになるだろう。
続いて「本音ベース」でのパネルディスカッションに移った。メモリ保護については、バスケ氏は落ちた場合に自分の責任であることが分かる点がいいことだと話した。メモリ保護を使うためにプログラム的に特に考慮はない。澤氏は、Kernel Extensionの場合はDarwinに組み込まれるために、ドライバでメモリの利用が悪いとOSが落ちるという点を指摘し、ドライバの品質を高めないといけないといけないと話した。ディスクアクセスが速くなるという話があるが、実はMac OS 9のディスクドライバは68kコードが動いている。Mac OS XはPowerPCネイティブでのディスクアクセスが行われる。コンポーネント関連についてはパフォーマンスに心配があるとバスケ氏は話したが、田中氏よりコンポーネントの処理がうまくいかないところもあるといった話も出た。マルチタスク関連については、マルチCPU対応やスレッドについての話があったが、I/Oドライバがもう1つのCPUを使う場合が利用して高速化するという動きもありうるという話が澤氏より行われた。Classicはパフォーマンスを落とすという話もあり、また、Classicでは周辺機器とのやりとりのパフォーマンスにも問題が出る可能性があるという話もあった。GUIの変更についての話も行われた。バスケ氏はFinderはソフトを作るときのリファレンスや基準として存在していたが、Finderの動作が決まっていないのは困るという点を指摘した。永山氏もFinderライクな操作体系を売り物にしているだけに同意見だと述べた。小池氏は、CocoaとCarbonのアプリケーションで操作体系が違ってしまう点が心配だと話した。田中氏もFinderのUIが固定される必要を話したが、Aquaについては亜流なデザインが広まる点に懸念をしていた。Finderというウインドウタイトルや横幅が一定以下にならないことなど、細かい点では不満が多いことが小池氏が指摘し、使いにくい点についてはフィードバックすべきだとした。澤氏はアイコンがリアルになり過ぎて、アイコンかどうか分かりづらくなることを指摘したが、小池氏はアイコンはもはや「プレビュー」だと指摘した。また、デフォルトのアプリケーションアイコンは穴があってクリックを受け付けないところも使いづらいと感じるところだといった話もあった。
Q&Aは次のようなやりとりがなされた。
>FireWireを中心とした周辺機器のサポートは? I/O Kitがすべて統括する。ドライバはSCSIなどと同じ形式になる。ただし、公開されているのはFireWireのバスアクセスと一部のライブラリだけで、ドライバは作れる状態ではない(澤氏)。
>Cocoaの話題がなかったが? 今日のメンバーはCarbonが強いのと、Cocoaのツールについては機密で扱えない。(バスケ氏、小池氏)
>アリーナのカーボン化では、Mac OS XのMailから学ぶところはあったか? Carbon対応を始めたばかりなのでまだ考えていない。Carbon版もすぐには出さない。(永山氏)
>Darwinについての考えは? Perlが使えるのが大きい(バスケ氏)。シェルスクリプトが使えるのがいい(永山氏)。UNIXの人がMac OS Xに目を向けてくれるかも(小池氏)。UNIXのソフトウエアがコンパイルして使える(永山氏)。
>OpenGLについては? Mac OSにあったものと同じバージョンなので、そのまま使える(小池氏)。CocoaにはOpenGLの機能を使えるようにするものがある(バスケ氏)。
>グラフィックスレイヤーが複数あるメリットは? ジョブズはムービーにOpenGLを張り付けるデモをやった(複数氏)。
>ビジネス的にはMac OS X向けソフトを作成する動機は? あくまでパブリックベータなので評価はできないし、仕事上は対応しないといけない(バスケ氏)。最初からCarbonを使って書いている、デベロッパにとってはやるしかない(小池氏)。対応ソフトを作るが販売を考えると難しい面もある(田中氏)。ドライバはこれから全てを1から作る。でも、Mac OS 9のドライバもメンテナンスが必要となり、パワーは割く必要が出る(澤氏)。
関連リンク