Javaのススメ

Java登場の時代背景

Java はSUN Microsystemsというアメリカの会社が開発したプログラミング言語です。元々は、組み込み系の言語として開発が始まったようです。WWWブラウ ザが登場した1995年ごろに、ブラウザ上で動くプログラミング言語としてJavaは脚光を浴びました。その時に声高々に言われていたのは、

WWWとの親和性の高さ

当時、文字や静止画しか表示できなかったブラウザが、Javaアプレットというものを利用することで、動画やプログラムを動かすプラットフォームになると期待されました。

Write once, Run anywhere

これは、Javaがバーチャルマシン(JVM:Java Virtual Machine)と呼ばれる仮想マシンの上で動く言語であることから、JVMさえあればどんなOS(プラットフォーム)の上でもソースコードを書き換えることなく動くということです。

オブジェクト指向言語である

当時、流行っていたオブジェクト指向言語に、C++ がありました。しかし、既存のC言語との互換性を考慮したため、ちょっと使いずらい問題がありました。そこで、C言語に似ていてかつシンプルなオブジェクト指向言語として、Javaに注目が集まりました。

Javaの現状

さて、現状のJavaはどうでしょうか?

「WWWとの親和性」については、今ではFlashのほうが普及してます。Javaは敗北したと言えるでしょう

「Write once, Run anywhere」についてはどうでしょうか?個人的な印象としては80点をあげれるかなーという感じです。OSが変わってもほとんど書き換えることなくプログラムが動かせるプログラムを作れ る。。。という点では、Java以上の言語は他に存在しないと思います。ただし、携帯電話用のJavaな どでは、仕様が乱立していたりします。Javaで書かれているからと言って、書き換える必要がないというわけではありません。まあ、Write once, Run anywhereという言葉の意味をそのままくみ取ってはいけないってことですね。

「オブジェクト指向言語である」ということについては、現在は、RubyやC#など、Javaの欠点を補うオブジェクト指向言語が出ています。言語開発というのは後発のもののほうが改善されるのはある意味あたりまえですね。

また、Javaがバーチャルマシンを利用するということで、「動作が遅い」ということで敬遠されていましたが、近年はハードウェアの性能が向上して、その遅さが気にならない程度になっています。とはいえ、Javaで動いているデスクトップアプリケーションはま だまだ少ないです。

ウェブアプリ系では、Javaは積極的に使われています。皆さんもご存じのGoogleでもJavaが使われています。

Javaを学ぶ価値

ここは、一般論ではなくて個人的見解なので適当に読み流してください。私は以下の点からJavaを利用していますし、学生に使わせたいと思っています。

スマートなオブジェクト指向言語である

大 学の講義ではC言語を採用しているところは多いですが、オブジェクト指向言語が普及している現在、オブジェクト指向言語を知らないというのは、情報系のカ リキュラムとしては問題ありでしょう。Javaはオブジェクト指向を理解する上でいい教材となります。もちろんC++でも代用できますが、C++はある意 味書きにくい言語です。C++が書きにくいということはJavaをやってればわかります。オブジェクト指向を理解することを考えれば、言語はシンプルなほ うがいいです。Javaはオブジェクト指向を学ぶ上でスマートな言語です。

Javaのように普及している言語は少ない

1番である。。。とはいいません。普及率を調べれば、過去からあるC言語とかVisual Basicなどのユーザが多いかもしれません。Javaほど様々なプラットフォームで動く言語は少ないと思います。世界的に見てメジャーな言語であることは間違いないです。

無償である

これは大きな点ですね。インストールもさほど難しくありません。

最新のソフトウェア技術の実装が行われている

研究等で使えそうな最新の技術は、Javaで実装されていることが多いです。もちろん、他の言語にも対応していることはありますが、Javaに未対応という のはあまり見かけません。というより、Javaのオープンソースコミュニティから、積極的にそういった最新技術が開発されています。ちなみにGoogle もJavaのライブラリを提供しています。

Javaも進化している

現在のJavaはバージョン6ですが、使いやすいよう、または最新の技術に対応できるようにバージョンが挙がっていってます。これは、安定しないと側面を持つことになりますが、少なくとも学術的な利用においては全く問題ありません。

と、いろいろな要因を考えるとJavaに落ち着きます。たぶん同じような理由で、Javaを採用している教育機関は少なくないと思います。

Javaをマスターするために理解してほしいこと

Java をマスターするためには、「オブジェクト指向」を理解する必要があります。JavaはC言語に似ているため、C言語風(非オブジェクト指向風)にプログラ ムを作成することはできます。しかし、それでは真のJavaプログラマーとは言えません(なんちゃってJavaプログラマーです)。また、Javaのライ ブラリを活用するには、オブジェクト指向を理解しておかないと理解困難な点が必ず出てきます。「オブジェクト指向」はちょっと敷居が高いかもしれません が、言語の習得とオブジェクト指向の理解の両方を意識してもらいたいと思います。

補足:Javaの種類

Javaは、さまざまなプラットフォームで動くことから、開発キットにも以下の種類があります

    • J2SE(Java StanderdEdition) ・・・ Java言語の基本となる部分です。Javaプログラムには必須です。
    • J2EE (Java Enterprise Edition)・・・ ウェブアプリケーション開発で必要となるライブラリ
    • J2ME(Java Micro Edition)・・・ 携帯電話や組み込み用のライブラリ

状況に応じて適切なエディションを使う必要があります。J2SEは必須ですので、まずはこれからマスターしておきましょう。また、これらは絶えずバージョンアップしています。現状は、J2SEはバージョン6update21 (2010/8/現在)です。