« 増えるがな! | メイン | JAVA嫌いフォーエバー »

2005年07月03日

JAVA嫌いエターナル

JAVA嫌い

嫌いなので結局今やってる事もC++への通過点でしか無いのです。
でもまあ、できるようになったとして損は無いとは思いますが。
嫌いでもそこら辺は割り切って勉強しないとね。

嫌いな点:
なんか凄くC++をもとにして作ったような感じなのにJAVAerがやたらとC++を敵視している点。
これはC#もだろうけど、作ったオブジェクトを放置しておくのが違和感。まあ慣れかなこれは、な点。
名前。JAVAって名前。
JAVAVMの得体が知れない点。これは知識不足か。
何か色々な事が簡単にできちゃうのであんまり勉強にならない気がする点。

でも上のはほとんど勉強不足から来てるのです。
一番大きいのは登場時の印象が物凄く悪い物だったからだろうなあ。
まず、一般の目に触れたのはアプレットから。
だがしかし、JAVAアプレットはお世辞にも洗練されたインタフェースを持っていたとはいい難く、
見た目が果てしなくダサい上にブロードバンドも一般的では無い時代、無駄に重かった。
しかし、これからの時代はJAVAだ!と吹聴して回る雑誌等の影響か、無意味なアプレットがどんどん増えていった。
その結果、Webを利用するに当たってJAVAの存在が果てしなく鬱陶しい物になってしまったのだ。
また、JAVAのデスクトップアプリに関しても当時のVMとハードの性能の問題で、起動が物凄く遅く動作ももっさりしすぎていた。
その激しさはフォトショップが可愛く見える程で、とても実用に耐える代物では無かった。

まあ、そんな感じで数年前のファーストコンタクト時の悪印象を引きずっている上、
JAVA関連書籍の著者がやたらとC++を攻撃している現実を見るにつけ、いい印象を持てという方が難しいのです。
でも、今となってはEclipseだって未だに起動はどうしようもない重さだけれど、十分実用的なわけで、
VMの問題もハードの進歩と併せて解決しつつあり、業務用途でもかなり普及しているので無視できる存在でもありません。
実際使ってみるとC++よりわかりやすいし、Cよりも様々な面で便利ですしね。

とはいえ、C#が本流になってくれたらよかったのになあ。
いや、これからでもいいです、頑張れC#。

JAVA

C言語の課題 - 何でもいいから作って来い が面倒です。
とりあえず例の懐かしきインベーダーをUNIXで動くようにしてみます。
それが不可能であれば、お茶を濁したプログラムを作る事にします。

ところで、自宅でUNIXプログラムを作る事は難しい(Cygwinを使えば……ですが、仮に互換性の問題があって徒労に終わると嫌なので、それは実機でします)ので、
お茶濁しプログラムを先に作ってしまう事にします。

メモ

[必須!]UNIXでのgetch/kbhitの作り方
http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CCGI/function.html#getch
なんでデフォルトでサポートしてないんだろうね(・み・`

[驚き]シリアライゼーション
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/io/ObjectInputStream.html
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/io/ObjectOutputStream.html
噂には聞いていた直列化/直列化復元。まさかこんな簡単に実装できるなんて。
しかし、ネットワーク越しにインスタンスをやり取りするという感覚についていけません。(・み・`

[重要]Finally!!
ストリームを閉じたりする処理はやっぱりここで行いたいわけです。デストラクタに書くみたいに。
しかし、普通に

mySock.close()

と書くだけではうまく行きません。
まず、Socket mySockはtryの外にある必要があります。
そして、必ずmySockはnullで明示的に初期化しなければダメです。
さらに、finallyの中でtry-catchを繋いでclose()の例外を受け取らなければなりません。
面倒ですが定型処理なので忘れないように > 将来の自分

追伸:
上であれほどJAVAの悪口を書いておいてこんな事を言うのも心苦しいのですが、
どなたかJAVAの使いやすいリファレンス本をご存知無いでしょうか。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html
これもいいのですが、紙媒体でも持っていた方が便利なもので。

YsF


最初見た時「ブサイクな鳥ってこれ?」続いて「いや、これはモスラだ」。
で、結局蛾だと思ってずっと戦ってたわけですが、倒してからモンスター図鑑を見てびっくり。
……これが竜ってちょっと無理があるでしょう。
しかし手ごわかった。

攻撃する時以外は常に橋の両端で待機。
ただし、レーザーの誘導線が来た場合は橋の中にて待機し、射出されたら端へ戻る。
後は地道に避けつつ旋風ジャンプ攻撃を続けていればそのうち倒せます。

と、文に書くと簡単なような意味不明なようなよくわからない感じになりますが、実際やるとかなり辛い。
しかし、最初は「これ絶対無理だって!」と感じていた敵が、回数を重ねてパターンを掴むと途端に楽勝になる。
これですよ、これ。
弾幕と同種の面白さですよね。

相変わらず突然のフリーズはしょっちゅうですが、セーブポイントへ戻る事ができるアイテムを手に入れたのでこまめにセーブできるようになりました。
この程度じゃ少し改善されただけですけどね。またダンジョンの奥まで戻らないといけないし。

投稿者 miff : 2005年07月03日 00:13

コメント

Cygwinいいよ、Cygwin。

いや、入れてるだけであんまり活用してないけど(´・ω

投稿者 夜 : 2005年07月03日 01:14

いいかなあ。
まあ、慣れの問題なんだろうねえ。
でも実機で触りたいなあ。やっぱり。
ああ、欲しい欲しい実験用サーバ専用マシン。

投稿者 miff : 2005年07月03日 01:16

|v・)ぶっさいくー

ちなみに旧作のガルデバランはプロテクトリングはめてぼこれば倒せたり。
時間的にぎりぎりだけど。

投稿者 |v・) : 2005年07月05日 15:35

恥ずかしながら旧作はそこまで行けませんでしたからねえ。
プロテクトリングの性能は反則だと思います。

投稿者 miff : 2005年07月05日 21:43



XREAAD