かつては私も、ソフトウェアとは、コンパイラと付属の標準的な機能を使って自分で作るもの、と思っていました。ところが、ふとしたきっかけで、ソフトウェア部品というものが売られていることを知り、今ではすっかり部品収集マニアです。ソフトウェアコンポーネント活用で開発生産性を向上させませんか?

  • ソフトウェア部品なしの開発は考えられない
  • 部品を買う理由

ソフトウェア部品なしの開発は考えられない

「ソフトウェアの部品化」と、「部品の組み立てによるアプリケーション開発」は、
永年にわたり、ソフトウェア業界の悲願でしたが、最近になって
ようやく、それが現実のものになったと感じています。

広い意味でのソフトウェア部品は、

  • ユーザの目に見える部品 - GUI部品
  • ユーザの目に見えない部品 - 一定の「機能」を部品化したもの

の両方を含みます。後者は、あるいは「ライブラリ」と呼んだ方が
よいのかもしれません。
「ライブラリ」を使わないプログラミングなんて、誰にも考えられません。
ですが、ここで問題提起したいのは、ライブラリの入手経路についてです。

  1. OS/開発環境/コンパイラに付属のライブラリを使う
  2. サードパーティからライブラリを購入する
  3. オープンソース・フリーのライブラリをダウンロードして使う
  4. 社内・プロジェクト内で再利用可能な共通ライブラリを開発する

上記の四つのうち、1.4.は盛んに行われています。3.については
最近はプログラマのアレルギーがやっと薄れてきたところでしょう。
しかし、2.については、未だ活用が十分でないと思います。

正直に申し上げて、ソフトウェアコンポーネントには良いものもあれば
使い物にならないものもありますが、買ったコンポーネントの
半分が使い物にならなくても残りの有用なコンポーネントで時間が
節約できれば、十分に元が取れます。

勇気を出してみませんか?

Delphiとソフトウェア部品

さて、弊社でのソフトウェア開発の主力環境はBorland Delphiです。弊社が
輸入販売しているのもDelphi用コンポーネントです。

Windowsアプリ開発にはMicrosoft Visual Studio .NET という環境も
ありますが、今のところ .NETに急ぎ乗り換えるメリットは見えません。
Win32環境でのアプリ開発をする限りでは、Delphiのコンパイルの速さを
手放す気にはとてもなれません。

何よりDelphi環境では、サードパーティ製のソフトウェアコンポーネントの
選択肢が多いのです。

大会社は自社開発のソフトウェア部品を自社内だけで独占使用する傾向にあり、
ソフトウェアコンポーネントを市場に供給するのは、比較的小規模な会社です。
少数精鋭の会社がDelphiのコアなユーザであったことが、
Delphi環境での良質なコンポーネントの流通につながっているのでしょう。

Delphi環境におけるコンポーネント

今日のGUIアプリケーション開発は、簡単に言うと、以下のように行われます。(簡単に言うとですからね)

画面(フォーム)の上に、ボタンや、文字列(ラベル)や、データ入力欄(エディットボックス・リストボックス…)などの部品を配置する

ボタンをクリックしたり、リストボックスから項目を選択したり、ユーザが部品を操作したときに実行すべき手続き(イベントハンドラ)を、言語を使って記述する

一昔前までは、ソフトウェア開発というと、エディタで言語を使って記述したプログラムを、コンパイラで実行形式に変換するだけだったために、アプリケーション開発に使用するツールとは、イコール「言語処理系」「コンパイラ」だったわけですが、現代の開発ツールは、「画面作成ツール」+「コードエディタ」+「コンパイラ」+「デバッガ」になっています。

ここでいう「画面作成ツール」の作りは、どの製品を選んでも似ています。すなわち、
パレットから部品を選んで、フォームの上に落とす、という操作で画面を作成していくのです。Delphiも例外ではありません。

ソフトウェアコンポーネントを買うと、
単に使用可能なライブラリが増えるだけでなく、
この --パレット上に載っている部品の種類が増える--のが一般的です。

ソフトウェア部品がパレット上に目に見えるので、
開発者にとっても新しい部品を簡単に使いこなせるのです。