アプリの作り方

 最初の最初です。そんな感じ。

アプリケーションと普通のファイルの違い?
 ファイル。まぁ色々ありますね。そのファイルの中にも「単独で実行できるファイル」と「実行されたファイルに読み込まれるファイル」の2種類あります。皆さんがこれから作るのは前者というわけですね。
 でも、このふたつってどう違うんでしょうか?
 ズバリ、中身が違うんです
 当たり前やーっ!
 まぁ落ち着いてください。基本的に、最初の方に「これはアプリケーションなんだよー」みたいな部分があるんです。エディタとかで無理矢理見てみると、結構色々分かると思います。
 さて、こういう特殊なファイルですから、特別な方法を使わないと作れないわけです。つまり、特殊なアプリケーションを使って特殊な方法で作る必要があるわけです。この「特殊なアプリケーション」には「コンパイラ」「リンカ」「インタープリタ」、そういったものをまとめた「統合環境」「開発環境」なんていうものもあります。それらを紹介しましょう。

プログラム
 まず必要なのが「プログラム」、皆さんがこれから書くものです。この辺はサンプルなんかを見ているのでどんな感じか分かるでしょう。ちなみにプログラムをコードと呼ぶことがあります。で、プログラムを打ち込むことをコーディングと言います。使うとかっこいい単語のひとつです。
 どんなプログラムでも必ずあるのはスタートとゴールです。これは、言語に依存するので専門書を見ましょう。Cでのmain()みたいなものです。
 ただ、わかりにくいものもあります。JAVAスクリプトやVBスクリプトは、そのホームページの最初の行から最後の行ですし、VBだとその部分が覆い隠されちゃってます。その辺を注意しておきましょう。
 スタートしたら、プログラムの流れは基本的に上から下へと進みます。そして、ぶっ飛びます。いろんな場所に飛んだり、前の方にワープしたり、流れが止まったと思ったらどっかからいきなり現れたりします。
 でも、ひとつのプログラムの中で同時にふたつ以上の流れが生まれることはありません。追いつき追い越せみたいなレースはとりあえずないということです。ただ、ふたつ以上同じプログラムを実行したときにはこれと似たようなことが起きます。でも基本的には流れはひとつだけと憶えておいた方がいいでしょう。

プログラムを、コンパイル
 プログラムを書いたら、次に必要なのはコンパイルです。コンパイルは日本語で「編集」とかいう意味です。
 ありがちな表現ですが、コンパイルってのは人間に分かる言葉をコンピューターに分かる言葉に変換することです。もし先ほどアプリケーションをテキストエディタで見ていたのなら、その中に存在する意味不明の文字列を確認しているはずです。つまり、コンパイルすることで、この意味不明の文字列に変わってしまうというわけです。
 一昔前は、これをじかに打ち込んでました。そういう時代もあったんです。昔はコンピューターの性能が悪かったから、コンパイルそのものができなかったり、できても無茶苦茶時間がかかったりしたからです。ま、今は忘れちゃっていいでしょう。

 さて、コンパイルしたあとの「ブツ」が問題です。簡単なプログラムだと、これだけでアプリケーションが完成します。めでたしめでたしですね。
 でも、そうならない場合もあります。プログラムを細かく分け、それぞれをオブジェクトファイルというものにします。これはもちろんアプリケーションじゃありません。じゃぁどうすればいいの?

オブジェクトファイルをリンク!
 プログラムをコンパイルした、いっぱいオブジェクトファイルができた。さてこれをくっつけたいな、そういうときに必要なのが「リンカ」です。
 リンカはそういう細かいパーツを組み合わせてくれます。そして、ちゃんとしたひとつのアプリケーションに仕立ててくれます。この部分は特にC言語でお世話になります。逆に言えば多くの言語ではあまり気にしなくていい部分とも言えます。
 ちなみにウィンドウズで有名なDLLは、このリンクをアプリケーションの実行時に行うものです。コンパイルしてできたパーツをいくつものアプリケーションで使う場合に便利です。

