開発環境ってなに?


今回は、Javaの開発を支援するためのソフト、一般に「開発環境」と呼ばれるものについて考えてみましょう。

まずは「開発環境」というものがどういうものか、なぜ必要なのか?というところから始めましょうか。皆さんの中には、「なんで開発環境なんていうものが必要なんだ?」と疑問に思う人もいるかもしれませんね。

既に「はじめてのJava」でJavaの簡単なプログラミングを開始していますので、皆さんの中には、もうJavaの開発ソフトをインストールして触っている人もいるかもしれませんね。--JavaはSun Microsystemsという会社が開発している言語なのですが、この会社からは各OS向けのJavaの開発ソフトが無償配布されています。ですから、これで一応、プログラミングはできるのです。

が、実際問題として、この純正の開発ソフトで開発を行っている人はあまりいません。まぁ、初めて勉強するというときはこれで十分ですが、ある程度複雑なプログラムを作るようになると、どうしても開発環境を揃えないといけなくなるでしょう。

Sun Mirosystemsより無償配布されている開発ソフトは、ワープロやテキストエディタなどを使ってプログラムを書いてコマンドを実行する、という非常に原始的なものです。実際に開発を行っていくと、このやり方ではあまりに不便であることが身にしみてわかってきます。そこで、さまざまな便利機能をもった「開発環境」と呼ばれるものが使われるようになるのです。

開発環境というのは、文字通り開発をするためのさまざまな機能を実現するためのソフトウェアです。Sun Microsystemsで配られているソフトも、まぁ開発環境の一種といってもいいでしょう。ここで取り上げるのはそうしたものではなく、一般に「統合開発環境」と呼ばれるものです。これは、開発に必要な機能を一つのソフトウェアとしてまとめたものです。Sun Microsystemsの配布するものは「プログラムを生成するもの」「プログラムを実行するもの」「ドキュメントを作るもの」という具合にさまざまなプログラムがたくさん用意してあるのですが、統合開発環境は1つのソフトウェアの中にこれらがすべて入っていて、いつでも呼び出せるようになっています。

では、統合開発環境というのは旧来のものに比べてそんなにも便利なものなのでしょうか。Sun Microsystemsで配布されている標準の開発ソフトと比べてどういう点が便利なのでしょう。ちょっと整理してみましょう。

開発環境は、エディタやコンパイラ、デバッガなど多くの機能がひとまとめになっている。一般に統合開発環境と呼ばれる。

●入力が楽!
多くの統合開発環境では、プログラムリストを打ち込むためのエディタにさまざまな入力支援機能を組み込んであります。例えば、言語の命令や予約語、変数、値などの種類ごとに単語を色分け表示したり、命令などを入力中に現在利用できる命令などを一覧表示したり、その命令の使い方などの説明まで表示させたりできるものもあります。また文法チェックなどをリアルタイムに行ってくれるものもあります。

●バグ取りが楽!
プログラムには「バグ」(問題点)がつきものです。多くの統合開発環境には「デバッガー」といって、プログラムにバグがないかチェックするための仕組みなどを標準的に備えています。「バグ取りなんてそんなに重要じゃないし」などと思うなかれ! 本格的なプログラミングになると、プログラムを作っている時間よりデバッグの時間のほうが長くなることだってあるんですよ!

●プログラムの構築が楽!
Javaのプログラムは、プログラムリストを打ち込んだ後で「コンパイル」と呼ばれる処理をして作ります。これは、1つしかファイルがないとコマンド入力でもそう面倒ではありませんが、いくつもファイルがあったりするとかなり面倒です。またWebの開発などでは、プログラムの他にXMLファイルや各種の設定ファイルなどを必要に応じてコピーしたりしないといけません。統合開発環境では、こうしたプログラム作成の処理をすべて自動化してくれます。

●公開が楽!!
特にWebサーバの開発では、サーバソフトとの連携が重要になります。ただ作るだけでなく、完成したプログラムをサーバが認識し公開するような作業を行わないといけません。多くの統合開発環境では、一般的なサーバソフトと連携してこれらの作業を自動的に行ってくれます。

……いかがですか? 統合開発環境のなにが便利なのか、なんとなくわかったでしょうか。まぁ、実際にプログラミングを始めてみないと便利さは実感できないかもしれませんね。これらの利点を一言で表すなら、「開発に必要なさまざまな作業をソフトに任せられる」ということでしょう。

プログラミングを「ただプログラムリストを書くだけ」の作業だと思っているとしたら、それは大きな間違いです。実はそれ以外にかかる時間のほうが圧倒的に多いのです。--例えば、ビギナーのうちは「命令を調べる時間」が作業の大半を占めるでしょう。「あの命令、つづりを忘れちゃったぞ」「こういうことをやる命令があったはずなんだが、何だっけ?」・・そんなことを調べるのに何時間もかかってしまうことだってザラです。

統合開発環境があれば、そうした時間を大幅に短縮できます。うろ覚えの単語もエディタで似たような候補を一覧で表示してくれるのですぐにわかるでしょう。初めて目にする命令もヘルプからすぐに検索し使い方を調べられるでしょう。ただそれだけのことがどんなに便利か、それは実際に体験してみないとわからないものですよ。