非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

Javaが懐かしいと思う7つのこと

   

Javaから離れて3年が経とうとしています。

 

今はメイン言語がC#ですが、C#はJavaの模倣品みたいなもので、おかげで参入障壁は低かったです。

低いのですが、C#を使いながら時々Javaが懐かしく思うことがあります。今日はそんな話です。Javaはこんなところが良かったなって思うこと7個紹介します。

[ad#top-1]

1. すべてメソッドにまとめられている。

Javaへの批判の1つにプロパティがないことが挙げられています。たしかにC#やVBではプロパティ、メソッド、イベントの3つに分けられていて、なんとなく”機能が多彩”と思えてしまいますが、個人的には逆にこれが判りにくいと思っています。正直、ヘルプを見ても、探している機能がプロパティにあるのかメソッドにあるのか今でも迷います。その点すべての機能がメドッソに収まっているJavaはシンプルで目的に到達しやすい利点がありますね。

2. 例外処理の強制

Javaではメソッドで例外がスローされていたら、例外処理を組み込まないとコンパイルエラーになります。当初はウザイと思っていましたが、例外処理が必須でないC#ではプログラミング時に面倒くさくなって例外処理をやらないことがしばしば。そのため予期しないところで実行エラーが発生してしまうことがあります。そういったことを最初から予期していたJavaはさすがだなと思います。

3. 実行時エラーの原因箇所がすぐわかる

Javaは、実行エラーが発生するとコンソール画面で、ソースコードのどの行でエラーが発生したかが明示されるため、原因箇所がすぐに発見できます。一方で、C#はエラーメッセージボックスが現れて、エラーの種類までは明示されるものの、どの行で発生したかはわかりません。修正するための工数は、Javaの方が少なくてすみます。

C#は実行エラーが起きると以下のようなウィンドウが現れて終わりです。ここからどこで発生しているか探すのが結構大変です。

 

4. 実行時エラーが出ても続行できる

ソフトウェアにとって大して深刻ではない実行エラーが発生した場合は、できればそっとしてほしいと思うことがあります。例えばボタンアイコン画像のファイルが存在していなかった場合など。もちろん最終的には修正しますが、それ以外のより重要な機能を取り急ぎ確認したい時など。Javaはコンソール側でエラー内容が明示されますが、GUI部分では特に変化しないので、別の言い方をすればバックグラウンドで明示され、GUI上は何も気にせず続行できます。C#はメッセージボックスとして現われ、終了するか続行するかをいちいち聞いてきてかなり面倒です。それに画像が存在しない場合は、続行が許されず終了するしか選択肢がないところが、ちょっと融通の効かないところです。

5. わかりやすい命名規則

Javaの命名規則はよく考えられていて、特にドキュメントでほしい機能を探そうとするときにとてもわかりやすくできています。例えばテキストボックスからテキストを得ようとするときのメソッドは、getText()となり、何かを得ようとするものは必ず頭にgetが付きます。ドキュメントはアルファベット順で並んでいるのでget系はまとまって見ることができます。一方C#は、プロパティで単にTextとなっているなど、必ずしも規則的ではありません。これがドキュメントで探すのに時間を要す原因となっています。(で、結局ネットで調べてからドキュメントで探すという手間が生じる)

 

6. ドキュメントの見易さ

1項と6項とがあるだけでもドキュメントの見易さはJavaに軍配が上がりますが、それ以外でも、クラスの親子関係やメソッドの型、引数の型などは、Javaのドキュメントの方が断然わかりやすいと思います。

以下がJavaのドキュメントの例。一覧表で戻り値、引数の型が一目瞭然です。

 

一方でこちらがC#。一覧票だけでは戻り値がどんなものかよくわかりません。引数も情報としてはあるものの何か見づらいです。

 

7. ドキュメントがダウンロードできる

JavaではドキュメントがHTML形式でダウンロードできますので、オフライン環境でも読むことができます。一方、C#はMicroSoftサイト上でしか見ることができません。(是非ともダウンロードできるようにしてほしい) もしかして、VisualStadioをインストールすればヘルプが付いてくるのかもしれませんが、ドキュメント単体でも入手できたらいいなと思っています。

地味ですがオフライン環境でヘルプが見れるかどうかは非常に大きいです。

 

まあ、JavaはJavaで欠点もあるので一概には言えないのですが、時折懐かしいと思ったりしています。

[ad#ad-1]

スポンサーリンク

 - 技術系コラム