各種のデータベースとのインタフェイスも て、きるという強力な特徴が , GuiId の魅力て、 す。 繰り返しになりますが , GuiId は , 本稿の 企画に真先に応じてくれた企業て、す。同社 のデベロッパたちは , ばくが示したアプリ ケーション仕様書を見て , すぐさま仕事を 仕上げました。また , GuiId は独特な価格政 策をとって , システムをより一層安く提供 しています。オプジェクト指向プログラミ ングという宗教の信者にはなりたくないが , 強力なマルチプラットホームライプラリが 欲しいという人は , ぜひ Guild を買うべきて、 あと残るのは , WNDX と XVT て、す OXV T は , UNIX 方面が得意て、す。 Zinc や StarV iew なども , UNIX の Motif をサポートして はいますが , まだ移植後の日が浅いし , Su n などごくわずかなマシンにしか対応してい ません。 XVT は , Open lnterface と同じく , この 世のありとあらゆるものをサポートしてい ます。 GUI インタフェイスのサポートに加え て , DOS, UNIX, そして VMS の上の , 昔 懐かしいキャラクタ端末にも対応て、きます。 XVT は , 業務用品にふさわしい堅牢性をも ち , また多くの市販アプリケーションに採 用されていることが , その優れた品質を物 語っています。 XVT は , ツールの統合化を実現し , 本格 的なアプリケーションフレームワークを提 供することによって , もっと素晴らしい製 品になると思います。 C 十十を使って , 一か らオプジェクト指向て、新たに作ってほしい とばくは思います。中途半端なオプジェク ト指向 , というやり方がいちばんまずいと 思いますね。 次は , WNDX て、す。 WNDX のデモて、は , Windows バーションがいちばんお粗末て、し た。しかし , WNDX のライプラリには , G UI だけて、なく , 充実したグラフィックスの 機能が含まれています。この強力なグラフ ィックスライプラリ以外の強みとして , サ ンプルアプリケーションの中て、は , テーフ ル〔表〕の制御機能が使われています。 Metagraphic のエンジン〔 WNDX のグラ フィックスライプラリ〕は , DOS の下て、の グラフィックスが , とくに Borland Graph ic lnterface ふうの Zinc と比べた場合 , 優秀 て、す。ただし Zinc は , メモリをあまり必要 としない高速版も提供しています OWNDX を買うと , 生産性の高いマルチプラットホ ームライプラリが得られるのて、すから , 損 をした気にはなりませんが , ただし今日の 最先端のテクノロジが盛り込まれている製 品て、はありません。 お読みになってお分かりのように , ばく が話を聞いた人たちは全員が , 自分たちが 選んだ製品に満足しています。もちろん , 返品した製品の名前は教えてくれませんて したがね。 彼ら全員が , これらの製品を使うことに よって生産性が大幅に向上した , と言って います。そしてまた , 移植に際しての間題 点は , ライプラリ製品側て、はなく , 自分た ち側にあったとも言っています。 こういったライプラリ製品の分野は , こ 2 年ほどて、急激に進展して , プログラマは ますます , 優秀な製品を安い価格て、使える ようになってきました。あなたはすて、に こういうライプラリのどれかをお使いて、し ようか ? 別の製品に乗り換えることをお 考えて、しようか ? 乗り換えは慎重にやっ てくださいよ。 細かい関数の一々について覚えるよりも , て , 誰もがびびってしまいます。そういう GUI のシステムは関数の数がやたらと多く に使ってみて決めればよいて、しよう。 分な試用期間を提供していますから , 実際 てほしいとは思いますが。どの製品も , 十 の採用候補製品を選ぶための参考にはなっ われたかたもおられるて、しよう。まあ , 2 ~ 3 答えよりも生じた疑問のほうが多い , と思 今回のこの評価記事を読んて、 , 得られた ばなりませんからね。 品の使い方を , 必死になって勉強しなけれ 上げようと思ったら , 乗り換えた新しい製 どの製品も良質て、すが , 本当に生産性を もっとやるべきことが他にあるて、しよう。 それに ; プログラムの本体部分の磨き上げ には力を注ぎたいけど , インタフェイス部 分のデバッグには時間を取られたくありま せんよね。 となると , どうするか ? 本稿のデモア プリケーションと , そのソースコードをダ ウンロードしてください。そうすれば , れらの製品がどれだけの機能を有している か , だいたいお分かりになると思いますよ。 こういう製品のどれかを , そしてなにより , あなたの道具箱の中に常備してください インタフェイスの制作がずいぶん楽になる その気分は , 強い太陽の下て、サングラスを したときの , 楽な感じに似ていますよ。 [ 訳注 ] [ 1 ] [ 2 ] Windows プログラミングのバイプル的 な本。現在は Windows 3.1 用が出てい もともとは Smalltalk の界隈て、言われは じめたパラダイム。 Model とはアプリケ ーションの開発課題そのものて、ある間 題形 / 世界形 , すなわちく問題構造〉の 把握形式。 View とは , その間題形がど う見えるか ()r どう見せるか ) という次 元 , すなわち GUI の担当分野。そして C ontroller とは , アプリケーション本体 系と GUI 系双方に対する制御ーーすな わちコンヒ。ュータの実行コードーー - ーの 部分。たとえば Model の分野に View の 要素が紛れ込むことを禁ずる , などの 規約により , 開発の視野をすっきりさ せる (less trouble 化 ) と共に , 移植性も 高める。 ーとは , 上位系 ( 高レベル系 ) が フツノヾ 下位系 ( 低レベル系 ) を部品的に使い 包み込むことによって , 下位系をより 使いやすくしたもの。たとえば C の関数 の幾つかを , C 十十の何らかのクラスの 中に、、包み込んだクものなど。 Thomas Murphy 氏は , 「 COMPUTER LAN GUAGE 』誌の製品批評担当記者です。 マルチプラットホーム GU けイプラリの動向 33
心タスク ・タスクマネージャ ! Windows 界広しといえども , タスクマネ ージャほど一心太助なプログラムはほかに ないて、しよう。 十亘て、さっそうと立ち上がり , いって、もどこて、も駆けつけてくれる強い味 ・・といいたいところて、すが , 標準て、 方。 ついてくるタスクマネージャには必要最小 いささか無味乾燥なも 限の機能しかなく , のがあります。タスク切り換えさえて、きれ ば用は足りているようなものて、すが , プロ グラムマネージャが UAE て、落ちて , かろう じてタスクマネージャだけが呼び出せたり するような状況のときなど , 「これでどうせいっちゅうんじゃ」 と呪詛の声をあげたくなってしまうのが人 情というもの。 というわけて、 , フリーソフトウェアやシ ェアウェアて、は , 独自の拡張機能を付け加 えたタスクマネージャが数多く出回り , ひ とつのジャンルを形成するほどになってい ます。逆にいうと , 「これが究極」という決 定打がまだ出ていないということて、すから , なかなか難しいものがあるようてす。 それだったら , 自分好みにチューンされ たタスクマネージャを , いまのうちにひと っ作っておくというのも , 悪いことて、はあ りますまい ・嵐の隠し A 円 タスクマネージャの基本は , タスク切り 換えてす。これに使えそうな API としては , SetActiveWindow があります。また , 「タス ク終了」には WM CLOSE メッセージを Pos tMessage すればよさそうて、す。 しかし , カスケード表示やタイル表示に なると , びったしいきそうな API がどうも見 当たりません。星の数ほど世に出回ってい るタスクものの作者は , いったいどうして いるのやら・・ いわずもがな。困ったときの「 Undocum ented Windows 』頼み。 この本て、徹底的に解剖されているのが , こいらのメカニズム。どうやら , まさに CascadeChildWindows だの TiIeChiIdWin dows だのという隠し API があって , トップ レベルのウインドウをデスクトップの子ウ インドウに見立てて適用すればいいようて、 す。 まあ , DOS 時代に山のような隠しファン クションコールの洗礼にさらされてきた ともあり , いまさら隠し API のふたつや三つ て、驚きはしませんが , そればかりか , 何と タスク切り換えも , SwitchToThisWindow なる隠し API を使って行うのが , Microsof t 流のやり方だというて、はありませんか。 これは , いかにもタスクマネージャ専用 に用意されている API と見えて , 一発て、サイ ズの復帰とタスクスイッチをやってのけて くれます。て、も , SetActiveWindow と Sho wWindow あたりを組み合わせれば , 同等の ことがて、きそうて、すから , 変な API に手を出 さなくてもいいんじゃないか ? そんな気 がチラリとしないこともありません。 て、は , どうして「タスクマネージャ」とい う公式のプログラムが , その方法を採用し ていないのて、しようか。 何か罠があるのかもしれません。 Fig. 3 タスクマネージャ こは , file ndo アラームクロック ワトソン博士 リ The ◆ 寄らば大樹の陰て、 , 右にならえを決め込ん だほうが無難かな ? というわけて、 , TryTheC 十十版タスクマ ネージャ , 名づけて Tasks のて、きあがりを Fig. 3 にご用意しています。 ・インボートライプラリ さて , 隠し API は , 何しろ隠してあるくら いて、すから , 使うためには墓を暴くような 手順がいくつか必要てす。まず , windows. h に関数宣言がありませんのて、 , 自分て明示 的に宣言してあげないとコンパイラが「何そ れ」となります。 それともうひとっ , 忘れてはならないの が , cws. lib などはライプラリに入っていな いということて、す。 インポートライプラリアンを使って , た とえば USER モジュールの API の場合は , 力も安心してリンクしてくれます。 イプラリを作ってあげます。これて、 , のようにして , user. lib というインポートラ C : *windows*user. exe C> implib user 」 ib リン 「 kerne Ⅱ ib っていうのをリンクしてるけ ら , ひととおり implib をかけておくといいて、 は , 基本的な API をつかさどる DLL て、すか user. exe, kernel. exe, gdi. exeo この . 三 . つ Qption C 十十入門講座 Try The C 十十 103
、三田典玄のランタムアクセス、 トラーの生誕 100 年なのて、 , その研究本 ( と か , そのようなもの ) が多い。コンビュータ 関連の書籍て、は , コンヒ。ュータそのものよ りも , その周辺のプログラマについての本 とか , その生活をおもしろく書いた ( つもり の ) 本とかが多い。とくに目につくのは DO S / V の本だ。 これらの本のほとんどは , いったい DOS/ V とは何なのか , それは PC ー 9801 とどう違う のか , Windows はどうインストールするの か , などという , マニュアルをていねいに 読めばちゃんと書いてあることを , かなり の労力を割いて書き直してある , という程 度の内容のものばかりだ。 最初から「コンヒ。ュータ・オタク」のこと を意識して前面に推し出して , マニアの心 情をしつかりと捉えた , あの伝説の「大陸書 房」の一連のムックに比べて , これらの DO S / V の本の類は「二番煎じ」という感じがして 実際あの給料の高いことて有名な ( DOS / V の最初の供給元て、もある ) 某国際事務機器 メーカーのお兄さんも「まったく , ある本全 部買ってたけど , 内容はおんなじだし , 第 一金が続かない」と嘆いているほど , DOS/ V の本は粗製濫造されている。数が多く , そ してその中身が空疎なのだから , もうそろ そろ飽きられる頃て、はないだろうか。かく いう私も , 端から見ていたが , ついこのま えバカらしくなってもう買うのはやめにし 筆者陣も , どの本を見ても同じ人が書い ていることが多い。内容も , どの本を見て も同じことが若干違う文脈て、書いてある , という程度のバリエーションしかない。ひ どい筆者になると , 「どうせ読者が違うんだ からわかりやしない」とばかりに , メーカー の社外向け宣伝誌に載せた原稿を , 数セン テンス変えただけて、一般誌に載せるという 「使い回し」をやった , というとんて、もない 輩もいた。こういう筆者に当たった出版社 はいい迷惑だし , 原稿をまじめに読んだ読 者はいいツラの皮て、ある。編集者も読者も バカにしたようなこういった行為をいくら しても , やはり彼に仕事はくるらしい。 万年筆者不足・入稿したら校正なし・ポ ツなし , といわれて ( ちなみに本誌はきっち り著者校しています ) 久しいこのパソコン雑 誌・本業界において , おそらくもっとも楽 なショーバイて、ある「テクニカルライター」 は , それを求める出版社があるかぎり健在 なのだろうなあ。これじや日本のパソコン 業界も先がしれてるな , などと思っている のは私だけて、はないだろう。 実際 , コンヒ。ュータ関連の ( 自称 ) テクニ カルライターの集まった「協会」も , て、きた 途端に「分裂」してしまった , と聞く。意地 そういう「技術 , 能力 , ごく少数ながらいない ほんとうにまじめに「テクニカルライター」 もちろん , そういった「協会」の中にも , 私だけて、はないだろう。 ま , 仕方ないかな , と こういう方々の集まって わけて、はない。が , をしている方々も , 思ってしまうのは , いるところだから , 悪ないい方だが , 答えようものなら , その途端に仲間外れに れ , 一時のものじゃないんて、すか ? 」なんて DOS/V はどう思う ? 」なんて聞かれて「あ まえ , パソコン詳しいとかいっているけど ソコン大好き人間には見てもらえない。「お 寄せ , かっそれを礼賛しないとマジメなパ おもしろかった。いまや「 DOS / V 」に興味を ほうがあちこちて、聞かれた , という現象も 護する人の意見よりも DOS / V 擁護の意見の 想を聞くのがおもしろかった。 PC ー 9801 を擁 のて、はなく , それを見た回りの人たちの感 った。より正確には広告がおもしろかった テレビて、の比較広告がなかなかおもしろか ところて、 , DOS/V というとあの NEC の , 好き , 嫌い る印象だ。 はない というのが私の普段から抱いてい 善意」のある筆者の数ははっきりいって多く される。こんな感じだった。 広告の内容て、いえば「スクロールが見えな いくらい速くてなんの意味があるんだろ ? 」 とか「 VRAM そのものの読み書き速度はやは り DOS / V は遅い」とかのコメントも聞かれ た。 「やつば , MAC て、ないと・・・・・」というと「初 心者にはいいかもしんないね」などとバカに され , 「やつばり UNIX がいいね」というと「お まえ , この街のもんじゃないな・・・・・」とかま えられる , ということになる。まあ , 好き 嫌いの問題だから , どっちがどっちて、もか まわないことて、はあるのだけれど。 いずれにしても「趣味て、始めて , 仕事にな った」私のような立場としては , 同じ趣味て、 やるならば , また同じ仕事て、やるならば「な んて、もて、きます」というほうがおもしろい し , いい仕事がて、きるのて、はないか , と思 っている。しよせん技術屋の「好き , 嫌い」 など , あとて、よく考えてみると「たまたまそ の仕事に当たったら , その仕事が得意にな った。だから , 興味を持つようになった」と いう程度のものなのて、ある。本当に強烈な 好き嫌いなどは , 実はそう簡単に出てくる ものて、はない。 だから , 今て、きることにだけ執着する技 術屋というのはまったく発展性がない ど んなことにも興味を示す , という好奇心や ファイトがないと , 本当にすばらしい技術 にはなかなかぶち当たらないのて、はないだ ろうか。そのためには , 今自分の持ってい る技術がまったく役に立たないフィールド にもどんどん挑戦していく , ということが 必要になる。この気持ちがいつまて、たって も , あなたの心の中に持続て、きなければ , やはり技術屋などという職業を選択するの はやめたほうがいいのて、はないだろうか ? そうて、なければ , たとえば前述の「テクニ カルライター」と同じ醜態をさらすことにな ってしまうのて、はないだろうか。使い回し の技術など , 当然 , 寿命が長いものて、ある わけがないのだから。 三田典玄のランダムアクセス 109
リ The + しかし , 先ほど「 ObjectWindows のような て、す。 その困難がいま , いったいどこにあるか。 クラスライプラリに根ざしているかぎり , 複雑化するプログラムの中 , ObjectWind Windows ows のようなクラスライプラリに根ざしてコ 混乱を免れる」と書きはしましたが , それは それこそが Windows て、す。 あくまて、も , クラスライプラリが「きちんと」 Windows は思いのほか巨大なシステムて、 ーディングしているかぎり , そのような混 あって , 「極める」のは相当たいへんて、す。 乱を免れることがて、きます。というよりも , したものて、ある場合にかぎられます。確固 Windows の達人ともなれば , システムを骨 とした展望なきままに , 中途半端にてんこ クラス階層がどうなっているか , あらかじ もりしたクラスライプラリを使えば , ご利 まて、しゃぶりつくし , その隅々まて、掌を指 め頭に叩きこまれていないと , そもそもコ 益どころか , 感性まて、がずたすたに破壊さ ーディングに取りかかることすらて、きませ すように通暁しているのて、しようが , そん ん。万が一忘れてしまったそのときも , ク れて再起不能に陥るのが関の山。 な境地に到達てきるのは , ほんの一握りの ラスプラウザという強力な味方が道案内を OWL にしろ MFC にしろ , ようやく生まれ 人たちだけて、しよう。 たばかりの幼いライプラリて、あって , 洗練 してくれます。もちろん , これもオールマ しかし , それに挑戦する価値は絶対ある イティてはありませんから , クラスライプ されるには時間が必要て、しよう。現在の過 はずて、す。 Windows こそは , 我々の眼前に ラリさえ使っていれば , 自動的にすべての 渡的なカオス状況を , 危機と見るかチャン 広がったフロンティアて、す。切り拓いてい 問題が解決されるのかと期待していると , スと見るかは人それぞれて、しようが , おの くに足る広大な世界がそこにあるのて、す。 おののクラスライプラリにはいましばらく 肩透かしを食らわされますが・・・ ラスライプラリよいし 熟成してもらって , 伸ばすところは伸ばし , 互いに切磋琢磨しあって , よりよいクラス ライプラリとして完成されることを期侍す 肥大化傾向にある最近のプログラムて、す Borland 対 Microsoft の言語対決は , つま るのみて、す。統一うんぬんは , それから先 が , ましてや Windows プログラムともなる の話て、しよう。 と , ちょっとしたものて、も意外と大規模に るところ , ObjectWindows 対 Microsoft F oundation Class Library のクラスライプラ なりがちて、あり , 簡単に個人のメンテナン 鳬 十十でプログラムしたい リ対決に還元て、きます。 ス能力を超えてしまいます。読者も , 途中 たとえば , VisuaI C 十十なんて , MFC を て、手におえなくなって , 志半ばて、あえなく 難しい話はおいといて , 一年間 C 十十を学 使わなかったら威力は半減どころか , ほと ードディスクの肥やしになった可哀想な んて、きたわけて、すから , 何かプログラムを んど屁みたいなものになってしまうのて、は プログラムのひとつやふたっ , 身に覚えが 作ってみたくなるのが人情というものて、は ないて、しようか。つくづく C 十十処理系は , あるのて、はないて、しようか。 クラスライプラリに始まってクラスライプ ないて、しようか ? そう , 習うより慣れろ。 とくに , サンデープログラミングみたい とにかく何て、もいいからプログラムを作っ ラリに終わるようて、す。 な , ひとり作業て、は , きっちり仕様書を書 てみましよう。というわけて、 , 以下に思い ライプラリが処理系全体の価値を決める いてからおもむろにコーディングに取りか つくまま気ままに C 十十を使ったプログラム というのも , けっして不自然なことて、はあ かるといった , 体系立った仕事をする人は りません。 Lattice C と MS ー C が覇権を争っ を掲載します。 稀てしよう。いったん混乱が始まったら , ていた昔から , 処理系のシェア争いにライ 取り返しがつかなくなってしまう危険性が ラーメンタイマー プラリの占める比重は増す一方だというこ いかにも高そうて、す。 ・ラーメンできたか ~ とて、す。 グローバル変数をなるべく使うな。なる ラーメンは時間との戦いて、す。 統一されたクラスライプラリを持ってい べくモジュール化を心がけろ。そういった インスタントラーメンを食べるまての待 ことカ℃十十の弱みだという人もいます もろもろのお約束は , あくまて、も仕事とし が , その見方に立てば , コンセプトが大き ち時間に , うかつにデバッグて、も始めよう てのプログラミングにおいて , 最低限の品 く異なるふたつのクラスライプラリが覇権 ものなら・・・・・・つい時間を忘れて , 気づいた 質を産み出すための苦肉の策て、しかありま 争いを繰り広げている現在の状況は , ユー ときにはすっかりお湯を吸って巨大に膨れ せん。グローバル変数を使わないというだ ザにとっては不利益だということになりま けて、すばらしいプログラムが約束されるの 上がったラーメンと涙のご対面 ( ; ; ) 。 す。いわく , なんて、もいいから , とにかく というわけて、 , ラーメンのてきあがり時 なら , 誰も苦労はしないだろうし , 世の中 には芸術的な作品て満ちあふれているはず 統一してしまえと。 間くらい , コンピュータにめんどうをみさ C 十十入門講座 Try The C 十十 101
されるのは , 非常に多くの人がロコミとい うあやふやなソースをあげることだ。 ロコミというのは , 自分の味方が偶然に 述べたことかもしれないし , 展示会場のバ ーて、たまたま耳に入ったコメントかもしれ ない。あるいは , このコラムのように製品 のレビューを目的としていない記事に書か れたことかもしれない。いずれにしても , このプログラミング文化という小さな社会 における知識の確実な伝播の代表例がロコ ロコミのよい点は , それが無料て、あるこ とだよい製品を出しさえすればさらに多 くの人達にそれを知ってもらえる。そうな ると , 数か月間ぐらいは広告を休んて、も注 こうしたロコミが繰り返されて 文がくる。 いる間にある種の伝説のようになると , マ ーケットの変動がどんなに激しくてもその 変動を吸収してくれる貴重な緩衝材になる ( つまり , 安定したビジネスが望める ) 。 しかしこの緩衝材は両方向に働くものて、 あり , それがロコミの悪い点だ。一度て、も ひどい製品をリリースしてしまうと , ロコ ミが何か月も , あるいは何年もセールスの 妨げとなってしまう。すべての人が最新の 広告や新聞発表を読んて、いるわけて、はない だから , 「最新のリリースを使えば , もう隔 週火曜日ごとにクラッシュすることなどあ りません」などど発表してもなかなか浸透し ない。ロコミによって伝えられた情報 ( とく にマイナスの印象 ) を修正するのには長い時 間が必要なのだ。 一方 , よい評判のほうは , それをいくら 維持しようと思っても , すぐに忘れられて しまうこともある。 原理 . 広告代理店が広告費の減額をすす めることは決してないはずだ。て、も , 前の ふたつの原理を読むと , せつかく予算化し た広告費の効果が疑わしくなってくる。広 告に実際の効果があることは確かだが , 間 接的な場合が多い 情報がどのように伝わるかをトレースす るのが困難なのに加え , その伝播時の定数 は長くて不確定だ ( 再現が難しい ) 。だから , 広告費用がどのような効果を生み出してい るのかがわかりにくい こうした効果を見つける方法のひとつに 広告費を上乗せしてみる , というのがある。 つまり , 広告を増やしてみて売り上げが伸 びるかどうかをチェックするのだ。て、も , 広告後の 1 週間て、判断すればよいのか , 6 か 月間て、判断すればよいのかがはっきりしな こうなると , 厳密な科学というよりも神 秘の世界だ。そうだとしても , 結局はいく ら広告を追加しても効果があがらないとい う点に到達するはずだ。そうするとこの点 が広告費の上限になるはずだから , そこか ら減額を始めればよいことになる。 しかし , 実際にそうする会社は滅多にな いだろう。なぜなら , 広告に関係する人の ほとんどが , 高額な広告予算を維持するこ とて、何らかの恩恵を受けているからだ。よ くいわれるように , 人間は本質的に邪悪な のかもしれない ある行為の結果が失敗だった場合て、も , その失敗に対する対応として同じ行為の繰 り返しだけが見られることがある。こんな ことは一回て、も起これば嘆かわしい が , 繰り返し起こるようだと嘆かわしいど ころて、はなく間題だ。 広告代理店といっしょに仕事をしている と , こんな邪悪な行為はしよっちゅうだ。 広告代理店には顧客に対するいろいろな作 戦がある。ビジ . ネスが拡大している顧客に 対しては , そのべースを確保するために広 告を増やすべきだとすすめる。 一方て、 , ビジネスが縮小気味の顧客に対 しては , 現在のべースを守るために広告を 増やすべきだとすすめる。ビジネスが停滞 気味の顧客に対して彼らがどういうかは簡 単に想像て、きるだろう。 一度始めたものを簡単には放棄て、きない という責任のようなものがある。て、も , 予 算に対する発言権がある人なら , 誰かが財 布のひもを絞めなければいつまて、も予算は 縮小て、きないことを認識しなければならな 原理 : 技術者であるあなたが販売しなけ れば , ほかに販売する人はいない。この最 後の原理はちょっと幻滅かもしれない。個 人の好き嫌いには関係なく , 技術者だから といって販売の仕事を完全に投げ出すわけ にはいかない。仕事に就いているかぎり , 常に自分のアイデアや製品 , そして自分自 身さえも繰り返し売り込み続ける必要があ る。そうしなければ , コンヒ。ュータという 大好きなおもちゃて、遊ぶこともて、きないし , ュタて、スキーが楽しめるだけの昇給も得ら れない。つまり , 技術者て、も営業的な人間 のスキルの一部を習得したほうがよい と いうことになる。 そのためにも , 営業とマーケティング担 当者をしつかりと観察してみよう。彼らの 中には我々の業界て、技術者としてスタート した人もいる。 しかし , そんなことには関係なく , やり 手の人達は技術的問題点を理解しようとし ている。そして火星人 ( 技術者 ) との話し方 を学んだとしても , 自分達の主義を曲げる ことはない。つまり , ポケットプロテクタ っきのスリーヒ。ースを着ているわけて、はな い ( 訳注 : スリーヒ。ースはいうまて、もなく 営業的な人間の象徴て、ある。一方 , 技術者 はペンや鉛筆をシャツの胸ポケットに差し ていることが多い。さらにポケットの汚れ や傷みを軽減するために , ペンや鉛筆をひ とつのビニールなどのケースに入れてから 胸ポケットに差すこともある・・・・そうだ これがポケットプロテクタて、 , て、は技術者の象徴として使われている。だ から , 営業的な人間が技術者を装う , とい うような意味になるだろう ) 。あくまて、も自 分達の築いた独自の文化のなかて、の繁栄を 目指して頑張っている。 どうて、すか , あなたにもて、きるて、しよう。 Programming on Purpose 19
んどありません。 類のアプリケーションが存在することから て、したが , デベロッパたちは GUI のフロント NexpertObject 〔有名なエキスパー も , この製品の優秀さが分かります。 工ンドを付けてマルチプラットホーム化す ェル製品〕が Open lnterface を使ってポー 最初に , ESRI の JeffJackson に話を聞き ることを望みました 0Jackson は , みんなが タビリティを実現していることから見ても , ました。彼はこの製品を , 1990 年以来使っ この製品の出来ばえと動作ぶりに満足して これが完全なパッケージて、あることが分か ています。当時 Open lnterface を彼が選ん いる , と言いました。最初の版に付いてい ります。またこのことは , 他のツールとの だのは , 技術的に最も高度なパッケージだ たインタフェイスデザイナーはあまり良く 併用も可能という拡張性も物語っています。 ったからだそうて、す。 ESRI のプログラム ありませんて、したが , 最近のものは使いや Open lnterface を使った , 非常に幅広い種 は , コマンド方式の UNIX アプリケーション すいそうて、す。この製品に対する彼の唯一 コラム I プログラムの実行速度はどうなるか ? サドバーティー製のライプラリを使っ ら X11 に関しては , Neuron Data のほうが り歩きは , どれが速いて、すか ? そのプロ てアプリケーションを作る , なんて話をす 断然高速てす。 グラムは , 全部て、何行になりましたか ? I ると , プログラマ仲間からへンな目て、見ら lthaca 社は , 同社のライプラリ製品は一部 nmark 社の製品て、は , プルダウンメニュー れることが多いて、しよう。彼らは , 「そんな の関数がネイテイプのツールキットの関数 や線・正方形・矩形・円の描画機能を加え もの , マシンに合わせて磨き上げた自作の をコールしているから , やや遅くなる場合 て , このプログラムに 230 行を要しました。 コードの凄さに比べりゃ , まるて兎と亀だ プラシやペンの色を変えてみてください もある , と認めました。しかし , 同社のマ ぜ」と言うてしよう。 GUI のメンテナンスに ルチプラットホームライプラリを SiliconG こがいちばん肝心て、すが , コー そして , 要するオーバヘッドや , キューに絶え間な raphicsGL と比較してみると , GL の 95 % と ドを全然変更せずに , 複数のプラットホー いう性能を達成しました。 GL 自身は , けっ く並ぶ面倒なイベントの取り扱いなどを相 ム向けにコンパイルしてみてください 手にしてに、、自作の凄いコードクを作るため してのろまて、はありません。ただし , コン StarDivision の StarWriter は , StarView には , Windows の API を直接にいじらなけ ヒ。ュータの実行性能は , 速さがすべてて、は を使って書かれているワープロソフトて、す ればなりませんぞ。あなたなら , それをや ありませんね。 が , Word for Windows にて、きることは何 る ? まあ , この脅かしが結論になるとい 納得て、きないかたは , zApp のデベロッパ て、もて、きます。しかも , 速いのて、す。て、も , うわけて、はないけど , プログラムの実行性 たちが提案している , 次のような簡単な練 ウインドウがオープンする速さは , WfW の 能という問題について , すこし考えてみま 習をやってみてください。まず , 本稿のサ ほうがやや速いかもしれません。しかし , ンプルアプリケーションの実行ファイルを , ューザは , それぐらいの違いを気にするて、 プログラムの実行速度について , 何社か CompuServe(CLMFORUM の LIBI) また しようか ? 画面の塗りつぶしが遅いのは の人に話を聞いてみました。製品を非常に は COMPUTER LANGUAGE の BBS から 困りますが , て、も , 良質なライプラリ製品 ダウンロードしてください。速度とメモリ 低レベルの部品から組み立てている Neuron の性能差は , あってもほんの微々たるもの Data は , ネイテイプなシステムの通常のプ 利用効率については , このプログラムを利 て、す。そもそも , PC の上の Windows は , 画 用すれば分かります。メインウインドウを ログラムよりもむしろ速いと主張していま 面出力がそんなに速くないのて、す。 Micros す。このことは , X11 の場合 , とくにはっき ひとつオープンする Windows プログラムを oft が , Visual Basic を使って書いたデータ りしています。 Neuron Data のライプラリ 作ってください。そのウインドウの中て、オ べース製品を , 発売したりするて、しようか。 は , いちばん低いレベル , つまり Xlib て、構 プジェクトを次々と作って , それらをリン C のコードをギリギリまて、最適化するために 築されています。そういうライプラリが , クトリストに入れていきます。たとえば , は , すぐれたアセンプリ言語プログラマの Motif または OpenLook のスタイルを提供し left mouse button down メッセージを受 能力が必要なのと同じように , マルチプラ け取ったら , マウスの位置が変わるたびに ているのて、す。〔ネイテイプの〕 Motif また ットホームライプラリを使ったものよりも は OpenLook を使用するプログラマは , まず 新たなオプジェクトを作ります。これを , 目立って高速なネイテイプ向けのアプリを ウインドウマネジャのライプラリを呼び出 move to と line to を呼び出して画面に表 書こうと思ったら , 相当な専門知識を要し 示し , 第二ウインドウにそれまて、に作った し , そしてそのライプラリが Xt の固有関数 ます。それにだいいち , そういうライプラ オプジェクトをすべて記録します。さて , (intrinsics) を呼び出し , そしてそれら Xt の リ製品は , 専門知識を持っている人びとが 間題は次て、す。それぞれの製品を使った各 作っているのて、す。ばくがマルチプラット 関数が最終的に XI ib を呼び出します。 Xt バージョンて、 , どの時点て、メモリ不足にな ホームライプラリの肩を持つのは , プログ は , 画面にウインドウをオープンするたび に , 実際は三つのウインドウを描画します りますか ? 上に新たなオプジェクトが現 ラムの実行速度のほんのわずかな違いなん かよりも , もっと重要なことがいつばいあ から , 速くありません。 Neuron Data は , れるときの画面の描きなおしは , どれがい ウインドウを一つだけ描画します。て、すか ちばん速いぞすか ? リンクトリストの渡 るからて、す。 マルチプラットホーム GU けイプラリの動向 25
Windows, OS / 2 , SCO XENIX, UNIX Motif ( 価格はメーカーに直接問い合わせのこと ) Glockenspiel は , Computer Associates の ポートフォリオ〔買収した企業のリスト〕 にいちばん新たに加わった企業て、す。とい うわけて、 Computer Associates は , GIocke nspiel の優秀なマーケティング部門とテクニ カルサポート部門をそっくり手中に収めま した。また Glockenspiel は , 各プラットホー ム向けの C 十十コンパイラを前から提供して 師処理系との互換性という いますから に 1 ロロ 点て、 CommonView は有利て、す。言語処理系 の正式の製品名は , いまや , ComputerAs sociates Glockenspiel C 十十て、す。 CommonView には , GUI のクラスライフ ラリだけて、はなく , 一連のコンテナクラス が含まれています。その実装ぶりは , Lian t の製品ほど充実してはいませんが , 一応 S malltalk ふうのクラス階層を実現していま す。 CommonView は , StarView と同じく , 関数名の付け方に特別の工夫を講じていま せん。たとえば Zinc の関数名はすべて UI て、 始まりますが , CommonView の関数名はた とえば , すべて V て、始まるというようにはな っていないのてす。しかし , 名前の付け方 に決まりがあれば , 後てデバッグのときな んかに , すいぶん助かりますよ。 CommonView を使うときは , 〔現状て、は プラウザがないのて、〕アプリケーションは 手作業て、構築していきます。 Computer As sociates は現在 , プラウザを開発中だそうて、 す。それは , Smalltalk ふうのインタフェイ スに , lconoclass を結び付けたようなものに もちろん自分て、も各ライ プラリを使ってみました。 本稿の目的は , 各製品の一般的な長所と 弱点を指摘することて、す。また , それとと もに , べンダ各社の将来計画も紹介してい きます。 Glockenspiel CommonView Com uter Associates ネ土 なるそうて、す。実習マニュアルは , 簡単な ものから複雑なものへという構成になって います。ウインドウやメニュー作りから始 まって , 最後はグラフの作成て、す。 CommonView が提供している機能は , ど のプラットホームに対しても完全に同一て、 はありません。たとえば , その提供機能の 中には , OSF / Motif がまだ実装していない ものもあります ( それらはマニュアルに明記 されてはいますが ) 。て、すから , 同じコード を別のプラットホーム向けに使うときは , ソースコードをやや変えることが必要て、す。 それは , PC 用のバージョンがいちばん改版 歴が多くて , 機能が豊富だからて、す。たと えば , Windows て、はダイナミックデータ工 クスチェンジ (DDE) がて、きますが , その他 のプラットホームて、はて、きません。 Windows-$495, Windows NT ー $ 895 , OS / 2 ー $ 495 , Macintosh-$495 GuiId は , 本稿の企画にいち早く応じてく れた企業て、すが , 後から応じてくれた他の すべての製品と比べても , いちばんスッキ リとした製品と言えるて、しよう。ばくのよ うな , 古くからの C 使いのプログラマは , の点にたいへん満足しました。 Gui ld は最 初 , OS / 2 向けに書かれたのて、すが , 現在は Windows と Macintosh に対しても使えま す。 GuiId を使うと , 開発の仕上がりがきわ めて速いだけて、なく , ヘルプシステムやポ ータビリティガイドが充実しているし , ま たオリジナルプログラムの作り方も懇切丁 寧に説明しているのて、 , たいへん助かりま す。 Guild は , Neuron Data や XVT と同じく C のライプラリて、すから , どのプラットホー ムにもコンパイラがすて、にあるという点て、 有利て、す。たとえば OS/2 や Macintosh 向け にも , このライプラリ製品だけを発売て、き るのて、す。 Guild は , 分かりやすくて使いやすい , 対 Guild GuiId S stems 話的な設計システムを採用しています。 のツールのユニークな特徴のひとつが , 覗 き ( sno 叩 er ) 機能てす。つまりイベントの生 起をモニタて、きるのて、 , プログラムの実行 フローをチェックしながらのデバッグが可 能て、す。この機能は , キャラクタベースの 既存の C のコードを GUI に移植する人にとっ て , 大いに助かるて、しよう。 GuiId のライプラリは , 完全に 32 ビットの ライプラリて、す。て、すから , メモリをめぐ っての悩み事が減ります。ヘルプシステム は Windows と直結していて , 他のツールを 使わなくてもこれだけて、 , 移植性のあるハ イバーテキストシステムを作れます。ヘル プ以外にも , どのプラットホームにもない Guild 独自の関数が , まるて、親しいお隣さん のような仕事をしてくれます。そうすると , デモプログラムのような MDI (Multi-platfo rm DeveIopment lnterface) のアプリケー ションて、は , Motif の下て、も Macintosh の下 て、も , 子ウインドウはふつうのウインドウ と同じになります。 また Guild のシステムには , 幾つかの有力 データベースとインタフェイスするための ツールと関数の , きわめて充実したセット が含まれています。その機能などは , Guild が提供しているサンプルプログラムを見れ ば分かります。まず , いちばん単純なレベ ルとして , Guild 独自の内蔵データベースが あります。そのデータベースは , 可変長レ コードを使用するファイルの構造て、す。ま た別途 , GuiId のデータベースを作り , 変更 し , 見るためのプログラムも提供していま す。 さらに GuiId はオプションて、 , Paradox や OracIe へのプリッジも提供しています ( Par adox を使うときは Paradox Engine が必要 ) 。 もちろん , そのほかの C て、書かれたデータベ ースエンジンとのインタフェイスも容易て、 す。プリッジにより , Guild のイベントとの リンクが手早くすっきりとて、きるからて、す。 最初ばくは , Guild について , EigenEng ineering の Herbert Greenman に話を聞いて マルチプラットホーム G 団ライプラリの動向 みました。彼は GuiId をここ 1 年半ぐらい使 21
書けないということは何を意味するのだろ かってしまう話と同じように , VisiCalc につ 変化のうち , この書籍の変化がとくに著し うか ? それは魅力的な製品が存在しない いてくどくどと説明する必要はなかった。 い。最近の書籍には非常に多くの広告が掲 ことを意味している。潜在的な顧客にその すべての製品がこんなにエキサイティン 載されているが , ほとんどまともに読むこ 製品の必要性を理解してもらうには , 必要 グなわけてはないし , また , そうてある必 とはない。なかには目に止まるものもある 性を簡潔に表現しなければならない。その 然性もない。ても , セールスポイントは必 が , パラバラめくるだけのことも多い。何 製品がどのようなニーズに合致するかを説 要だ。製品を作ったあなたがセールスポイ かを学ばうとして , わざわざ広告を読むこ 明て、きなければ , どんな顧客も相手にして ントをうまく説明て、きないとすれば , ほか とはほとんどない。 に説明て、きる人などいない くれないだろう。 私が誰かと競争しているときは , 競争相 数年前に登場した「 原理 : 広告を信じる人はいないが , しか ノヾーソナルインフォ 手の広告を読んて、相手を研究する。そうし メーション・マネージャ」と「アイデアオ し広告は必要だ。広告には特定の目的があ た場合の広告が最先端技術を感じさせるこ ーガナイザ」 ( 訳注 : これらは数年前に登場 ると思われている。たとえば , 魅力的な言 ともある。また , セールスのためのメッセ した新しい種類のソフトウェアて、 , 代表的 葉て、製品を説明することにより , それを読 ーシを読むことによりマーケットのニーズ なものに Lotus Organizer がある。 んだ人が一方の手に MasterCard を持ち , も ういっ に対する相手の考え方も理解て、きる。一方 , たソフトウェアは , あまり関連の強くない う一方の手て、電話をかけたくなるようにす 自分て、何か製品を購入しようとするときは 事実や概念をそれなりに構造化し , データ る , というような目的だ。このようになれ 最新の雑誌のレビュー記事と広告をチェッ べースなどて、扱う形式に変換するために利 ば何もいうことはないが , いつもうまくい クする。もちろんその製品の購入決定には , 用て、きるらしい ) のことを考えてごらんな くとはかぎらない。て、も , たとえうまくい 製品に対する肯定的なレビューのほうが望 さい。技術評論家はこれらがすばらしい製 かなかったとしても , 広告が失敗だったと ましいし , それなりの大きさの広告も必要 品だと思っていたようだが , 我々にとって 決めつけることはて、きない の必要性という点になるといつもあやふや 広告にはいろいろと実際に役に立つ面が だった。 ある。それが販売につながることもあるし , また , これらの製品て、実際に何がて、きる 単に情報を広く伝えるだけの場合もある ( 多 くの技術者は , ほとんどの場合 , セールス のかについても不明確な説明しかなかった。 どんなに多くの費用をかけた広告ても結 最近て、もこの製品を見かけるが , 圧倒的に のためのメッセージよりも厳密な説明のほ 末はこんなものだ。ほとんどの広告は高価 売れているわけて、はない うを好むのだが ) 。いずれにせよ , どんな広 な壁紙のようなものだ。て、も , ある程度の ところて、 , 電子的なスプレッドシートが 告て、あれ製品と会社名を広く世間に知らし 回数は繰り返さなければならない。そうし 最初に登場したときのマネージャや会計士 めることになる。 ないと , GIen Miller や Lawrence WeIk と の反応を覚えているだろうか。スプレッド て、も , Dow ChemicaI ほどの大会社ならと 同じ道をたどり過去の人になってしまった もかく , 小さな会社にとってのイメージ広 シートて、何がて、きるのかとか , なぜスプレ と思われてしまう ( 訳注 : どちらも 1940 年 ッドシートが必要なのか , などを説明する 告は費用のムダ使いて、ある。それよりも , 代から 1950 年代にかけてポヒ。ュラーだった 普通の広告ひとつひとつが全体的なイメー 必要はなかった。そんなものはなくても昔 バンドのリーダーて、ある。現在は古きよき の技術大好き人間達は当時のコンピュータ ジを作り上げていくことを認識すべきて、あ 時代の音楽を象徴しているだけて、ある ) 。 ショップに殺到して , 「 VisiCaIc がほしい る。とくに小規模のビジネスの場合 , 現在 原理 : ロコミは最大の財産であるが , 最 それと , どんなものてもいいから VisiCalc が てもビジネスを続けていることを伝える効 大の脅威でもある。あなたの製品を使って 使えるハードウェアも買いたい」というよう 果もあるのて、 , 広告がムダになることはな いる顧客に , その製品をどのように知った な買い方をした。 。ただし , 広告代を支払うことがて、きれ のかを尋ねてみるとよい。雑誌のレビュー こうした状況はハリウッドて、、 high conc ばの話だが・・・ 己事や今お話したばかりの高価な広告から ep にと呼んて、いる話に似ている ( たとえば , こて、 , 他社の広告に自分がどう反応し 知ったという人もいるだろう。また , 運が 「 Blood Sister : 彼女は空手のインストラク ているのかを考えてみよう。技術者の場合 よければ , 会社の評判がよかったのて、使っ タて、復讐に燃えているが , 同時に修道女て、 いつも時流に追いつかなければならないの ているという人にも出会うだろう。そして もある」というような話 ) 。つまり , 最初の て、 , 大量の書籍に目を通さなければならな 広告をまったく掲載したことのない媒体の 段落を読むだけて、おもしろいかどうかがわ い。我々の技術分野における最近 15 年間の 名前をあげる人もいるはずだ。しかし驚か ロコミの脅威 = 11 料 18 C MAGAZINE 1993 7
C 言語プログラミングレッスン if 文について学んだところて、 , 簡単なプロ グラムを読んて復習してみましよう。 傘プログラム いったほうがいいかを教えてくれるプログ List 1 は降水確率を入力すると傘を持って ラムて、す。 50 と入力すれば ( そして最後にキーを押 ルし , 実行した結果は Fig. 3 のとおりて、す。 列を整数に変換するものて、した。コンパイ ts は文字列を入力するもの。関数 atoi は文字 した関数をいくっか使っています。関数 ge させることカイきます。 List 1 て、は前号説明 ているのて、 , 安心してコンパイルし , 実行 今度は完全なひとつのプログラムになっ 傘はいりません。 と表示し , 0 と入力すれば , 傘を忘れずにね。 せば ) , れがプログラムになっていないかぎり , コ あるあなたが知っているだけのことて、 , そ くてはならない , というのはプログラマて、 さい。入力される数字が 0 ~ 100 の範囲て、な としかできない , ということを覚えてくだ ンピュータはプログラムに書かれているこ んてことはコンビュータは知りません。コ は 0 ~ 100 の値て、入力しなくてはならないな 入力される数字が降水確率て、あり , それ と表示されます。これはなぜて、しよう。 傘を忘れずにね。 答えてはくれません。なぜか , は 0 ~ 100 の間て、入力してください」と親切に という異常な値を入力した場合 , 「降水確率 と表示します。けれども・・・・・・あれれ , 1500 文章のパターン , 「 if... else 」という C 言語の構 文について説明しました。 if ( あなたは疲れている ) { ー休みする , else { 先を読み進む , 、丿工ーション 条件 2 も満たさないとき に if が続いています。 List 2 の構造を簡単に てす。ここて、は if... else …の else 以下に , さら まいました。この部分を修正したのが List 2 List 1 て、は 1500 % の降水確率が許されてし 「 if 文」の連鎖 たしているからて、す。 示されたのは , if 文の条件 ( p > = 50 ) を満 表示されるのて、す。「傘を忘れずにね。」と表 から「降水確率は 1500 % て、す。」などと平然と ンヒ。ュータには理解されないのて、す。て、す 書くと , if ( 条件 1 ) { 条件 1 を満たすとき 条件 1 は満たさず else { 条件 2 を満たすとき 条件 1 は満たさず else if ( 条件 2 ) { 条件 2 は p > = 50 条件 1 は p > 100 てください ということになります。 List 2 とよく見比べ せん。すべてきちんと明示的にプログラム もコンピュータに常識を期待してはいけま て、あるなどということは常識て、す。けれど 人ならば , 降水確率は 0 % から 100 % の間 となるて、しよう。 「傘はいりません。」 50 % 未満ならば , 「傘を忘れずにね。」 100 % 以下で 50 % 以上ならば , 「降水確率は 0 ~ 100 の間ですよ。」 降水確率が 100 % より大きいならば , らば , て、すね。 List 2 の動作を日本語て、説明するな こて、 , ちょっと注意しておきます。条 等号を入れるかどうか ? に書かなくてはならないのて、す。 件を書く場合 , 等号 ( = ) を入れるかどうか には細心の注意を払ってください たとえ ば , p > 100 p > = 100 このふたつの条件の違いはわかりますか ? このふたつの条件はほとんど同じ内容て、す が , たった一点 , 変数 p の値が 100 のときだ け違いが生じます。 p の値が 100 のとき , p > 100 は成り立たず , p > = 100 は成り 立ちます。 日本語て、 , このふたつの条件はそれぞれ p は 100 より大きい p は 100 以上 と区別して呼ばれます。条件式を見るとき には , 等号が入っているかどうかを注意し ましよう。また「より大きい」と「以上」は意 識して使い分けるようにしましよう。同様 に「より小さい ( 未満 ) 」と「以下」も使い分け これて、あなたは「 18 歳未満お断わり」を C 言 「または」を表現するには してください 条件が ( 年齢 < = 18 ) て、はないことを確認 お断わり ; if ( 年齢く 18 ) { 語ふうに書くことがて、きます。 C 言語入門講座 81 チェックが抜けてしまっていたのて、した。 クは入っていましたが , 0 より小さい場合の てす。しかし , 100 より大きい場合のチェッ List 2 はちゃんとそう書いたつもりだったの ムにそう書いてやらなくてはなりません。 ピュータは知りません。きちんとプログラ 降水確率は 0 ~ 100 の間だってことはコン て表示してしまうのて、す。 プログラムは平然と「傘はいりません。」なん は一 10 を入力してみると・・・・・・やつばりこの 示されるようになりました。しかし , 今度 確かに「降水確率は 0 ~ 100 の間て、すよ。」と表 として 1500 を誤って入力してしまった場合 , この実行結果 ( Fig. 4 ) を見ると , 降水確率 ところて、 ,List 2 はこれて、完全なのて、しょ
ンヒ。ューティングのあり方一 -- ーーインタフェ ておくと , INT 2Fh, AH = 15h というシス きゃならない。重くて厚い「本」としての辞 イスデザインへの過度の集中一一は , した テムコールにより , CD ー ROM への各種アク 典をひくのがたいへんだから , CD-ROM に セスがて、きます ( サプファンクションコード がって , プログラマが無駄な苦労をしてい 期待しているのにねー , なんなんだ を AL にロードする ) 。 る。プログラマを , 人間に関する , 社会に のかったるい検索ソフトは ! また , MSCDEX の起動により , CD-RO 関する , コミュニケーションに関する , も だいたい昔から , プロのプログラマほど , M およびその上のファイルに対し , ふつう ューザの現場的ニーズが分かっていない っと本質的な勉強から遠ざけている。 そこて、て、すな , プロのプログラマが作っ のディスク上のファイルと同じアクセスが という傾向があるよね。みなさん , プロと て、きます。リードオンリーて、すから編集な た検索ソフトはおよそ使いもんにならんか して見ず知らずのアカの他人のためのプロ どはて、きませんが , データをふつうに読み ら , 自作をしよう , という話になるのどす。 グラミングをするようになったら , あなた 出すことはて、きます。つまり I/O のうち I に マウス & GUI を使わんこと , 単純な stdio の の人格の終わりて、すよー I / O だけを使うことが自作における基本条件 関しては , 通常の INT 21h が使えるように Macintosh や XEROX PARC に起源をも なります ( ということはもちろん , C の stdio て、す。 つ , いわゆる GUI は , 別名、、デスクトップメ 制作を単純化するために , 各種の条件検 の各関数が I に関しては使える ) 。ちなみに私 タファクとも呼ぶ。つまり , 人間が従来から 索などはいっさいなし。見出し語と検索語 は , MSCDEX を起動するコマンド行て、 , C 慣れ親しんて、きた , デスク ( 事務机 , 勉強机 D-ROM を G : ドライプと指定しています。 の完全一致および部分一致だけて、よいて、し など ) の上の環境をコンヒ。ュータの上に実現 よう。通常の辞書引きニーズは , それて、十 上の , INT 2Fh がどーの , という情報 するのて、ある , と。これは , せつかくジェ 分て、す。私は , CD-ROM や電子プックの条 は , アメリカの某プログラミング雑誌に載 ット飛行機というものを発明したが , 高速 っていたものて、す ( 日本語訳は fWindows/ 件検索を , 過去に一度も使ったことがあり すぎるし操縦も難しいのて、 , 車輪を 4 個付け DOS デベロッノヾーズジャーナル』誌 , # 2 号 て地上を走らせる , すなわちジェット飛行 ません。 ( 株ビレッジセンター刊 ) に載っている ) 。つ それに , せつかくて、すから , 今回は , C て、 機を、、オートモビールメタファ〃て、使う , と まり私が最近導入した , デバイスドライバ はなく C 十十を使ってみましよう。 いう類の思て、すよ。従来の机の上などに比 や MSCDEX などがバンドルされている CD べてコンヒ。ュータは , はるかに抽象性論理 日本では基本資料の -ROM ドライプには , ドキュメントとして 性が高く複雑て、ありうるし , 情報処理能力 入手すらタイへン ! 40 ページ足らずのインストールガイドしか も桁違いに大きくありうる。なのにそれを , 卑しく思かにも、机 " に乞なんて , そんな なくて , プログラミングに役立つ情報は皆 無。資科をくれと NEC に請求したけど , 送 さあて , こっからが茨の道どすぞー アホな ! GUI 肯定論者は , 全員バカとしか ってくるとしても連休明けて、しよう ( 本稿の まず , MS-DOS は , CD-ROM に関して , 言いようがない 締切りは 4 月末 ) 。 2 層から成るプログラムて、対処しています。 結局 , 辞書検索の出力なんかも , いちい 最初の層は , デバイスドライバて、す。これ 話は脱線するけど , 最近の市販ソフトの ちウインドウを指定する出力なんかよりも , ほとんどが , インストールの仕方を具体的 がなぜか , CD-ROM の場合 , プロックデバ stdio の単純な出力のほうが , 断然便利じゃ かっ明快に書いてないよね。ただ , 付属の イス ( その典型が FDD や HD ) て、はなく , キャ ん。通常の辞書引きニーズて、は , 検索結果 ラクタデバイス ( その典型はキーポード ) 扱 インストールユーティリティの使い方が書 が次々画面にスクロールして出れば , それ いてあるだけやて。そういうユーティリテ いなんてす。この CD - ROM 用のデバイスド て、いいのだからね。あと , プログラミング ィを使うと , それまて、のシステム構成 ライバに直接アクセスする , というプログ て、すこし苦労しそうなのは , 大きめの出力 今現在の自分の , ただて、さえややこしいド ラミングももちろん可能て、す。ただしもち バッフアの管理と , 逆スクロール機能の充 ライプやディレクトリの構造ーーを部分的 ろん , そのデバイスドライバに関する詳し 実て、しよう。これなんか , 苦労 ( GUI プログ に変更することになるのが常だから , ほと い情報があれば , て、すが。 ラミングの無駄な苦労 ) というより , プログ んどの場合 , 使いたくない MS-DOS はさらに , 上の層として , ℃ D ラミングのお楽しみの部類て、すよ。 「どういう状態にインストールすれば動く -ROM に関する MS - DOS の拡張機能ク , すな て、も , 商品として売るソフトやったら , のか」を , 具体的に明確に ( つまり構造的論 わち CD-ROM Extensions なるものを提供 綺麗て、カラフルなウインドウ出力て、ないと , 理的抽象的に ) 書いてほしい。こて、、、抽象 しています。その実体は , MSCDEX という とくにシロートさん相手には売れんかもし プログラムて、す。 MSCDEX を最初に起動し という意味や 的〃というのは , generic に れん。それだけのこと。今の人間社会のコ たぐい C 言語フォーラム 113