悪戦苦闘
とりあえず頑張って最低限設定ファイルとしてありそうな記述をカバーする共通ロジックは作ってみた。
まぁ、エラー時の処理とか、実際にプロジェクトに取り込むにはまだやる事があるけど、とりあえず、なんとか形には・・・。
JavaはJavaの利点があるんだろーけど、なんつーか、オブジェクト指向言語としてソレでいーのだろうか?って所も多々あって大変。
顧客の要望無い限り、自分で進んでJava使って何か・・・ってやりたいと思える言語じゃないなぁ・・・。
Java触ってみて、一番がっくり来たのはオペレータのオーバーライドがまったく無い点ですなぁ。
オブジェクト指向の根本は「オブジェクト自身が、何か操作をされたときにどう振舞うかを把握している」という所に尽きると、個人的には思うわけですが。
オペレーターとゆー、プログラム言語がオブジェクトを触る基本的な機能に関して、Javaのクラスは自分の振る舞いをまったく定義出来ないワケですなぁ・・・。
それってどーなんだ、オブジェクト指向言語として。
まぁ、クラスのメソッド自体は定義できるので、ソレで各機能を準備すればいーんだろー(だからオブジェクトが自分の振る舞いを理解してる=オブジェクト指向だ)って話もあるけど、そーするとどんなに直感的に「足し算」「引き算」で操作できそうな内容でも、プログラムを作った人間が、その人の趣味とセンス、更にはその時の気分(コレが一番恐ろしい。書いた本人でさえ、時間が経つとたどり着けない)で勝手につけた名前になるワケで。
たとえば、各国の通貨をサポートする為に、タダのint型じゃ不足(為替レートとかの処理も含めたいので)だから、基本クラス「通貨」を持つ「円」「ドル」とかのクラス群をクラスライブラリとして作ったとしよう。
C++やC#等のオペレーターのオーバーライドをサポートした言語ならば、この「通貨」クラスの足し算、引き算は
とかかきゃー良い。てゆーか、極端な話、
とかってのさえ出来るオペレータだって書ける。
でも、Javaだと
とか書かなきゃイカンのだよ。下の例なんて、
か?
さらに、ヘルプ見ないとaddがplusかも知れないし、sumかも知れないワケで。
ぶっちゃけ、関数の引数にしても、intとかの基本型は値渡しなのに、クラスは参照渡しだったりとか、クラスと基本型の間で言語使用が統一感がなくてちぐはぐなんだよねぇ・・・。
しかも、それを正しく理解していないと、(当たり前だけど)ちゃんと動くプログラムが書けないワケで。
よく皆こんな言語で仕事してるよなぁ・・・。まぁ、やっつけで目の前の作業片付けてくだけなら、コードの再利用とか気にしなくて良いから、この辺問題にならないって事なのかぁ?(を
(つか、オブジェクト指向の目的には、オブジェクト単位でコードをまとめることで、ソースコードの再利用性を高めるっつーのも有った筈なんだがなぁ・・・。)
トラックバック URL :