2012/04/16

小学生からはじめるJava言語:
Javaの特徴

サン・マイクロシステムズ社によって開発された(1995年~)

当初は家電用(組込)の移植性の高い汎用プログラミング言語として開発された。インターネットの普及と共に拡張され、ネット関係で広く使われるようになった。2010年1月にサン・マイクロシステムズ社はオラクル社に買収されたため、現在Javaはオラクル社で管理されている。

無料で開発できる

Java開発に必要なソフトウェアは、オラクル社(サン・マイクロシステムズ社)のホームページからダウンロードする。また本格的な開発に必要なEclipseなどの統合開発環境も無料で手に入る。 また作ったプログラムの配布も制限はない。

人気のある言語

ネット上のプログラミング言語の情報の多さではJavaがトップらしい。このことはJavaユーザーが多い現れだろう。多くの用途にまたがるJava言語だが、基本となる言語仕様は全く同じため、Javaと書いてあれば安心して参考にすることができる。後方互換もあるため、古い情報でも問題なく使える場合が多い。これが他の言語だと、変種も多く、同じ言語でありながら、言語仕様が微妙に違ったりする。開発環境でも書き方が違うため、何かと苦労することになる。特にユーザー数が少ない言語は試行錯誤が付きまとうことになる。そういう意味ではJavaは情報が多いだけでなく、安心して利用できることから、学習しやすいプログラミング言語と言えるだろう。

Write Once, Run Anywhere 一度書けば、どこでも動く

Javaのプログラムは、OSから直接実行するのではなく、JavaVM(Java仮想マシン)を使って実行させるため、JavaVMさえインストールされていれば、同じプログラムがハードウェアに依存せず実行できる。一度書いたプログラムは、windowsでもMacでもLinuxでもUnixでも動くわけだ。パソコンのOSの違いだけでなく、AndroidやLEGOマインドストームなど大きく違うハードに対しても、プログラムのコア部分は再利用することができる。

バイトコード(中間コード)を利用する

プログラムには大きく分けて2つのタイプがある。エディタで書いたプログラムを1行1行読んですぐに実行するインタプリタと、一度コンパイルという作業で、マシン語に変換して実行するタイプ。一般的に複雑なプログラムの場合、処理スピードはコンパイル言語の方が速い。Javaはコンパイル言語に属するが、マシン語ではなく、中間言語にあたるバイトコードを生成する。これをJavaVMが実行する。この構造により、上記の「一度書けば、どこでも動く」を実現している。処理スピードはインタプリタと純粋なコンパイル言語の中間だが、初期の頃に比べて劇的に速くなっており、コンパイル言語と比較しても遜色ない場合もある。

Javaはいろいろな機器で使われている

Javaは、サーバ、パソコン、スマートフォン、モバイル機器、家電(カーナビとか)などいろんな機器で使われている。それにもかかわらず、開発は同じ要領で行うことが出来る。目的に応じて、開発ツールを追加するだけで対応できる。実行するハードが違ってもプログラミングは同じように行える。Javaを使わない場合は、それぞれのハードごとにプログラミング言語の習得と様々なハードウェアの勉強をする必要があり、手軽ではない。

オブジェクト指向プログラミング言語である

オブジェクト指向の説明は抽象的なものが多く、初心者にとっては理解しがたいもの。結局のところ、巨大なプログラムをチームで開発する場合に具合がよい手法と言えるのではなかろうか。また、しっかり設計されていれば、変更、修正、再利用など、メンテナンスしやすいプログラムを構築することができる。現在のプログラミング言語の多くはオブジェクト指向をサポートしている。Javaは、int,long,float,doubleなどプリミティブ型が存在していたり、多重継承を排除していたり、完全なオブジェクト指向とは言えないが、うまく妥協しているので、理解しやすく実用的にまとめられている。

C/C++に近い構文

JavaはC/C++を参考にして作られた言語なので、文法などが酷似している。C等の経験がある人は習得しやすい。逆にJavaがある程度分かるようになると、C/C++の習得も容易である。

ガベージコレクションがある

ガベージコレクションとは、ごみ収集という意味。これはコンピューターのメモリ上にある不要な部分を解放するもの。プログラムはメモリにロードして実行するのだが、そのときに、必要なものを随時ロードし、不要になったら削除する動作を繰り返している。そうしないとメモリがいっぱいになって何もできなくなってしまう。従来はメモリ開放は意図的に行っていたが、設計が不十分だと深刻なダメージが起きてしまった。このメモリ管理は高いスキルが要求される。Javaではメモリ管理をプログラマーではなくJavaが行ってくれるので深刻なダメージが起きにくく、安全なプログラムを作りやすい。

メモリ節約には向かない

JavaはどうしてもJavaVM(Java仮想マシン)をOSの上で走らせて、その上でJavaプログラムを起動するので、メモリ食いは避けられない。WindowsXP環境では最低でも30MBぐらいのメモリを使う。最近のPCは数ギガ単位のメモリを搭載しているので、それほど問題ないが、少ないメモリで、やりくりしている場合は注意すべきだ点だ。

小学生からはじめるJava言語 目次はこちら