fj.comp.lang.java
[Top] [All Lists]

Java

Subject: Java
From: Shinji KONO
Date: Fri, 18 May 2007 02:00:27 +0900
Newsgroups: fj.comp.lang.java
河野真治 @ 琉球大学情報工学です。

というわけで、プログラミング言語シリーズ。

James Gosling と言えば、実は、Gosling Emacs という、Stallman
のではないEmacs で有名な人だった。で、「C++ の騒ぎが収まっ
た後に、いまさら、オブジェクト指向言語? 」というのが最初の
印象です。最初は組込みとかの用途だったらしいのだが、売り込
みに失敗して汎用言語/WWW用の言語として売り出したらしい。

最初の印象は極めて悪いです。配列にはキャストして入れるのか
よ? で、配列に入っているオブジェクトのクラスがわからなくな
るから、new Interger(n) とかするの? 正気ですか? 自分の言語
のターゲットして、Java VMが使えるかと思って調べてみたら、Bloc
k begin, Block end っていうコードがある。そういうものは仮想
マシンコードとは言いません。そういうのは、構文木を表すコー
ドっていうの。処理系も遅かったしね。AWT も出来悪かったし。
しかも、ソースコード出さないわけ? おかげで、Kaffe とかいう
実装にはまったりしましたが。

IOが使いにくい。Byteとchar/string の扱いが面倒。Multi Thread
が、良く考えられてなくって、synchronized ばかりになってしま
う。そんなこんなで、一太郎ARKが、Pure Java で出たときは、ち
ょっと驚きました。「そんなものが書ける言語だったのか?」みた
いな感じ。Cで書いたUser level transport layer をJavaで書く
ってのをやって、すごく苦労したし(学生が...)。その時点で、オ
ブジェクトのリンクを工夫してnew をけちって再利用したりする
と、GCの関係で遅くなるなんて話も聞きました。「それじゃReal-
timeに使えないだろ」と思った。結局、GCされないメモリ領域と
かがReal-time Java では用意されたらしい... 

もっとも、JITと、Interface は、良いアイデアだったと思う。ど
っちも借り物だけどね。Applet が流行らなかったのは残念だった
が。流行らなかった理由は、Applet で使えるJavaのエンジンのversion
が、ちっとも新しくならなかったから。例のMicrosoft の問題も
あったし。

なんだけど、1.5 になってから、ぐっと良くなった。Java のGeneric
は、配列のキャストのsyntax suger であって、型にしか付かない
ので理解しやすい。Iterator もまとも。nio は、ぐっとUnix寄り
になっていて使いやすい。Thread と Lock も整理されたし。

Java の仕事をちょっとしたこともあって、OSの課題の大半をJava
でも書きました。Ecli pse との相性はいいしね。Eclipse のdebuger
は、ちょっと使いにくいけど。Perl/Tk で書いた自分用のソリテ
アをJavaに書きなおすってのをやりたいのだが、微妙に暇が見付
けられず。なんでだろ。もっとも、Java で、それほど大きなアプ
リケーションを書いたことはありません。

---
Shinji KONO @ Information Engineering, University of the Ryukyus
河野真治 @ 琉球大学工学部情報工学科

<Prev in Thread] Current Thread [Next in Thread>