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など)の参照渡しができない
Cで作るようなSwap(値交換)みたいな関数が作れない。
・ 数値演算の仕様に疑問あり、自動型変換(縮小)がない
・キャストの優先度がC/C++と違う
思ったほどJavaも洗練されてないなー、といった印象を受けてしまったわけですが、 言語レベルでマルチスレッド対応だったり、マルチプラットフォームなのが一番の魅力だと思う。
あと、Javaアプレットはおもしろい。 あんな簡単にGUIっぽいアプリが組めるとは思ってもみなかった。 勉強1日目でブロック崩しゲームでも作ってやろうかと思ったけど、さすがに無理だった(ぉ クラス、画面描画までは良かったものの、アプレットの仕様と、スレッドをいじくるところでコケた。 …素直に、参考書の最初から眺めよう…
…ネットワークまで手を出さなくて良かったな、俺。 しかし、初日にこんな飛ばすと、すぐバテそうですな… 明日も勉強してるのかなぁ…(ぉ
#いい加減HTMLタグが汚くなってきた。整理したい…
#苺ましまろをエンコすると縮みすぎ!
#Quality=93で110MBって…35MBは音声だし。
#どんだけ静止画が多いんだ。
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 array[] = new int[num];
・ 基本型(intなど)の参照渡しができない
Cで作るようなSwap(値交換)みたいな関数が作れない。
・ 数値演算の仕様に疑問あり、自動型変換(縮小)がない
short a, b = 1;
a = -b; //エラー (shortのキャストが必要)
byte(8bit), short(16bit)を演算で扱うとき、自動的にint(32bit)に変換してしまうなら、
縮小の自動型変換も実装すべきだと思うが…a = -b; //エラー (shortのキャストが必要)
・キャストの優先度がC/C++と違う
double dbl = 0.1;
int a, b = 20;
a = (int)dbl * b; //CではOKつか、キャスト必要ない
これだとaは常に0。正常に動作させるなら、int a, b = 20;
a = (int)dbl * b; //CではOKつか、キャスト必要ない
a = (int)(dbl * b);
結構ダサい…キャストなんてできればしたくないが、Javaはキャスト必須っぽいしなぁ…思ったほどJavaも洗練されてないなー、といった印象を受けてしまったわけですが、 言語レベルでマルチスレッド対応だったり、マルチプラットフォームなのが一番の魅力だと思う。
あと、Javaアプレットはおもしろい。 あんな簡単にGUIっぽいアプリが組めるとは思ってもみなかった。 勉強1日目でブロック崩しゲームでも作ってやろうかと思ったけど、さすがに無理だった(ぉ クラス、画面描画までは良かったものの、アプレットの仕様と、スレッドをいじくるところでコケた。 …素直に、参考書の最初から眺めよう…
…ネットワークまで手を出さなくて良かったな、俺。 しかし、初日にこんな飛ばすと、すぐバテそうですな… 明日も勉強してるのかなぁ…(ぉ
#いい加減HTMLタグが汚くなってきた。整理したい…
#苺ましまろをエンコすると縮みすぎ!
#Quality=93で110MBって…35MBは音声だし。
#どんだけ静止画が多いんだ。