Javaってウ○コだな(とくにDoJa)

XPCEというPCエンジンエミュレータのソースを、Java(DoJa)に移植しています。


M6502は移植完了。
今は、Pce.cppを移植作業してます。


コンパイルエラーがあと83個です。
これを上から順番に地道に直していってます。


はっきりいって苦行です。
滝に打たれてたほうがまだマシなレベルです。


ほんとウンコ。
ウンコよりウンコに思えてくるぐらいウンコ。
ウンコ言語でスカトロプレイコーディングして徹夜してる俺ってよっぽどウンコ大好きなのかもウンコ。


コンパイルエラーを直すのはいいんですけど、ぜんぜん安心感が無いから、直してて気持ちよく無いんですよ。


unsigned charを、byteに置き換えて、キャストなんかをつけるコードを書く瞬間、
「ほんとにこれで大丈夫なんだろうか?」
という不安がどうしても付きまといます。


不安を払拭するためには、その変数を使っている箇所をしらみつぶしに見ていく必要があります。
めっちゃめんどくさい。
めんどくさい上に、移植元は自分で書いたコードじゃないから、変数の取りうる値がどの範囲になるかなんて、
ソースを見たって分からないことの方が多い。
神経使います。


これがC#だったら、何も気にせず気持ちよくコード組めたんですけどね。
やっぱりエミュレーションとか低レベルな処理を書くのに、unsignedが無いのは痛すぎる。
組み込み系とかでもJavaは使われているっていうのに。
そっち系の人たちは苦しんでるんでしょうか。


ちっとも最適化しないコンパイラにストイックな言語仕様とライブラリ。
しかも、携帯のVMの場合、JITがありません。


コンパイラの最適化も、実行時最適化も無いので、無駄なコードは一切書けません。
計算式が長くなってしまったからといって、途中の値を一時変数に代入しただけでも、確実に実効効率が悪くなります。


携帯とか、Javaで組まざる得ない環境もあるので、Java使ってますけど、
.NETが使えたら絶対そっち使うよなー。


生産性がぜんぜん違うもんなー。


てかmemsetに相当するメソッドって無いのでしょうか。
まあ自分で書いたからいいですけど。