ボーランド株式会社 様のご厚意により,
統合開発環境 "Borland Kylix" を
ソフトウェアレビューコーナー にご提供いただきました.
このソフトウェアのレビューをして頂くべく,
Linux Users ML
や本サイトにおいて
公募
を行い,
これにご希望頂いた方々より感想などをレビュー記事にまとめていただきました.
ここに, レビューアの方々から寄せられたレビュー記事を公開します. (原稿到着順)
ボーランド株式会社 様および レビューアの皆様のご厚意に感謝いたします.
- Linux の使用歴
- 2 年
- UNIX の使用歴
- 2 年
- Linux Box の主な用途
- 部門内サーバ構築
- Linux 以外に利用している OS
- Windows 2000
- Linux と Linux 以外の OS の使用頻度の比
- 5:5
- 評価に使用した Linux 環境
- ディストリビューション
- Vine Linux 2.1.5 ftp 版
- ハードウェア
Panasonic CF-B5FR CPU: PentiumIII 700MHz MEM: 192MB HDD: 30GB NIC: Intel 8255x
Borland のサイトでも告知されている通り, glibc のバグにより多くの ディストリビューションはそのままでは Kylix をインストールすることができない. このため評価に利用した Vine Linux 2.1.5 では, 巨大な glibc を ダウンロードしなければならず, 最初の作業としては結構手間であった.
今後, 新しく配布されるディストリビューションでは問題はなく 使えるだろうが, 現時点 (2001 年 6 月現在) では注意が必要である.
インストールが終わり Kylix を立ち上げると, Delphi ユーザには親しみの ある IDE がそのまま表示される. 標準で用意されているコンポーネントを利用 した GUI ソフトを作成するのであれば, Object Pascal の部分も含めて Delphi の知識をそのまま使えるので, 違和感はあまりない.
むしろ Delphi ユーザが戸惑うのは UNIX そのものの操作部分では ないだろうか. Kylix があまりにも Delphi に近い分だけ, Windows と Linux+X の操作性の違いに慣れるまで苦労すると考えられる. Kylix をスムースに利用する ためには, Linux+X の最低限の知識は必要である.
Kylix を使用したい目的が PostgreSQL の操作なので早速チャレンジしたが, libpq.so のラッパーの書き方が分からずに苦労した. 結局, Delphi マガジン Vol.17 の記事を元になんとか動作できた.
また外部コマンドの呼び出しとその結果の取得方法が分からず, glibc の fork, execl とパイプを使えば解決できそうだというところまで分かったが, 未だに動作するコードは書けていない. 標準で用意されていない機能を利用する 場合, Delphi では Win32API の知識が必要となるように, Kylix も glibc や qt の知識は必要なのだろう. ログファイルの整形や抜粋には外部コマンドを 組み合わせるのが一番なので, 全てをコードで書くような車輪の再発明を避け, 外部コマンドと GUI を融合させることが Kylix でアプリケーション開発をする 最大の魅力であると言える.
現時点では Kylix に関する情報が少なく, また Delphi のように多くのフリー & シェアコンポーネントが存在しないので, 始めて Kylix で開発する場合 は多くの苦労がある. しかし, これらのハードルは時間が解決するのでそれほど 大きな問題とは思えない.
GUI のソフトを作成した場合, Kylix 専用の巨大なライブラリーが必要となる. これは, 簡単に配布できるツールを標準で付けてほしかった. Kylix を 持たないユーザが, これら巨大なライブラリーをダウンロードするのは大変なので, Linux の雑誌等で CD に入れてもらえれば, ソフトの流通も加速できるのでは ないだろうか.
本当はソースレベルの配布が一番便利なので, Kylix Open Edition が出て Kylix の使用者が増えれば, ライブラリーの問題は解決できるかもしれない.
Kylix の完成度は非常に高く, 個人的にはお勧めの開発ツールである.
しかし, まだ利用者数が少ないために開発上のノウハウが不足していること が問題である. これらが増えれば, Kylix が RAD ツールの定番として謳われる ことは間違いないだろう.
そのためにも, Kylix Open Edition の早期配布に期待したい.
- Linux の使用歴
- 全部で 1 年くらい
- UNIX の使用歴
- 8 年
- Linux Box の主な用途
- 通常の業務 (Web アプリケーション作成, 他サーバ管理, メール閲覧など), Kylix の評価
- Linux 以外に利用している OS
- Windows Me, Windows 2000
- Linux と Linux 以外の OS の使用頻度の比
- Windows Me:Windows 2000:Linux = 1:5:94
- 評価に使用した Linux 環境
- ディストリビューション
- LASER5 Linux 6.4
- ハードウェア
DELL CPU: PentiumIII 800MHz MEM: 196MB HDD: 40GB
DELL (テスト用にインストール. すでに削除済) CPU: PentiumPro 200MHz MEM: 196MB HDD: 20GB
ここ数年の Linux の台頭は目を見張るものがあり, 仕事として Linux の案件 に携わることが多くなってきています. ところが, Windows の VisualBasic や Delphi のような, 統合的にプロジェクト管理ができるツール類で Linux に 対応したものは少なく, Linux は Web アプリケーションなどの限定したシステムに しか利用されていなかったのが現状です. そこで, Windows で定評のあった Delphi の移植版である Kylix には, ソフトウェア開発における効率アップの 大きな期待をもっていました.
Kylix に附属の LASER5 Linux 6.4 は, Kylix 用にライブラリ周りが設定され
ているので, インストール時に困ることはありません.
./setup.sh
で終りです. ただ, インストールディレクトリは,
デフォルトだと /root/kylix に設定されているため, 最初に決めておいた方が
いいかもしれません. なお, 別の PentiumPro 200MHz (SMP) のマシンにも, 同様に
簡単にインストールできました.
私は, 通常 VisualC++ でソフトウェア開発をしています. (ほんとは C++Builder を使いたいのですが…) Kylix を操作するにあたって, 特に戸惑う ことはありませんでした. 少しでも RAD ツールを使用した経験があれば, すんなり使えると思います.
噂の Wine を使ったフローティングツールバーですが, なんとも Windows っぽくて不思議な感じがします. ツールバーについて一点, VMware + VNC 環境で 問題がありました. アイコンが黒くなること, そして, フローティングにすると ツールバーが永遠に消えてなくなってしまいました.
その他の動作は, PentiumIII ですと全く問題ありませんでした. 不意なクラッシュなども皆無で, エディタ, コンパイラなども快適に動いています.
一方, PentiumPro 環境ですと, 突然落ちたりすることが多々ありました. ただし, 私の PentiumPro 環境はクロックが遅いのと, SMP という環境にあるので かなり特殊な場合だったかもしれません.
RAD ツールのエディタは, ライブラリや関数などのヘルプをキー一発でだしたり, 依存関係を リアルタイムにチェックできたりすることが大きな特徴でもあります.
Kylix のエディタも, 強力なヘルプ連動機能や補完機能が装備されています. ただ, 私は HHK を使っているため, デフォルトのカーソルキーや ファンクションキーを多用する操作方法は大変です. どうしたものかと思っていたら, ありました, Emacs 風キーバインド. ところが, これにすると, 上記の補完機能など のキーがスポイルされてしまい, いまだにどのキーで補完等ができるのか わかりません. この辺のカスタマイズを柔軟に解り易くできたら良かったと思います.
優秀なデバッガです. ヴィジュアルなデバッガを使う知識は必要ですが, 経験があれば違和感なく作業できます.
以上, 使用感についてまとめますと, 操作方法に関して Borland 流の作法は あるものの, RAD ツールとしてかなりのレベルまで完成しており, 苦痛なく ソフトウェア作成ができるかと思います.
肝心のプログラミングですが, 私はこれまで, C や Perl が主で, Pascal の コーディング経験はほとんどありませんでした. 特に Object Pascal は全くの 未経験でした. とりあえず, チュートリアルにあるテキストエディタを作成して みると, このレベルのプログラムだったら, ほとんどコードを書かないで作成 できました.
具体的には, まず部品ありきで, フォーム上に入力部, ツールバー, メニュー などをならべ, その部品に対して設定や動作を記述するため, どのコードがどの ような部品に対しどのような動作をするかが, 系統を追って理解できます.
また, ほとんどの設定が, ドラッグやクリックなどの直感的な動作によって 実装できるため, 楽に作業を進めることができます. そして, ループなどの プログラム本体はエディタで自由に記述できます. 面倒な GUI の設定や動作は簡単 な操作で, たのしいルーチン書き (楽しくない人もいるかも)はコードをガリガリと, 楽しくプログラミングできます.
これは, 仕事として作業している人の能率アップにはもちろん, サンデープログラミングを趣味としている人にも嬉しいことでしょう.
UNIX では, もちろん vi とにらめっこしながら美しく感動するようなコード を書くことも楽しみの一つですが, 簡単に誰でも GUI を持つプログラムを作る ことは, 経験が無い人には結構難しいものがありました. Kylix の登場によって, Linux でプログラミングしよう! って人が増えるかと思います.
Kylix を 1 ヶ月ほど評価して感じたことは, 初心者にも非常にわかりやすく, 簡単に高機能な Linux ソフトウェアを作成できるということでした. わかりやすく 簡単な RAD ツールというものは, ありそうでなかなか無いものです. まして Linux 上で, ほとんど直感で GUI ソフトウェアを作成できるということは, 大きなメリットだと感じます. これは, Linux をビジネスとして利用している場合, 生産性の向上およびコスト削減にも直結します. 個人で利用する場合にも, VisualBasic のような「私でも簡単にかっこいいプログラムが作れる」という 気持ちになり, 楽しくプログラミングできることと思います.
一方, 現状での一番のネックが価格だと思います. 英語版は大幅に 下がりましたが, 現状の価格ですと, 一般ユーザーには簡単に手が届く範囲では ないと思います.
しかしながら, 無償ダウンロードもしくは 99 ドルで入手できる「Kylix Open Edition」が登場しますと, 配布条件に限定はあるものの, 低コストでビジュ アル RAD 環境の構築が可能になります. そのときに, かつての VB ショックのよう なムーブメントの再来の予感がします.
一文でまとめますと, 「素晴らしい. 大感動」でした.
このような素晴らしい機会を与えてくださいました Linux コミュニティの皆様, そして, オープンソースコミュニティに対し大変大きな支援を頂きました Borland 株式会社様に深く感謝いたします.
また, 時間が十分には取れなかったため, 深いところまで検証できませんでした. その点, ご不満を感じる部分があるかもしれません. これからも使用を続け, いつか成果を発表したいと思います.
- Linux の使用歴
- 5 年
- UNIX の使用歴
- 学生のころに 3 年ほど
- Linux Box の主な用途
- Web, メール, コーディング
- Linux 以外に利用している OS
- Windows
- Linux と Linux 以外の OS の使用頻度の比
- 仕事: Linux:Windows = 1:99
自宅: Linux:Windows = 99:1- 評価に使用した Linux 環境
- ディストリビューション
- Vine 2.1.5
- ハードウェア
CPU: Celeron 400MHz dual MEM: 256MB HDD: 12GB NIC: Planex PCI card (100BASE-TX/10BASE-T)
私は, 短期間ですが Windows で動作する機器制御アプリケーションを Delphi を用いて開発していたことがあります. そのときに感じたのは, VisualBasic 風開発スタイルを提供しながら, それを裏で支えている コンポーネントライブラリの持つ可能性がとても大きいということです.
実際, Windows 開発環境としての Delphi の最大の魅力は, 強力なコンポーネントライブラリと膨大な拡張コンポーネント群にあります.
Kylix の登場を, そのような実績のある, 興味深い開発環境が Linux でも利用可能になったという視点で評価したいと考えています.
動かしてみると, Windows そっくりの統合開発環境 (IDE) にまず驚かされます. ためしに MDI アプリケーションの雛型を生成して実行してみると, ほぼ Windows のそれと同じような挙動をします. なかなか不思議な感じですが, 宣伝文句にもある「Windows で一般的なプログラミング スタイルを Linux に持ち込む」ことに Borland は成功しているようです.
開発環境の評価ですから, なにかコードを書いてみないことには始まりませ ん. そこで, 自分で Kylix を利用するにあたってまず欲しいと思っていた, シリアル通信コンポーネントを作ってみることにしました. 冒頭で触れたように, Kylix の面白い点は, コンポーネントライブラリの機能を活かした 独自コンポーネントの作成にあるからでもあります.
実際には, 以下の手順を踏んでいます.
2. では, コンポーネントの枠組みになるクラスを定義し, 同時にそのクラス の動作をテストするアプリケーションを作成しています. このアプリケーション は, ボタンを押すと特定のメソッドを呼び出すだけのものです. Kylix では, こういった使い捨ての GUI コードは簡単に書くことができます.
3. でコンポーネントの実装を行います. Kylix は標準で libc への インターフェイスを持っているので, 基本的には C から Object Pascal への 記述の置き換えでコーディングを進めることができます. Kylix の Pascal は, C 言語のような型無しのポインタまである, かなり実用寄り の言語です. 「Pascal だか ら言語の記述能力が弱い」ということはまったくありません. デバッグには, アセンブラのコードまで追える IDE のデバッガも, 昔ながらの printf デバッグ も使えます.
最後に, できたコンポーネントを IDE に登録すれば, それを使って 「VisualBasic スタイル」の開発ができます. テスト用のアプリケーションを 変更して, 簡単な GUI ターミナルソフトに仕立ててみました.
試験的な実装のみですが, 作成したコンポーネントは ここ に置いてあります.
ここでは, 簡単なコンポーネントを1つ作ってみることしかできませんでしたが, Kylix のフレームワークは, これをさらに発展させる能力を持っていること に注目したいと思います.
Delphi/Kylix のコンポーネントライブラリは, 次の点を特長としています.
これらの特長を活かせば, 設計時には対話的に動作して設計作業を支援し, 実行時には設計時に与えられた状態に自動的に移行する, というような動作を コンポーネントにさせることが可能になります. 例えば, 通信機能を持つ アプリケーションを例にとれば, 階層化されたプロトコルを個別に コンポーネント化し, オブジェクト間の関連付けとライフタイムの管理を フレームワークにまかせることもできます.
こういった特長は, SmallTalk などの開発環境と実行環境が一体化した開発 ツールではよく実現されているものです. Delphi/Kylix がユニークなのは, ネイティヴコードを出力するコンパイル言語でありながら, (同等ではないにしろ) これに近い環境を実現しているところであると思います.
現在の Kylix が抱える問題点は, 完成度と価格の 2 点に集約されると思います.
まず, IDE そのものの完成度/安定性ですが, 率直に言って Windows 上の Delphi のレベルには達していないと思います. 実際, 評価中にも, IDE がフリーズしたり, セグメント違反の発生を報告してきてうまく 動作しなくなることがありました.
ただ, リリースノートには glibc-2.2-12 以前のシステムでは IDE がクラッシュ する可能性がある旨明記されていますから, 一概に Kylix の問題とも言えないの かもしれません.
もう 1 つの問題は価格です. Desktop 版の 新規購入価格 61,200 円 (2001年7月現在での直販価格) という のは, Windows の開発環境であれば特に高い値段ではありません. しかし, ターゲットの中に Linux の個人開発者が入ってくるとすれば話は違ってきます. Delphi ユーザー向けの優待販売はありますが, 新規に購入する (かもしれない) Linux 開発者のことも考えた価格設定をして欲しかったと思います.
もちろん, この点は Open Edition がリリースされればだいぶ状況が違って くるはずです.
以上述べたように, Kylix は強力なフレームワークを提供する, ユニークな オブジェクト指向プログラミング言語 (環境) です. この点に魅力を感じ, まだ数少ない Kylix ready なコンポーネントを増やしてやろう, と思われた方は, (少々高価ですが) ぜひ導入を考えて頂きたいと思います.
一方で, Kylix に Windows からの移行を楽にしてくれる魔法のツールとし ての役割を期待しているのなら, もう少し慎重になった方がいいかもしれません. Kylix によって Linux でも VisualBasic スタイルの開発が可能になったのは 事実ですが, そのようなケースでの細かいノウハウの蓄積はこれからのことでしょう. また, クロスプラットフォームの実現という意味では, Delphi6 と CLX for Windows の登場にも期待したいところです.
そして, 実は Delphi ユーザーでもある Linux 開発者は, ぜひ購入して, Linux ならではの Kylix の可能性を探って欲しいと思います.
- Linux の使用歴
- 5 年くらい (本格的に使い出したのは 3 年くらい前から)
- UNIX の使用歴
- 約 13 年 (1988 年頃から)
- Linux Box の主な用途
- 現在は, セキュリティ評価, ペネトレーション, 報告書作成に使用.
- Linux 以外に利用している OS
- Windows 2000, MacOS, AIX 4.3
- Linux と Linux 以外の OS の使用頻度の比
- 1:1
- 評価に使用した Linux 環境
- ディストリビューション
- RedHat 7.0 (glibc アップデート)
- ハードウェア
コンパック ProsigmaDesktop330モデル6700 CPU: PentiumIII 700MHz MEM: 384MB HDD: 20GB
パッケージには FTP 版 Linux が添付されているので, ここではその中から RedHat 版 を使用した. OS によっては Glibc のライブラリをアップデートする必要がある. その後, ネットワーク環境の設定, Kylix をインストールして完了するには余裕をみて 2 日もあれば十分だろう. Kylix のパッケージには必要なメモリは 128M 以上の RAM とあるが, 実際に使用し, 開発環境という点を考慮しても, 満足するには倍の 256M 以上は必要だと感じた.
Kylix の特徴は GUI による開発環境にある. ウインドウズのプログラミング 環境である Delphi に慣れていれば, 見た目がそっくりで違和感なく Linux の アプリケーション開発に移行することができる. 以前から Linux 上で gcc や perl を組み合わせて組んでいる人にとっては, GUI への違和感より, 開発言語 (Object Pascal) への抵抗が大きい. まずは基本的な文法を覚えることが先だ.
Kylix を起動すれば, Delphi とほぼ同じように使用できる. ソフトレビュー 時に困ったのは, 日本では未だ Kylix に関する書籍がなく, 米国でも刊行予定と なっており, Kylix 固有のテクニックが入手できなかったことだ. Kylix に 関するテクニック集に相当するドキュメントは, マニュアル以外にも欲しいと感じた. 私の場合, 中途半端に Delphi を使った開発経験をもっていたために, ゼロからの開発というよりも, ソフトウエアの移植について考えさせられた. 関連書籍の登場を待ちたいが, それまでは Delphi の本を手元に置いておくと プログラミングは早く進むと思う.
対象としたプログラムは, 私が Delphi 用に作成した画像処理ソフトで, これ を移植した. 文法がほとんど同じなのでルーチンはカット & ペーストでそのまま 使用できた. コンパイル時間も速く, ファイルから読み込んだ画像に文字列を 埋め込み, 画像を出力する簡単なツールだった. 速度的にも満足できた. Kylix の 日本語化対応については, 申し分なかった. 今回の作業は, 一人で行ったものなので, プロジェクト体制をとって開発する場合には, ネットワークでデータ共有 環境を構築する必要があるだろう. この点は, GNU 関係のリビジョン管理との 兼ね合いをどうするか今後の課題と思われる.
Linux に移植されたお陰で, 開発 (移植) したツールのドキュメント管理が 容易になったのが個人的にはとても嬉しい. Delphi 版ではワードで仕様をまとめて 後で苦労したが, Linux 環境では自由にテキストを管理できたのは嬉しかった. 評価期間に甘えてしまい, DB との接続テストは時間がなくできず Perl で 逃げてしまった. 今後利用するユーザーにも多いと思う. サンプルがもう少しあれば, なんとかなったかもしれない. 配布については 13 章に解説してあるが, 実際に再配布するときは, 共有ライブラリも含めて配布する必要がある. この辺りは, ファイルを指定してやる必要がある. Linux ユーザーの多くが, PATCH によって修正する作業を当たり前に行っていることを考えると, この辺りの改善 を希望したい.
最後に, この機会を与えてくださった関係者の方々に心から感謝いたします.
もし 5 日間好きに使える時間があるなら, Kylix で簡単にグラフィカルな アプリケーションを Linux 上で作ることができる. 最初に 2 日間の準備が必要だが, インストールをしてしまえば, あとは GUI で簡単にアプリケーションが作れる. Kylix はプロトタイプを先に作ってしまうタイプのプログラマに向いている.
- Linux の使用歴
- 4 年 (実 2 年)
- UNIX の使用歴
- 5 年 (実 2 年半)
- Linux Box の主な用途
- 業務サーバ, 仕事
- Linux 以外に利用している OS
- Windows 2000, Windows 98, DOS
- Linux と Linux 以外の OS の使用頻度の比
- Linux 40%
- 評価に使用した Linux 環境
- ディストリビューション
- TurboLinux Server 6.5 (FTP)
- ハードウェア
MB: ASUS CUSL2-ML(815e) CPU: Pentium!!! 500MHz MEM: 256MB HDD: 20GB
最近は, 雑誌で毎月 Kylix の特集が組まれていて大人気だ. 記事では Delphi や VB からの移行記事が多い. これは, Windows ⇔ Linux 間 cross-platform development という挑戦的な Borland 社戦略の"成果"に違いな いから, 目論見どおりだろう. でも, 実は Delphi も VB も使った事の無い僕に は, 何も嬉しくない. あぁ, なんで C++ を最初に出してくれなかったのだろう〜. そんな訳で今回, 「Delphi っぽくない review」をする事にした.
さて, とにかく開発してみないと評価できない. どうせ開発するなら, 鮮度 が大事, しかも境界領域がよい.
RAD 環境で GUI が駆使できて, 評価に差がつく境界領域
⇒ X Window Manager!
RAD を掲げる Kylix を持ってすれば, Object Pascal も X もほとんど使った 事の無い僕に, 一ヶ月で Window manager が書けるのか? 書けたらすごいツールだ.
とにかく時間が無いので, 環境は新しく構築する事にする. HDD 20GB が一つ 空いていたので, Kylix が素直に install できるという TurboLinux Server 6.5 FTP 版に決定. 素直にインストール完了. Boot に手間どるも floppy で逃げる. Kylix も root でインストール開始. 方法は Linux らしく readme のみに 書いてある. Kylix では途中で意味の良く分からないパスをいくつか聞いてきたが 問題なく完了. user になって startx すると KDE menu に Kylix が 追加されていた.
Kylix を立ち上げてみる.
感想. 重い…. Linux でこんな重いとは思わなかった.
起動直後の new unit はとっつき易いのだが, コンパイルすると勝手に セーブされてしまう. unit はすぐ名前を付けて project 毎のディレクトリに保存 すると良い. ファイル名が unit 名となる. ここで unit 名はクラス名などと 衝突するので注意が必要. TDisplay という class をつくったら, そのファイル は TDisplay.pas にはできない. これは変な感じがするが, Kylix でいうファイルは C や C++ などのファイルと, モジュールの粒度が違うようだ. Compile 速度は異様に速い. Script 言語を実行していると言われたら 信じてしまいそう.
安定性, 90点.
機嫌の良いときは良く動くが, 癖がある. 一度機嫌をそこねたら, Kylix を 再起動することを勧める.
例えば, あるとき Timer を Form に貼り付けていじっているうちに, Kylix は Timer が二つあると思い込み始めた. その時はまだ慣れていなくて Timer の名前を変更する方法が悪かったのかもしれない. もしくは, core を 吐いた時の後処理が良くなかったかも知れない. とにかく一度一つを二つと 思い込むとかなり頑固だ. 片方は実体が無いので削除も何もできない. 結局, 普通触らない .xfm ファイルを変更. 解決した. この不透明さは 一度踏み外すと, 以降, プロジェクトの整合性に不信感を持ちそう. そんな時は, 一から出直したいと 思う人もあるに違いない.
ヘルプも不安定なようだ. Online help を激しくつかっていると徐々に editor の動作がおもくなる. 最後にはカーソルキーも追従しないようになる. Kylix を再起動すると直る. Kylix では良く見るドキュメントが online なので, もっとヘルプは軽くあって欲しい.
この時点で, Object Pascal の言語ガイド完読. 概要は把握した. Borland 社 の書籍は, とても内容の品質が高いと再確認した.
だんだん操作に慣れてくると, どんどん GUI が面白くなってくる. なるほど RAD 環境だ. Save dialog や, Status bar, Popup Menu などが瞬間的にできる.
今回 Window Manager を作るにあたって, Kylix に慣れるためにイベントログ 相当を Form で作る事にした. 2 時間ほどいじっているとできた. しかも clipboard 対応, ファイルにログ書き出し可, Log は time される. Status bar に時計もある. 案外難しかったのは Popup Menu.
Popup Menu の出し方は, Form property を少しいじれば auto とできるのだが, その事に気づくまで時間がかかった. それまでは Form click で menu 表示 だったが, ListBox を Form 全体に広げると click event をいつも横取りされ, Form が click を取れなくなる. すなわち popup menu が使えない.
CLX マニュアルに紙版が無いのがとても悔やまれる (紙版なら寝ながら読めるのに)
この時点までに, Ctrl+Shift+↑/↓, Ctrl+J, Ctrl+Shift+C などのとても 便利な shortcuts を覚えた. また Window Manager のお手本として選んだ Blackbox の要点をほぼ読み終わる. 実はこの時まで ICCCM を知らなかった. 先は長い.
Kylix の開発環境には慣れた. そこで Window Manager 実装作業にはいる.
Kylix から Xlib を直接叩くには Xlib という Unit が必要. Form に
uses Xlib;
を加えて, いきなり begin
,
XOpenDisplay()
,CreateSimpleWindow()
,
XCloseDisplay()
,end;
とやると動いた!
すんなり Window が描けたので, CLX の Display を使う事を思いついた. Screen という広域変数の Display property は PDisplay 型にキャスト可能. そのまま Xlib に渡せる. だから XOpenDisplay()/XCloseDisplay() をサボれる. 果たして, KDE 上では実行できたが Window Manager がいない状態では X が error を吐いた. TApplication と干渉するのが表面化したらしい. XOpenDisplay()/XCloseDisplay() はサボれない様だ.
ここにいたる段階で, テスト用の user account を作成. ~/.xinitrc をほぼ 空にし startx -- :1.0 とすれば F8 に Window Manager 無しで X が立ち上がる. このユーザから app を実行すれば WM の試験が可能.
こうしてプログラムが進むと, 実際にもっとも時間を取られる事が何か見え てくる. とにかく library の挙動が online help では見えてこない. しかも重 たい. 境界領域でしょうがないのだが, 用例が少ない.
幸い CLX のソースは公開されているので調べる事は可能だが, やはり文章で 設計方針みたいなものを説明してもらえると, とっつき易い.
Borland 社のマニュアルの質は一級品だと思う. 平易で正確な記述, 網羅性, 段階的な構成, 分本構成……等. だからこそ今回, ライブラリマニュアルが無い事実をとても不便に思った.
C++ の時もそうだったが, マニュアルの印刷 + 販売をしてくれれば僕なら買 うと思う.
Unit というのは, C のファイルと概念が少し違う. これに馴染めずに最初は クラスにつき Unit を一つ作っていた. だが問題が発生した.
Window Manager では Blackbox を参考にすると, Display class が X Display を管理し, eventloop thread が張り付き, Display は複数 Screen class を所有し, Screen は root window と複数 Workspace class を管理し, Workspace は client app window を管理する. Display は Screen を知る必要 がある. Screen は Display を知る必要がある. class で Unit を分けると直ぐ に uses 節の循環参照になってしまう.
実は, Unit というのはもっと疎に結合しているようだ. Xlib がその完結性 の良い例.
だから Display, Screen, Workspace などは実は一つの Unit に収めるべき だった. Eventloop thread は独立 unit. Form も Unit. 現在は更に WindowManager という便宜的 Unit があり, Form の OnCreate でよばれて Display と Thread を作って bind している. 他方, Display 生成は Unit 内で Screen や Workspace などを生成している. Form Unit に関しては全 unit から 参照されている. なぜなら Log の吐き出し口なので.
長々と Window manager の開発を Kylix で行おうという試みを書いてきたが, 現状はようやく初期化部が完成し, root から event を取得できている状態にある. 今後は, event handler 書きなどが待っている. しかし, それこそ Kylix の得意. 省力機能にとても期待している.
さて, 一ヶ月という短い期間では, Kylix を もってしても非力な僕には Window Manager を書き上げさせる事はできなかった. そこでアドバイス.:
仕事で Kylix を手にして本当に RAD 絶対な人は講習会にいきなさい. 趣味で色々遊びたい人は, マニュアルやウェブに埋もれるのも良いでしょう.
プログラマが遊ぶなら, 多くの夢を見ることができる 楽しい良いツールだと思う. RAD 環境としては Kylix は「手に付く」非常に優れたツールだと思う.
editor の keybind と似ている. ほんの数ストロークでほとんどの処理を達成 できてしまう身近な感覚のツールになりうる.
ただし, 学習する事が非常に多い. Component 技術は下の層を知らなくても プログラム可能だというが, Kylix はまだそうなっていない. しかも安定性や ヘルプの高速化は, もう一息がんばれるだろう.
買いか? 僕なら給料の 5 分の 1 まで払う (よって今は買えない).
そういう訳で Window Manager を一ヶ月で書き上げる事ができませんでした. 開発は中止? いえいえ, そのうち SourceForge.Net で公開予定です.
- Linux の使用歴
- 1 年
- UNIX の使用歴
- 1 年
- Linux Box の主な用途
- 家庭内 LAN のファイルサーバ, FTP サーバ, メール, ブラウジング 等
- Linux 以外に利用している OS
- Windows 2000 Server
- Linux と Linux 以外の OS の使用頻度の比
- Linux : Windows = 6 : 4
- 評価に使用した Linux 環境
- ディストリビューション
- Debian GNU/Linux (woody)
- ハードウェア
Panasonic CPU: PentiumIII 600MHz MEM: 128MB HDD: 20GB NIC: Intel Ethernet Express Pro 100
まず, 私は工業高校に勤務しており, 生徒には情報技術系の教育を行なっている. 授業内容は, ソフトウェア関係でいえば, 情報技術なだけあり, 開発言語についての教育に主眼が置かれたものとなっている. 私は, この Kylix が, Windows と Linux のクロスプラット フォーム での使用ができる. と, 言う点に注目している. 本校では, 昨年度 Linux を使用した実習を採り入れ, 生徒に Linux を教えているし, 本校の中核となるネットワークは Linux により構築されている. そのため, 各プラットフォームに依存しない開発言語を切望していたのである. この Kylix が, 教材として耐えるものであるかを検証したく, 今回, レビューをさせて頂いた.
届けられた Kylix の箱を空けてみる. 箱の重さで感じた期待どおり, 非常に Borland らしいしっかりとした マニュアルが添付されていた. 最近のソフトは, 従来どおりの大きな箱のわりに, CD と役 にしか入っていない事が多いのだが, 案外オンラインヘルプだけというのは使いづらい. そういう意味で, Kylix のマニュアルは充実していて好感がもてた.
さっそくインストールを開始. まず, Kylix が rpm 系のパッケージだという 噂だったので, そのまま Debian にインストールできるか心配していたのだが, スクリプト一発で簡単にインストールでき, すぐに使用することが出来た. CD-ROM のレーベルにも, インストールの際どのドキュメントを読んでやれば良いか 書かれていて非常にわかりやすかった. Debian 以外のディストリビューションはよく知らないが, きっとこれならディストリビューションの差異を特に意識することなく Kylix を導入することができそうだ.
操作性は, 本当に Delphi や VisualBasic そのもので, GTK などで, コンポーネントの配置の際に細かく位置を指定しなければならないのに対し, 非常に直観的で使いやすい. インターフェースの実装だけなら, すぐに仕上がる. これからの教育は, GUI のインターフェースを如何に使いやすく美しく仕上げるか, というのが優先されると思う. そういった事を考えると, GUI でインターフェースの実装ができるということは, 余計な時間の短縮になり, 良いとおもうし, これからはどんな OS でも, このような開発環境になってゆくだろうと思う.
少し気になったのが, 立ち上がりの遅さである. 私の検証用マシンは PentiumIII - 600MHz, メモリが 128MB と標準機であると 思うし, 普段 Gnome など使用していてもストレスはない. Kylix は, この環境で, 起動に 36 秒かかった. 実用範囲内の重さではあると思うが, これは少し弱点であると思う.
しかし, 一回立ち上がってしまうとすこぶる快適で, 動作が重いとは感じないのでよかった.
Kylix は Linux 用の開発ツールとしては, 確かに画期的なものであると言うことが 理解できた. しかし, 生徒への言語教育に耐えるものかどうかを, 検証しきることは出来なかった. クロスプラットフォームという点については新しい Delphi も検証してみる必要があると思う. いずれは Delphi と Kylix 両方を検証し, 生徒にもプラットフォームという分野を学習させることもできるかも知れない. そろそろ教育機関も, Windows しか入っていないマシンで教育を行なう 時代ではないと考えるからだ.
そう言う意味で, いままでは Windows でしかできなかった言語教育が Linux でできるというのは大きな魅力であると思う.
是非活用したい開発ツールである.