現在一番開発で使われている言語ではないかと思う。
そして、JavaというとWeb開発というイメージをもたれる方が多いのではないでしょうか?
JavaはSmalltalkとC++から良いところを取った言語です。
完全なオブジェクト指向であるSmalltalkにC++の構文やプリミティブ型等を入れることによってかなり使いやすい言語に仕上がっているものです。
さらに、どのプラットフォームでも同じ動作をするのでWindowsやLinuxなどOSを選ばない所も魅力的です。
(C++とかは、OSによって使える関数が違ったりする。)
ただし、それだけの事を実現するためにはネイティブコードを捨てなければならないのです。
すなわち処理速度がかなり遅いという欠点があるのです。
その欠点をある程度埋めたのが、Javaサーブレットです。
(アプレットは遅すぎて見れたものではない・・・。)
もともと、CGI(Parl)全盛期の頃にCGIの遅さを解消したのがJavaサーブレットでした。
CGIはアクセスがあるたびにプログラムをロードして実行していたのですが、Javaサーブレットはサーバー上にあらかじめプログラムをロードしておき、アクセスがあるたびにスレッドを発行して処理速度を向上させたのだ。
(Apacheも2.0になってからマルチスレッドに対応している。)
これによって、Java=遅いという概念を消し去り
Web=Java
という構図を作り出したのです。
それによりJavaは急速に発達していったのです。
HTMLの出力を簡単に行える言語であるJSPの出現や、J2EEテクノロジーの出現などWeb開発ではJavaの独壇場になって行きました。
(小さいプロジェクトではPHPの方が強いです。それは開発速度と処理速度がかなり速いためだと思います。)
また、IDEであるEclipseも相当使いやすく、Visual Studioより多機能で玄人にはたまらない開発環境だと思います。
(Eclipseは最低限の機能しか触れないので、深く書けません。)
ちなみに、私の主観としてもかなり使いやすい言語です。
ポインタを意識的に使えなくしているので、C++のような可読性の悪いコードはあまり見かけません。
(C#でも、限定条件上でしかポインタは使えません。ポインタは可読性を著しく下げたりバグを引き起こしやすい代物ですからね・・・。)
C++から来ている構文なので技術移行も簡単です。
ただし、テクノロジーやプラグインが多いので覚えることが多く開発環境を整えるまでが大変だと思います。
熟練者がいるなら兎に角、これから初めてJavaで開発しようと思ったら相当の勉強が必要でしょう。(お遊びでやるならそこまでの勉強は要らないかもしれませんが・・・。Webサーバーだけでもいくつ候補があることやら・・・。)
また、C#から移行するとポインタ系の命令が使えなかったりStaticクラスが使えなかったりとオブジェクト指向がらみで少し戸惑いますw
P.S.
JavaとC#の目的は違いますが、言語が進化していく過程は同じ感じがします。
ジェネリックや可変長引数、EnumなどJavaとC#で共通している物はかなり多いのです。
| このブログのURL
|この記事のURL