メークファイルとビルド
 というわけで、アプリケーションを作るには「コードを書く>コンパイルする>リンクする>できあがり!!」という手順を踏む必要があることは分かったと思います。
 と、きっと「あれ? 私そんなことしたことないよ」とか「えーっ!! そんなめんどくさいの!?」という人がいるでしょう。というわけで、これを簡略化する方法があるのです。

 ひとつは「メークファイル」で、これはコンパイルやリンクを自動的に行ってくれるものです。「このファイルとこのファイルをコンパイルして、できたものをリンクして」って書くことで、それを自動的に行ってくれるのです。「バッチ」や「マクロ」、「スクリプト」のようなもの、と言うと解りやすいかもしれないですね。でも、このメークファイルは文法が独特で少し解りにくいという欠点があります。新しくプログラミング言語を覚えるようなものですね。
 そこで、最近の新しい開発環境には「ビルド」という機能が付いています。と言っても、実はメークファイルと同じなんです。違う点は解りやすい!! 設定を簡単に変更できて、ボタンひとつでアプリケーションができちゃう!! そんな感じです。

インタープリタ
 こういったものとは別の方法もあります。それが「インタープリタ」と言うものです。
 「アプリケーションを作る」ということは「コンピューターの解る言葉に変換する」ということだと書きました。が、実はコンピューターは方言が無茶苦茶強いです。もうCPUが違うとかなりばりばり言葉が変わってきます。
 ということは、アプリケーションを作製する場合にはそのCPUごとに違うものを作らなくちゃいけないということなのです。マック用とウィンドウズ用、ふたつ作る必要があるのはこのためです。

 この不便さを解消するため「コンピューターが実行する時点で初めてコンピューターの解る言葉に変換する」のが「インタープリタ」です。JAVAやJAVAスクリプトがそうで、この機能のおかげでどんなOSのどんなブラウザから見てもちゃんと実行できるというわけです(もちろん言語拡張とかで正しく動くとは限りませんが(汗))。
 ただ、その都度その都度変換しなくちゃいけないということで比較的重い、遅いということがあります。この辺はプログラムとインタープリタによるのではっきりとは言えませんし、現状では解決しつつあると言えるでしょう。

とにかく色々!
 この「アプリケーションを作る」という部分は、OS、言語そして作るためのツールによって千差万別です。
 例えば学校の授業とか、CGIを作りたいということでUNIXのアプリケーションを作る、という場合には、PascalはpcCはccやgccといったコマンドを使用します。この辺はコマンドの使い方を憶えるのがちょっと大変かもしれません。また、基本的に開発環境は使わせてもらえないでしょう。
 パソコンのアプリケーションを作りたい、という場合には多くの開発環境(Visual C++、Visual Basic、Delphi、CodeWarrior等)が発売されているのでそれらを購入するのが一番です。ただし!! 結構高価なので色々情報を集めてから買うのが良策です。学生や先生はアカデミックパックとして安く購入できるのでその点も忘れずに。
 「これからプログラミングを始めよう」と考えているのであれば、インタープリタを使うものをお奨めします。例えばJAVAスクリプトであればブラウザさえあれば作れます。Perlもインタープリタを使用するので、これでCGIを作ってみるのもいいでしょう。どちらもインターネット上に情報が多く存在するという利点があります(プログラミングの本は高いのです!!)。まずはこれらで、自分のプログラミングに対しての適正をチェックすることをお奨めします。
 最後にJAVAですが、これはインタープリタを使用しますが、同時にビルドすることも必要です。というわけで開発環境が多数発売されていますし、比較的安価ということもあるので、こちらも「プログラマーへのステップ」として利用できるでしょう。

 そして!!
 もう「どの言語で作るか、開発環境を使うか」を押しつけられちゃってる人へ
 「この言語をこの開発環境を使ってどんな風にアプリケーションを作るのか」という基本的な部分が実は最も情報を得にくい、そう筆者は感じます。それはおそらく、プログラミング言語よりも複雑で、多種多様だからではないでしょうか。そういう手を着けにくい部分だから、解説書とか少ないんだと思います。
 いちばんいいのは訊く!! これです。直に訊くのもよし、フォーラムや掲示板、メーリングリストやニュースグループ、いろんな所に人はいます。そして、こういう場で情報の流れに首を突っ込んでみる、それがプログラマーへの最初の一歩なんじゃないかなーなんて思います。

(C)KAB-studio 1998 ALL RIGHTS RESERVED.