EmptyRoom

Diary

twitterもはじめました

[213]2006/9/21(Thu) [tag: 旧日記システム ]
0xCAFEBABE
Javaはじめました。

Philia。がJavaやり始めるらしいので、俺も便乗して。 いや、前からやりたいと思っていたんだけど、良いきっかけになった。

生協でJavaの本を1時間ほど吟味して、買ったのが結局 超ブ厚い本。 …いや、この本くらいしか欲しい情報が網羅してある本が無かったので… ああ、高かったよ…

Amazonのレビューで初めて「オブジェクト指向」について書かれていないことが判明した。…そういや、ねぇなコレ。 まぁ、そのうちJavaデザインパターンの本でも買ってそこら辺は勉強しようか。

で、さらに、この本、開発環境構築の話が載ってなかったよ(ぉ 前書きをよく見たら「ビギナー編を理解した人を対象に…」ってマジかよ! って、思ったんだけど、普通に文法とか最初から書いてある感じなんだが…はて。 これならビギナー編は一体何が書いてあるの?的なくらい。

開発環境、最初はSunのダウンロードページ から、統合開発環境(IDE)のNetBeans付きのものをDLしてインストール。

重っ!!!なんだこれ!

そのとき、デスクトップはエンコ中だったのでノートにインスコしたんですが、 重すぎて超もっさりでした… っていうか、メモリを150MBも持っていくなよ! メンバの自動表示、時間かかりすぎだよ!

IDEとしては標準的な機能は一通りそろっているようで、 リアルタイムエラー検出、コードの自動補完、関数の引数表示、メンバの一覧表示とかあって、良いんですが、 これはちょっと重すぎ…

ノートではIDE使うのあきらめて、素直にテキストエディタ+コマンドラインで行きます… GUIアプリ組むの、キツそうだなぁ… 大規模なアプリだと関数の引数表示、メンバ一覧が無いとちょっとイヤだなぁ。 まぁ、どうせノートでそこまで大きいの組まないか… そのまえに、俺のモチベーションが続くか疑問だが。

で、ちょっと触ってみたのがこんな感じ。 Hello Worldと、簡単なソーティングプログラム。 …まぁ、さすがにこれを組むだけならワケないです。 でも、いろいろJavaの利点、欠点がこれだけでも見えてきましたよ。

・ 配列の長さが分かるのは便利、動的配列も簡単
int num = 128;
int array[] = new int[num];
array.lengthで128を得られる。 C/C++では変数で配列定義はできない。 ちょっと面倒なことをする必要がある。

・ 基本型(intなど)の参照渡しができない
Cで作るようなSwap(値交換)みたいな関数が作れない。

・ 数値演算の仕様に疑問あり、自動型変換(縮小)がない
short a, b = 1;
a = -b; //エラー (shortのキャストが必要)
byte(8bit), short(16bit)を演算で扱うとき、自動的にint(32bit)に変換してしまうなら、 縮小の自動型変換も実装すべきだと思うが…

・キャストの優先度がC/C++と違う
double dbl = 0.1;
int a, b = 20;
a = (int)dbl * b; //CではOKつか、キャスト必要ない
これだとaは常に0。正常に動作させるなら、
a = (int)(dbl * b);
結構ダサい…キャストなんてできればしたくないが、Javaはキャスト必須っぽいしなぁ…

思ったほどJavaも洗練されてないなー、といった印象を受けてしまったわけですが、 言語レベルでマルチスレッド対応だったり、マルチプラットフォームなのが一番の魅力だと思う。

あと、Javaアプレットはおもしろい。 あんな簡単にGUIっぽいアプリが組めるとは思ってもみなかった。 勉強1日目でブロック崩しゲームでも作ってやろうかと思ったけど、さすがに無理だった(ぉ クラス、画面描画までは良かったものの、アプレットの仕様と、スレッドをいじくるところでコケた。 …素直に、参考書の最初から眺めよう…

…ネットワークまで手を出さなくて良かったな、俺。 しかし、初日にこんな飛ばすと、すぐバテそうですな… 明日も勉強してるのかなぁ…(ぉ

#いい加減HTMLタグが汚くなってきた。整理したい…
#苺ましまろをエンコすると縮みすぎ!
#Quality=93で110MBって…35MBは音声だし。
#どんだけ静止画が多いんだ。

名前
コメント

Cookieに名前を保存して,次回から名前の入力を省略する
パスワード