ソフトバンク パブリッシング株式会社 様のご厚意により,
書籍 "Kylix Power Solutions" を
ブックレビューコーナー にご献本いただきました.
この本のレビューをして頂くべく,
Linux Users ML
や本サイトにおいて
公募
を行い,
これにご希望頂いた方々より感想などをレビュー記事にまとめていただきました.
ここに, レビューアの方々から寄せられたレビュー記事を公開します. (原稿到着順)
ソフトバンク パブリッシング株式会社 様および レビューアの皆様のご厚意に感謝いたします.
なお, 以下のレビューは初版を対象としています.
本書を一言で言えば, Pascal から Linux OS の機能を使用する API の利用方法と利用例とを記載してある本であり, Kylix ユーザが OS クリティカルな処理を作成する場合に必要となる基本知識が記載されていると言える. 但し, プログラム処理上の Pascal 固有の実践的な API の諸問題を取り上げているのではなくて, こうした書籍にあり勝ちであるが, Linux OS そのものの説明に終始してしまった感は拭いきれない. 従って, 本書は, プログラム作成時のリファレンスという利用法もあるだろうし, Unix の基礎の復習を兼ねた学習書としても役立つだろう.
記述の中心が「プロセス制御」「プロセス間通信」「ファイルシステムの使用」であり, 高レイヤ・ライブラリ利用処理の記述が乏しい事を考えても, 本書の知識だけで製品レベルの AP を開発するのは非効率だろうし, 若干の無理があるだろう. そういう意味でも Kylix でのプログラム作成を通した Linux OS の学習書としての利用が最適だと考える.
個人的事情の披瀝を許して頂くのであれば, Delphi で作成された既存システムの Kylix への移行を考えての学習を兼ねた渡りに舟なのだが, 一般業務では中心となる DB アクセス処理に拘わる話が全く無いのは残念である. Kylix 自身の誕生が最近の事なので, 書籍の充実は今後の事なのだろう. ソフトウェア技術書籍一般について言える事だが, 日進月歩の世界の中で記述内容が日々古くなる事は避けられず, 実際, この本のケースでも, ボーランドでは Kylix2 を発売済であり, Kylix2 では DB アクセスや Web サービスに関するライブラリの充足も成されている.
Kylix への注目は, オープン・ソフトウェア環境でのクライアント AP の開発目的が中心だと思うが, 経済的には, Windows に占拠された市場を何処まで奪い取れるかという話が登るにせよ, STB (セット・トップ・ボックス) を始めとする情報家電等への適応に対して プラットホームの選択肢が広がるのは望ましいのではないかと思う.
然るに, 甚だ個人的ではあるが, Kylix のマルチメディア・クライアント処理の充実と, その実践的な利用本の登場を切望するのである. Java ではサーバサイドと異なり, CPU 処理速度の問題が発生する上, 仕様化が進むのにどうしても時間が掛かり,市場要求にタイムリな対応が出来ない. 本書は, 将来そうした本が充実した際には, 良い橋渡しとなるのではないのだろうか.
誤植は, プログラム記述と実行結果出力での日本語英語の違いと関数名のスペルの不一致といった程度であり, 読み進めるに際して困るようなものは無いと思う.
本書は第三のプログラミング革命宣言の書である. 「はじめに」にこんな文章がある. 「今, 第三の革命が始まっている」と. 「既存の Windows アプリケーションを Linux へ簡単に移植するためのイノベーション」 そして「このイノベーションが実現するアプリケーション」. これが Kylix の夢である. また「Kylix 開発者であることは, この革命の重要な参加者となることなのである」とつづく. 本書の主題はこれに尽きる.
Linux 歴がまだ一年と浅い私には, 第一章が非常に参考になった. Kylix とは直接関係はないが, プログラミングの現状を知る上で誰にでも読んでもらいたい部分だ. 本章で著者は「この二つの環境 (Windows と Linux) を高さ一万フィートから鳥瞰するように比較する」と述べている. 短い章だが, 開発環境の違いやオープンソースについて理解が一段と深まった思いだ.
第二章もタイトルは「Linux の基礎」となっているが, 新鮮な発見がそこここにある. 本章のキートピックスに「Linux プログラミングつむじ風ツアー」とあるとおり, 駆け足だが, 非常に内容は深い. 著者は知る人ぞ知るプログラマ三人である. 非常に高いところからオペレーティングシステムやプログラミングというものをみている. Windows と Linux を並べて, こんなにはっきりと, 見事な短い解説を断じきった著作はみたことがない.
本当のプログラマとは楽しい人たちである. 本書の著者紹介をみてほしい. 一度会ってみたくなる人たちだ. 本書を読んでいると随所にジョークがちりばめられている. これはなかなか日本の方が書くプログラミング関係の書籍にはみられない. このジョークを訳者はうまく翻訳しているとおもう. これが単なるジョークではなく, 難解なプログラミングの世界に読者をいざなう, 重要な契機になることを訳者が理解している証拠だ. 細かいが監訳・訳者紹介もみてほしい. 本書を翻訳するのに最適の方々だと思った. 監訳者, 訳者が本書の信頼性を高めるのに一役かっているのは確かだ.
私としては, 本書をていねいに最初から最後まで順を追って読み進めることを推奨したい. 気の利いたジョークを楽しみながら, 新鮮な発見に膝をうち, 後半部分ではサンプルのソースコードを試してみるといい. Kylix の世界がどんなに興味深いか, どんなに夢にあふれているか, がわかる.
特に楽しいのが第九章である. ここに「引き出し」の話がでてくる. どんな話なのかは読んでからのお楽しみだが, 確かにこんな「引き出し」が我が家にもあったような気がする. そして著者は第九章が「本書における我が家の魔法の引き出し」だといっている. 本当に「便利なアプリケーション」がさりげなく置かれている章だ. この引き出しにはもっといろいろなものが隠されているような気がするのは私だけだろうか. 自分で我が家の引き出しをさぐって何か便利な道具をみつけてみたいと思わせるところだ. 著者には後日さらに著者の「引き出し」から, もっと便利なアプリケーションをさぐりだし, 本書の続編で紹介してもらいたい.
本書は厚い本である. 先におすすめしたように最初からていねいに読み進むのは大変かもしれない. きっと何度も読み返すことになるだろう. それほど内容が豊富であり, また, 解法に満ちているのだ.
Linux は可能性に満ち溢れている. この可能性を切り拓くにはデスクトップ, つまり使いやすい GUI が必要だ. Kylix はその入り口なのだ. Kylix の利用はプログラミング革命の先端を行くことになる.
今, この「パワーソリューション」は革命を夢見る私の「書棚の中で, 特にいい場所に置かれ」ている.
いまマイクロソフトは世界中で使用されるオペレーティングシステムを作り出し, オフィススイートもほぼ独占しています. さらに, ブラウザーやメールソフトはオペレーティングシステムの一部として出荷されており, 何も分からずパソコンを始めた人達は ブラウザー=IE, メールソフト=Outlook と勘違いしてしまうでしょう. 実際,私の周りには数多くいます.
私自身, 大変不安に感じています. これまではパソコンが普及し, 一般的になってきました. これから, さらに生活の中に浸透し, 生活必需品となる日も近いと思います. しかし, 生活必需品となるパソコンのオペレーティングシステムに選択肢がなかったとしたらどうなるでしょうか. 自由競争が無くなり, ユーザーはどのような性能や値段であってもそれを選ばざるを得ない状況になってしまうということです. さらに, Microsoft にとっても, 競争相手がいないのは辛いことだと思います.
私自身, つい最近まで 100% の割合で MS-Windows を使っていました. ワークステーションとして使用している私にとって, オフィススイートが少なかった Linux を使用することはできませんでした. しかし, オフィススイートなどのアプリケーションが少なかったのはついこの前までの話. いまは, フリーで使用することができるオフィススイートが数多くネットワークで配布されてきました. というわけで, 私はハードディスクを増やした機会に Linux をインストールしました. 今は使用頻度は 5:5 と言ったところでしょうか.
プリントアウトはやはり MS-Windows でしかしません. 高解像度で印刷したり, A4 サイズで作成した文章を縮小し, A4 に 2 ページ分を印刷する機能などが無いからです. これはプリンターメーカーさんに頑張ってもらうしかなさそうです. よろしくお願いします. さらに, 日本語のワークステーション用のフリーウェアが断然少ないのです. MS-Windows のフリーウェアだと「こんなソフトが欲しいなぁ」とオンラインを探すとだいたいあるのです. Linux だと日本語版は無く, 国外サイトで見つけインストールするのですが, 日本語で入力すると文字化けしてしまったりするので, 実際使用することができるものは少ないと思います. もっと, フリーウェアが充実することが必要だと思います.
ボーランドの Delphi はプログラマーの間でも人気の開発ソフトであると聞いています. フリーウェアのソフトなどは Delphi で開発されたものも多いと思います. 書店にいってもかなりの冊数のマニュアルが並んでいます. Delphi の Linux 版ともいえる Kylix が発表されたことは大変うれしいことであります. しかし, 同じ ObjectPascal 言語を使用する開発言語といっても オペレーティングシステムの違いまで吸収することができません. そのために, この「Kylix Power Solutions (カイリックス パワーソリューションズ)」なのです.
などなど, MS-Windows と Linux 上でソフトを開発するために必要な知識が載っています.
私は Delphi にしても, ましてや Kylix にしてもプログラム言語の全くのど素人でありまして, MS-Windows や Linux 上でソフトを開発する場合の違いなどを知る以前に Object Pascal が全くわかっていませんでした. 「Kylix Power Solutions」はスキーを初めて履いた人がいきなりスキージャンプをするようなものだったのです. そこで, IDE に関しては Delphi や Kylix のヘルプやチュートリアルを利用し, ObjectPascal については, ソフトバンクの「Delphi DB&Web プログラミング」を購入し, Delphi・Kylix の基礎から勉強を始めました. 「Kylix Power Solutions」が十分に活用されてくるのはもう少しあとだと思いますが, 必ず活かせることができるように頑張ろうと思っています.
以上の部分でこの本の果たす役割が如何に大切なものであるかを述べてきましたが, 一つだけ要望を述べさせてください. 「Kylix Power Solutions」ってかっこいい題名じゃないですか. しかし, この題名を見た初心者プログラマーが衝動買いをしてもプログラムは組めません. よって「最低, Delphi をマスターしていなきゃいけませんよ.」 みたいに最低限の読者の条件などを掲載したほうがよいと思います.
Delphi や Kylix を勉強する機会を与えてくださった www.linux.or.jp のブックレビュー担当様, ソフトバンク様そして, Delphi 6 Personal や Kylix 2 Open Edition を無償利用として公開してくださっている Borland 様に感謝いたします. ありがとうございました.
私が本書に期待したことは, Kylix を用いて Linux 上で GUI プログラムを開発する上で, GUI 以外のシステムレベルのプログラミングを容易に行うことが果たして可能なのかどうか, 表題通り, パワフルなシステムが開発できるかどうかを, 本書によって判定することでした. 結論から言うと, 本書はその期待に応えてくれていると考えます. 本書により, 「一番手軽に GUI プログラムを作れるのはどうしても VisualBasic だ」と, 好きだけど仕事に Linux を選択できなかった人も安心して Linux+Kylix を選択することができるようになると思います.
とはいえ, 訳者の序文に書かれているように本書の想定する読者は今まで Windows+Delphi だった人で, 最初の数章は Linux 初心者に向けたもの, および Delphi を知ってる人に C 言語および C++ を解説するものとなっています. 日本で Kylix に興味を示すのは, Linux および C や C++ を知っており, Windows 上での VisualBasic のような GUI 開発環境をうらやましく思っていた層が一番多いのでは, と思います. そのような人々にとっては, 最初の数章は既知の知識が多く, 逆に Pascal を知らないために全体を通して引用されるサンプルプログラムを読むのに苦労するかもしれません (ただし, 付録として ObjectPascal の文法の要約はのっています). ただ, この数章の中で, 既存のプログラムとのリンク方法, 共有ライブラリの利用方法や, C, C++ で作った関数の利用方法がさりげなく述べられています. この部分は重要だと思います. 極端な話, ここに記述されている内容を理解することで, GUI 部分は Kylix, その他のコアな部分は C, C++ で, ということが可能になるからです.
具体的な「Solution」の説明に入ってからは, 上記に述べた不満を払いとばすように, 数々の「濃い」解法について述べられます. 目次を読めばわかることなのでいちいち内容には触れませんが, 子プロセスの生成, プロセス制御, プロセス間通信, IPC, ファイルシステム, そして特に興味深いのは, GUI プログラムを開発する上で, ユーザの利便性にとって重要なヘルプシステムの作り方に 1 章が割り当てられていることです. 最後の章では, 小さないろいろなテクニックが紹介されます. 電子メールアプリケーションを作る上で必要なテクニックや, syslog の利用方法などです.
全体を通していくつか不満に思ったことを挙げます.
本書を初めて手に取ったときは, その厚さにおどろき, 「さすが PowerSolution」と思いましたが, 最初の数章はほとんど読む必要がなかったため, 値段との比較, という点では, 私にとってはちょっと高いかな, という印象です. ただ, Windows 上で VisualBasic を使用して GUI プログラミングを行う場合, プログラム内部のコアな部分はどうしても Win32API を使わざるを得ないように, Kylix でも, Win32API を呼ぶようにシステムコールを呼ばなければいけないのでは, という悪い予想がくつがえされ, Kylix を用いたプログラミングに大きな安心感を憶えました. この本により, 「Linux を使いたいけど, GUI はどうしても Windows だよな」 というあきらめを, する必要がなくなるのではないでしょうか. また, 本書が想定する読者層に対しては, 記述されている内容は非常に濃く, 値段分の価値は十分あると思います.