2009年01月21日

JAVAの良いとこと悪いとこを挙げてみた

なんとなくJavaの良いとこ悪いとこを書いてみた。交互に5個ずつで10個。割と普通のことしか書けなかった。

Javaさんは嫌いではないです。むしろけっこう好きです。そこそこに気の合う同僚くらいの間柄です。でも、萌えたり愛したり夜明けのコーヒーを一緒に飲んだりするところまでは至ってません。ちょっと堅いところがあるから、そこまで踏み込めないのかもしれません。


長所1. 絶対に被らない名前空間
パッケージ名にドメイン名を使う風習が根付いているので、その辺から落としてきたライブラリと自前のライブラリの名前が被ってげんなりすることがありません。Javascriptとかだと被りまくるよね。PHPもけっこう被った記憶がある。Pythonはこの2つに比べると被らない方か。

短所1. コードが長くなる
例えば別クラスの関数を使う時に、クラス名.関数名みたいに書かないといけないとか(static importはJavaっぽくないから使わない)、2〜3行の軽い処理をさせたいだけの時でも、クラス作ってその中にmain関数を書かないといけないとか、2で挙げる型の問題とかで、他の言語よりもコード量が増えやすい。

長所2. 信頼できるboolean
例えば空文字を評価した場合、結果はtrueでしょうか、falseでしょうかと言われると、言語によってマチマチだったりしますが、Javaさんはこの点が非常に明快。falseはboolean型であり、0も-1もnullも空文字も、falseとして扱われることはない。この点は、PHPとかのソースでよくバグの原因になってるのを見かけるので、良いことかなと。

短所2. 型キャストが面倒
暗黙のキャストを利用して、数値型を文字列に変換する時に「String.valueOf(num)」とか堅苦しいこと書かないといけない。数値変換する時は、こまめにException吐いてくれたりもする。Commons使えばそれなりに楽になるけど、暗黙変換が欲しくなる人には向かない。

長所3. Run Anywhere
ローカルのWindowsのTomcat上で開発したソースが、Linuxのサーバでもほぼそのまま動くって偉い。ファイル操作とか文字コードに依存するとこは動かないこともあるけど、それでも同じソースがそれなりに動くのはありがたい。

短所3. VMの起動が重い
簡単なアプリケーションでも動かす為にはVM立ち上げないといけないので、無駄に重い感じを醸し出したりする。メモリの設定をちゃんとしておかないと、ほんの僅かなコードで平気で128MBくらい占有しようとすることも。

長所4. 信頼性のあがってきたガベージコレクション
Javaさんも良い歳になってきたので、ガベージコレクション周りもそれなりに信頼して良くなってきたような気がする。効率良くヒープメモリを使うので、メモリ周りの処理性能はけっこう良いという噂を聞いたことも。

短所4. フルガベージコレクションの頻発は勘弁
メモリの使用量が膨らんでいくと、フルガベージコレクションを頻発してあたかもフリーズしたかのような状況を作り出してくれる。あれ、もう少しさっぱりした動きになってくれないかなぁ。

長所5. 豊富なライブラリ
ライブラリの作りやすさと使いやすさには、定評があるような気がする。JavaDocという共通の自動生成ドキュメントの存在と、1で上げた名前空間の厳密さのお陰だろうか。あと、jarファイルでもJadがあればそのままソースが云々。

短所5. 豊富じゃない使い道
現状、サーバサイドではそれなりに勝ち組だけど、デスクトップのプログラムでは明らかに勝ててない。業務用以外で使われてるのを見かけるシーンがもう少し多くなれば良いなぁと思う。
posted by MW at 00:29| Comment(2) | TrackBack(0) | 10個シリーズ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
"" + numはJavaでも出来ますよ
Posted by nagise at 2009年01月21日 18:16
ホントだ。勘違いしてました。ご指摘感謝。
Posted by MW at 2009年01月21日 23:20
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。