Macintosh Developer Online (MDOnline)


2000年10月20日発行号 - PC ExpoでMac関連セミナー



本日はPC Expoでの2つのフォーラムのレポートだけになりました。その後、MOSAで小池さんのセミナーがあったのですが、途中からの参加となりました。また、MDOnlineでも共通した内容をすでに小池さんは書かれていたので、とりあえず、MOSAのセミナーの記事はなしということにします。セミナーで話したことで、まだ、MDOnlineに記事となって出ていないことがあるのなら、【小池邦人のプログラミング日記】での登場を期待したいと思います(といってほとんど事務連絡か〜笑)。
しかし、PC Expoはすごい人でした。時間がなかったのですべてのブースを回れなかったのですが、アップルのブースに行ったら、縦長の面白い形のスピーカがありました(もうどこかに記事は出ているでしょうね…移動中なのでWebチェックをしていません…)。サブウーファと同じハーマン/カードン社のものだそうですけど、縦に4つスピーカーが並んでいます。小さなスピーカだけどフルレンジでツィータというわけではないそうです。そして、かなり指向性が強いのも特徴だそうです。米国では販売しているそうですが、日本ではまだだということでした。例によってMac OS Xの展示の前は人だかりというほどではないですけど、物凄く熱心にたずねてあれこれと係員に聞いている人が占領していたというような状態でした。とにかく、一部ではものすごくMac OS Xは盛り上がっていると言うところでしょうか。明日は新宿タカシマヤに朝から行きます。
(新居雅行 msyk@mdonline.jp


Macの現役プログラマがMac OS Xを語るセミナーが開催、開発者の本音も

2000年10月20日、World PC Expo 2000の会場において、日経MAC誌の「いんさいどまっきんとっしゅ」歴代著者によるフォーラムが行われた。各方面で良く知られたメンバーがずらりと並ぶために、ディープな内容に期待がかかった。そして、実際にMac OS対応のソフトウエアを開発している現場の声が聞けたセッションとなった。
シエスタウエアのバスケ氏がまずMac OS Xの概要を説明した。Mac OSの問題点を不安定であることなどを説明し、次世代のMac OSの目標として、モダンOSやI/Oの整理、標準化などを掲げ、「今まで通り使いやすいコンピュータであること」が最大の目標であると示した。そして、Mac OS Xの基本的な部分のデモが行われた。そして、Mac OS XはMac OSとNeXTSTEPをくっつけたものと説明し、Aquaをトップにし、ボトムにDarwinを配した図をもとにMac OS Xの構成について説明をした。グラフィックエンジンとしてのQuartzについてはさらに詳しく説明をした。レンダリングエンジンとウィンドウサーバとしての機能がある。さらにコアがUNIX化したことによる標準化についても説明が行われた。インターネット機能が高速化されるのも標準化で得られるメリットであると言える。今後の課題としては、Finderの使い勝手や、Aquaの革新性の低さ、Carbon化対応やCocoaの普及を挙げた。
続いてパネルディスカッションが行われた。メンバーはバスケ氏、ヤノ電器澤和孝氏、アリーナプロジェクト永山純一氏、ソノランブルー田中太郎氏、オッティモ小池邦人氏である。まず、Carbon化をテーマに上げられた。簡単に変更できるかということについては、小池氏は「古いもの(Sytem 6や7)なら全面書き換えが必要。新しいものやフレームワークを使ったものならほとんど書き換えはない。構造体アクセスが直接できないが、大量にあるそういった箇所の修正はかなり大変」と述べた。永山氏はアリーナのCarbon化について述べ「PowerPlantを使っているので3日くらいでとりあえず動くようになった。構造体のアクセスもパターンがあるので、それなりにがんばればすぐできる」と話した。Mac OS XのCarbon上で動く電子メールソフトのアリーナも披露した。澤氏は「Carbonで捨てられたAPIはデバイス系のAPIである。デバイスドライバ関連についてはDarwinの中に入り、構造が変わり、100%の書き換えが必要になる。ディスプレイドライバなどごく一部は互換性があるが、普通は書き直しが発生する。それに関連するので各種アプリケーションツールも結果的にほとんど書き直すことになる」と説明した。QuickTimeについてはCarbon化されたBanana Viewerを動かしながら田中氏は「2時間ほどで簡単にできた。QuickTime関連はほとんど変更はなかった。初期設定ファイルの場所などに悩んだくらい。デバイスドライバを使っている部分は面倒になりそうだ」と話した。英語版のMac OS Xでもメニューは何もしなくても日本語は出る。ウインドウはフォントを設定しなおすことで、日本語を表示できる。ボタンが2行に渡ることもあったが、フォントの設定で直った。ボタンは大きくしなくても大丈夫だということだ。UNICODEということが言われているが、プログラムの中のコードはShift-JISコードで入っている。一方、開発環境としてはCode Warriorだけでなくアップル純正のものは実際にどうなのかという問いかけには、PowerPlantのコンパイルができるかどうかも分からないといった答えであった。ここで、バイナリ形式の話になり、CFMはすべてのルーチンが初期化、Mach-Oは使うものだけが初期化されるとバスケ氏によって説明された。Mach-Oでしか使えない機能(Quartzなど)もある。開発環境についての話について振られたが、「JavaについてはCodeWarriorでもProjectBuilderでも作成できる。Java2に対応したため流通しているソフトが利用できる」などと永山氏によって説明された。また、一般のJavaの参考書の通りに利用できるようになった点も大きいとも話された。Swingで作ったアプリケーションについての説明もあり、互換性の高さを説明した。Pure Javaという選択肢も十分に検討する価値のあるものだと説明された。
(続く)

カテゴリ:Mac OS X, イベント


Macの現役プログラマがMac OS Xを語るセミナーが開催、開発者の本音も(2)

休憩に続いて、小池氏による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のドライバもメンテナンスが必要となり、パワーは割く必要が出る(澤氏)。

カテゴリ:


WebObjectsのセミナーが開催、開発上の利点や開発事例などを紹介

World PC Expo 2000の会場において2000年10月20日に「WebObjectsによる“新世紀型”戦略システム構築」が開催された。はじめにWebObjectsについてのメリットについて、スケーラビリティなどが説明され、講演の概要を説明した。最初に登場したのは、フレームワークスソフトウェア代表取締役桝室裕史氏で、「WebObjectsによるWebアプリケーション開発プロジェクトのメリット」として講演が行われた。WebObjectsが登場するまでの背景として、88年のNeXT Cubeの登場がはじまりであり、研究機関を中心に浸透したが、93年にハードウエアの製造を中止し、PC/AT互換機で動作するOSに切り替えた。UNIXでも稼動するようになり、データベース接続も完成の域に達し、大手銀行や証券、生損保などで導入された。当初はMachをベースにしていたが、Windows NTやSolaris、HP-UXをベースに稼動させるようにしてOPENSTEPが誕生する。96年春からWebObjectsの販売が開始されたが、そのときにステーィブジョブズ氏はインターネットにフォーカスすることを宣言したという。OPENSTEPとWebObjetsは同じEOFベースに稼動するものだが、いちばん上位のレイヤーが入れ代わったものと説明があった。その後96年12月にAppleに売却され、着々とバージョンアップを重ねている。パフォーマンスも上がり、Java対応し、ついには大幅に価格を下げることになる。WebObjectsの特徴としてまず、オブジェクト指向を挙げ、Webアプリケーションに必要な部品がひととおり提供されていることを説明した。そして、EOF(Enterprise Object Framework)をコアにしたデータベースアクセスについても、リレーショナルデータベースをオブジェクト指向で利用できる点を説明した。また、Model-View-Controller型のアプリケーションを構築できる点もある。また、永年の継続開発による信頼性や実行性能についても、特徴だとした。一方、他社のアプリケーションサーバ製品は実行性能が低く、自社製品との接続しかできないことや、アーキテクチャが2〜3年で変わるなどのデメリットを挙げた。さらにPerlやCと比較すると、1から作らないといけないとか、開発負荷が高くなることや、再利用ができなくなることがあり、結果的にコストが高くなることを説明した。続いて開発プロジェクトの進め方が具体例とともに示された。コンセプトやデザインを詰めるのがまず最初の作業ながら、デザイナはなかなか完成させないために、ページ項目やページ構成を固定させてあとは修正があるものとして開発すればいいといったノウハウも披露された。さらに、フレームワークの開発として、オブジェクト定義やスキーマ作成を行うが、顧客の要求にとらわれず抽象化することが重要であるとした。さらにアプリケーション開発のフェーズに至る。WebObjectsを使えば、デザイナとエンジニアが別々に作業ができ、ページのリニューアルだけも可能となる。また、開発速度も熟練すれば、PerlやCの5分の1程度にまで減少する。そして、オブジェクトや設計パタンの再利用も可能となる。一方、留意点としてはオブジェクト指向のハードルは低くないことや、アップルのトレーニングを全部受けた方がいいこと、英文ドキュメントを読むこと、ビルダやウィザードをあまりあてにしないこと、Javaで作成すること、プロトタイプは有効であること、サードパーティのソリューションを利用することを挙げた。そして、開発に携わった日産の見積もりシステムを事例として紹介した。
休憩をはさんで、サイバー・ラボ代表取締役社長加藤康之氏による「フルオブジェクト指向で設計したエンドユーザー向け開発支援環境」が講演された。WebObjectsをベースに稼動するサイバーフレームワークという一種の開発環境が説明されたが、エンドユーザがアプリケーションの作成もできるといった進歩的なシステムを、事例を交えての説明であった。WebObjectsを使う理由として、誰が書いてもオブジェクト指向になることや、オブジェクト指向として最高のテキストであり、今までの限界をこえることができるといったことを挙げた。加藤氏自身も36才から始めたくらいで、それもWebOjbectsを使うからこそできたと説明した。特に記憶力に頼らなくてもいいという点で年令にかかわらず取り組めるし、作り上げるという点に関しては年令は関係ないと話した。フレームワークとは、部品が1つ1つが正しく組み上がるための仕組みであると説明し、部品を集めて作る電子回路では間違いが起こるものの、ボルトやナットのネジをオブジェクト指向の例として対比させた。部品の要素化として、機能オブジェクト、制御オブジェクト、インタフェースオブジェクトの階層的な組み合わせという手法を開発したとしている。オブジェクト指向に関する設計の手法として、ディクショナリオブジェクトを媒介にして統一的な定義ができることなどを説明した。そして、実際にデモが行われたが、アイコンをドラッグ&ドロップするだけで必要な情報を取り出して画像付きのリストを作ることや、アイコンをドラッグすることで、プロジェクトの管理システムが簡単に作成できるなどが示された。また、作成したアプリケーションがさらにまた部品になるといったオブジェクト指向的な特徴や、あるいはリアルタイムの物理シミュレーションといった事例も紹介した。プログラミングの知識のないエンドユーザがシステムを構築できるように、部品を揃えてそれを組み合わせてシステムを作ると言ったサイバーフレームワークの世界を実例を交えて紹介した。WebObjectsのオブジェクト指向な世界をベースにした従来にない開発支援システムが実現していることが実演された。
Q&Aではiモード対応についての質問が出された。テンプレートのHTMLをコンパクトHTMLを用意するだけでできるようだと枡室氏は返答した。サイバーフレームワークはWebベースできるのかという問に対しては、今回は時間がなかったがそういう事例もあると加藤氏は説明した。

カテゴリ:WebObjects, イベント