Windows開発者に贈る
Kylixの全貌

大野 元久
ボーランド株式会社
2001/2/20

コンポーネントフレームワークCLX

 Kylixを最も特徴づけるのは、なんといってもコンポーネント(部品)を基本としたビジュアル開発というスタイルだ。Delphiもそうだが、Kylixのコンポーネントは、単にユーザーインターフェイスの設計が目的のものばかりではない。コモンダイアログの呼び出し、データベースアクセス、インターネットプロトコルなど、実にさまざまな処理がコンポーネントとして組み込まれており、その数はServer版では165個以上になる。

 CLX(クリックス:Component Library for Cross Platform)は、DelphiのコンポーネントフレームワークVCL(Visual Component Library)をベースに開発されている。DelphiでVCLの使い方に慣れていれば、使いこなすのは容易だろう。

 CLXに含まれるコンポーネントは、技術的にはクラスそのものである。つまり、フォーム上にコンポーネントを配置することは、そのままオブジェクトを生成することになる。例えば、Visual C++のダイアログボックスでは、コントロールを配置することに「加えて」コントロールに対応するメンバを追加したり、オブジェクトを生成するコードが必要だが、Kylixではコンポーネントを配置するだけで、プログラムからコンポーネントを扱えるようになる。

 CLXは、ビジュアル開発の基礎となるだけでなく、文字どおり「クロスプラットフォーム」という目標がある。CLXは、KylixだけでなくDelphiの将来のバージョン(*編注)にも採用される予定である。つまり、CLXを使ったプロジェクトは、KylixでコンパイルすればLinuxのネイティブアプリケーションになり、DelphiでコンパイルすればWindowsのネイティブアプリケーションになるのだ。これは、現在のWindows開発者がLinux市場に手を広げようとする際の強力な武器になるだろう。実際、Linuxへの進出を考えながらもWindowsを捨てられないという人は多い。もちろん、LinuxとWindowsは、ファイル名の大文字小文字を区別するとか、ドライブ名が存在しないといった違いがある。こうした違いは、コンパイル指令で判別することになる。

*編注:「Delphi 6」になるだろうといわれている

 CLXには、主に基本的なクラスを提供するBaseCLX、ユーザーインターフェイスを設計するためのVisualCLX、データアクセスのためのDataCLX、Web開発のためのNetCLXがある。

■BaseCLX

 BaseCLXは、プラットフォームへの依存性をなくす基本部分である。BaseCLXには、文字列処理やメモリ管理、ファイル処理に関するランタイムライブラリや基本的なクラスが含まれる。ここに含まれるクラスの多くは、現在のDelphiでも使われているものだ。

■VisualCLX

 VisualCLXは、ユーザーインターフェイスを設計するためのクラスである。前述の例で取り上げた、ボタンやカラーダイアログもVisualCLXに含まれる。CLXがWindowsとの互換性を考慮していることもあり、Delphiにある多くのコントロールがCLXでも提供される。一般的なボタンやリストボックス、ラジオボタンなどに加えて、ツールバーやステータスバー、イメージリストなどもある。ただし、すべての機能が実装されているわけではない。また、書式付きエディット(RichEdit)やメディアプレーヤ(MediaPlayer)、DDE関係など、Windowsに特化したものは含まれていない。逆に、HtmlBrowserのように現在のDelphiには含まれていない機能もある。

■DataCLX

 DataCLXは、データアクセスに関するコンポーネントである。データベースエンジンをコンポーネントとして取り込んでいる。DataCLXによって、ローカルなデータやInterBase、MySQL、Oracle、DB2のようなRDBMSへ接続できる(OracleとDB2の対応はServer版のみ)。

■NetCLX

 NetCLXは、ApacheなどのWebサーバモジュールを作成するためのコンポーネントである(詳しくは後述)。

高速なネイティブコンパイラ

 Kylixでは、プログラミング言語としてObject Pascalを使う。Pascalというのは、Delphiユーザー以外にとってはなじみの薄い言語かもしれない。Pascalは、もともと教育機関で開発された比較的コンパクトな言語だが、Object Pascalはオブジェクト指向プログラミングへの対応をはじめ、大幅に機能が拡張されている。Pascalは、あいまいな構文を受け入れないという特徴があり、やや堅苦しい言語と思われているが、裏を返せばいいかげんなプログラミングによるバグを排除できるということでもある。

 Kylixに組み込まれているPascalコンパイラは、ネイティブコード(機械語)を生成する。つまり、Linux用のネイティブな実行ファイル(ELF形式)を直接生成する。もちろん、シェアードオブジェクト(.so)も作成できる。そもそも、ボーランドが最初に発売したのがPascalコンパイラだということもあるが、そのコンパイル技術は非常に優れており、1分間に約400万行(Pentium III-650MHz時)という高速性を実現している。これが、軽快なビジュアル開発と高速なネイティブアプリケーションの生成を両立させる基礎になっている。

 究極のパフォーマンスチューニングを求めるのであれば、インラインアセンブラを利用できる。Kylixの組み込みアセンブラは、MMXやSIMD、3DNow!を含むx86命令セットをサポートしている。

 Kylixには、基本的にglibcで提供されている基本的なライブラリのほとんどがPascalで利用できるように取り込まれている。例えば、CLXコンポーネントを使わないコンソールアプリケーションも開発できる。しかし、Linuxのカーネルを操作したり、デバイスドライバを開発するといった用途は考えられていない。Kylixの目的は、あくまでもアプリケーションを開発することにあるのだ。

3/4

Index
Windows開発者に贈る Kylixの全貌
  Kylixの正体
  開発工程を一変させるビジュアル開発環境
コンポーネントベースの統合開発環境
ソース編集を可能にする2Way-Tool
強力なソースレベルデバッガ
コンポーネントフレームワークCLX
BaseCLX
VisualCLX
DataCLX
NetCLX
  高速なネイティブコンパイラ
  Kylixのデータベース開発機能
  Apacheにも対応したインターネット開発
  KylixがLinuxを変える

Linux Square全記事インデックス


 Linux Squareフォーラム プログラミング関連記事
特集:オブジェクト指向に生まれ変わるPHP5[前編]
現在開発中のPHP5は、オブジェクト指向機能が大幅に強化される。次世代PHPはどのような言語になるのか?
特集:Windows開発者に贈る Kylixの全貌
注目の開発環境「Borland Kylix」がいよいよ見えてきた。ここに、英語版の発売を目前に控えたKylixの機能やアーキテクチャを紹介しよう
特集:Kylixプログラミング作法
GUIの構築やコンポーネントとコードの関係、 Object Pascalの仕様など。 これらの点を、実際に日本語ベータ版でプログラミングしながら分かりやすく解説
連載:PHP4で作るWeb-DBシステム(全5回)
PHPはWebサーバとデータベースを結びつけるものだ。そのためPHPでの開発を開始するには、OS、データベース、Webサーバ、そしてPHPと、多くのソフトウェアのインストールを行う必要がある
連載:ステップ・バイ・ステップ・シェルスクリプト(全7回)
Linuxの中でシェルスクリプトはネットワークの設定、デーモンの起動など重要な役割を果たしている。この連載では、シェルスクリプトで実用的なプログラムを組むことを目標にして、シェルの基本的な知識を説明する
連載:Kylix 3とDB2で作るWebサービス・アプリ(全5回)
Kylix 3とDB2 V8.1を使って、Webサービス・アプリを作ってみよう。トライアル版も用意されているので、実際に試しながら読んでほしい

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間