ってある?
2ですが、なにか?
3 :
デフォルトの名無しさん:01/12/30 19:31
CはJAVAに比べて処理が速く何でもできるとよくいいますね。
JAVAはオブジェクトが使えますから、オブジェクト指向派の人にはJAVAの方がいいかもしれません。
しかしながら、C++の方ができることの範囲が広いようなので、そっちのほうがいいかもですね。
惨
死
氏++
Javaのおかげで、Cには厨房が集らないので助かってます
C:インラインアセンブラが使える
Java:言語レベルで GUI や Thread などが使える
Cの良いところはポインタが使えるところで、
Cの悪いところはポインタを使わなければならないところ。
Java が良いのは、糞壁がウンチクを語らないこと。
Cはなんでもできるってのはよく言われるけど、
おまえは本当にCでしか書けないようなプログラムを書くのか?
たんにデバイス制御もできるし、とかいいたいだけなんじゃないかと、
問いたい。問い詰めたい。小一時間問い詰めたい。
CでできることはJAVAで全部できるんかね?
もしそうなら Cが消える日がくるかもしれんな
Javaでは動的なプログラムは作れません。
プラグインや動的関数ポインタは無理。
死んで欲しい。
知人は CはJAVAみたいにきれいなプログラムを書けないから
糞とか言ってくるので言い返したいのですが、
Cしか知らない私は言い返せないで
JAVAがCより優れている所があるなら 私も教えてほしいです。
Cがエッチなら
Javaは夜明けのコーヒーみたいなもんだ。
>>17 標準ライブラリが豊富。
>>11が書いてるように、標準規格内でスレッドやGUIをサポートしている。
JAVAはそんなにきれいに書けるもんなの?
Cで書こうが、JAVAで書こうが綺麗かどうかって
いうのは設計の問題のような気がするけど・・・
22 :
デフォルトの名無しさん:01/12/30 23:46
Javaってインタプリタ方式だから実行速度遅いよね。
実行速度が速いだけでCが優れている と言われるなら
PCのスペックが年々上がっているので、
数年後にはJAVAのほうが勝る可能性があるんじゃないのですか?
分野によるね
>>17 Javaは JVM がないと何もできないよ。
Cを糞とか言うやつには、JVM が何で書いてあるか問詰めてみろ
26 :
デフォルトの名無しさん :01/12/30 23:54
>>26 スペックが上がれば
JAVAが遅く感じることがなくなるってことじゃない?
28 :
デフォルトの名無しさん :01/12/31 00:09
>>27 だが
>>23の言っている
「JAVAのほうが勝る」
なんてことにはならんだろう。
30 :
デフォルトの名無しさん:01/12/31 00:14
>>17=
>>1 とりあえずJavaの悪い所はPrimitive型へのポインタが取得できない事かな。
それと、(ヒープ上に取ってるくせに)配列の大きさを変えれない事。
>>30 「Javaで」ポインタ取得できたとして、
なんか嬉しいことあります?
32 :
デフォルトの名無しさん:01/12/31 00:19
34 :
デフォルトの名無しさん:01/12/31 01:26
JavaにCのコードを埋め込めるよ。
だから、Cでできることは全部JAVAでできるけど。
一般的にJAVAにCのコードを埋め込む時は、
機種(OS)に依存したプログラムを書くときだね。
C++→Cトランスレーターなるものがあるので、
JAVAは何でもありなわけだけど、
わざわざOS依存させて、実行速度を優先させるケースも少ないんで・・・
void *func()=jmp_table[command_code*4];
func();
みたいなCで二行で済むことをJAVAだとどんなコードになるんだろう?
36 :
デフォルトの名無しさん:01/12/31 01:32
Primitive型ってなんですか??
>>35 ((Command)map.get(code)).execute();
準備さえしとけば、一行で済むよ。
ジャンプテーブルの変わりにCommandインスタンス
のマップ作っとくだけ。
38 :
デフォルトの名無しさん:01/12/31 01:41
>>35 OOがわかってない事をさらすなって(笑)
39 :
仕様書無しさん:01/12/31 01:42
>>37 そういう使い方は便利だなぁ。
参考になたーよ。
40 :
デフォルトの名無しさん:01/12/31 01:42
>とりあえずJavaの悪い所はPrimitive型へのポインタが取得できない事かな。
OOでプログラム書いてるときは、そういうケースで困った事はないな。
>それと、(ヒープ上に取ってるくせに)配列の大きさを変えれない事。
ネタだよね・・・
41 :
デフォルトの名無しさん:01/12/31 01:43
>>42 ハッシュマップからコードでハッシュ検索するだけなんだから、
コードのインスタンスのhashcode()メソッド適当にオーバーライド
して遅くないルーチンに最適化しとけば、かなり速いよ。
hashcode()で引いて来た番号をハッシュマップ内部の配列の添字番号
としてそのまま参照引き出してあげれば済むような最適化は、簡単に
できるよ。
44 :
デフォルトの名無しさん :01/12/31 01:51
>>34 Cはアセンブリコード埋め込めるぞ。
MMXやSSE使うときに必要。
いちばん簡単なのは、キー値に0から順番の値のIntegerインスタンス
使うこと。hashcode()メソッドが、単に内部のint値返すだけだから。
46 :
デフォルトの名無しさん:01/12/31 01:54
>>43 というか、そこって速い遅い議論するところじゃないでしょ。
>>40 >ネタだよね・・・
コラッ!せっかく
>>36あたりが釣れそうだったのにバラすなって!(w
つられました。
で、Primitive型ってなんですか??
intとかlongとかですか?
じゃ
>>30はswapかきたいだけでバイトコードインタプリタ否定ですか?
まあ、はっきり言ってしまえば、JAVAのクラスは何で書かれてるの
かと言えばCで書かれている。
VC++の新しいVerは古いVC++を使って開発されているってのは聞きますね~
他のCやC++も同様なのでしょうけど、javaの新しいVerをjavaから作っていったら...
数回verupすると恐ろしい事になりそうやね
CはUnixと共に成長し、C++を生み、
今なおメインの言語として君臨している。
Cは
「論理的で、覚えることが少なくて、実行速度が速い、皆に愛されている言語」
だと倉薫も書いていたYO!
>>52は一瞬JVMをJavaで書くように読めてつっこみそうにナターヨ
>>51Javaのクラス? ふつーJavaで書かれてるんでないか?
コンパイラはCで書かれてるんだろうけど。
新しいアーキテクチャのCPUが出てくれば、やっぱり最初に提供されるのはCなんだろうから、
Cはまだまだしばらくの間、必要なんだろうとおもわれ。
午前3時半か
もうすぐヤツが目を覚ます時間だな
,~((((((((~~、
( _(((((((((_ )
|/ ~^^\)/^^~ ヽ|
| _ 《 _ |
(|-(_//_)-(_//_)-|) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| 厶、 | < おはよ~~。
\ |||||||||||| / \_____________
_-‐' ̄|\ / `ー―-、__
/~⌒~ ̄| , -‐'\ ` - ー '/ \ '  ̄\
/ | `ー―-、ヽ ノ -―'~ ̄ 、 \
/ / `ーV -‐' ̄ ヽ |
/ || \ |
| || |`、
/`-、 / ヽ||/ ヽ ー、_ノ \
/ 、 ○ ||/ ○ |/ \ \
/ V \. || / | |
| ヽ ヽ/ヽ、 人 | |
| / \、_ / \ / ヽ | |
/ ノ /  ̄`ーー' l 、 ̄`ーー-ー' ∧ l |
( / /\ 入 / | | / ) / \ 人 |
/ \ ,/ \ l、_ 人_ _,| -‐',/l / `ー、_>-‐'~ |
// 〈 | \ / | ヽ / | | |
| | | | | | | / | |
| | | | l、_ 人_ _ _ ,| _/ | |
| | / /‐--、______, --‐'~ __〈 | |
57 :
デフォルトの名無しさん:01/12/31 03:45
∧_∧! / ̄ ̄ ̄ ̄ ̄ ̄ ̄
__( ;´Д`)__< 遅刻だ!
| 〃( つ つ | \_______
|\ ⌒⌒⌒⌒⌒⌒\
| \ \
\ |⌒⌒⌒⌒⌒⌒|
\ |______|
5分も負けた…。
朝からハイだぜ、ベイベー!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,~((((((((~~、
( _(((((((((_ )
|/ ~^^\)/^^~ヽ|
| _ 《 _ |
(|-(_//_)-(_//_)-|)
| 厶、 |
\ |||||||||||| /
⊂ \_______⊂ ⌒`つ≡≡≡(´⌒;;;≡≡≡
 ̄ (´⌒(´⌒;;
>>38 OOと関係無いだろ ヴァーカ!市ね!糞が!
>>50 ネタだって言ってるのに…。
そう本気にされると申し訳なく思えちゃうな。
Javaでもswap書けるよ(これはネタじゃない)
>>36
61補足
かなり無理矢理だけどね。
>>61 ほ?ポインタとれると、なにか、swapに特殊なテクニックがあるですか?
しかも、Javaで「無理矢理」な…
年末もハイだぜ、ベイベー!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,~((((((((~~、
( _(((((((((_ )
|/ ~^^\)/^^~ヽ|
| _ 《 _ |
(|-(_//_)-(_//_)-|)
| 厶、 |
\ |||||||||||| /
⊂ \_______⊂ ⌒`つ≡≡≡(´⌒;;;≡≡≡
 ̄ (´⌒(´⌒;;
「Javaにはレジスタ変数が無い」とかだったら、わかるんだが…
Javaにはswapメソッドを書く必要性がありません。
なんでそんなswapが話題になってるの?
tmp=a;a=b;b=tmp; でいいんでしょ?
プリミティブだと値のコピーによる交換だけど。
どーせプリミティブのコピーなんてたいしたコストじゃないし。
>>67 初心者本しか見たことの無い冬厨の季節だから。
>>67 だってそれじゃ、ポインタ取れるかどうかなんて関係ないじゃん。
このスレって「Cしか知らない馬鹿」隔離スレみたいね。
C?
あんなアセに陰毛が生えた程度のものを
言語っていわないでくれるかな。
72 :
デフォルトの名無しさん:01/12/31 11:12
>>71 しかし、その陰毛がヤラしい部分をけっこう良く隠蔽
しているんだよな。
無毛萌え~
ねーねーねー無理矢理なswap、まだ??
75 :
デフォルトの名無しさん :01/12/31 12:05
>>71 おいおい、随分な物言いだな。
さすがに言語でないことはないだろう。
76 :
デフォルトの名無しさん:01/12/31 12:09
>>75 基地外に突っ込むなよ。かわいそうだろ。
適当にいなしといてやれよ。
だいたいライブラリで吸収できそうな話題じゃないか?
STL使えばC++でも簡潔に書けるだろ。
ポインタ云々もスマートポインタを用意すれば良いだけ。
78 :
デフォルトの名無しさん:01/12/31 14:01
javaは将来性ない
Cはある。
>78
JAVAの需要が先細りになっても、Cの需要は変わらないって
言いたいのか? 賛成だ。そのとおりだよな。
ただ、JAVAだって生き残らないとは限らんぜ。
>78
まだ、どうころぶかわからんよ
81 :
デフォルトの名無しさん:01/12/31 14:09
javaはおわりだね
Javaもネタとはいえ Cと比べられるように
なっちゃったんですねぇ…
次のバージョンではunsignedは使えるようにして欲しいなぁ
85 :
デフォルトの名無しさん :01/12/31 14:29
>>79 分野によって変わってくるんだろうね。
いまだにFortranやCOBOLが使われているように
Javaも何処かでは生き残り続けるのかもしれない。
JAVAはOSに依存しないため
今後発展しそうな気がするんだけど気のせいですか?
現在はCよりJAVAのほうが需要があるように
感じるけど それも気のせい?
87 :
デフォルトの名無しさん :01/12/31 15:01
>86
JAVAを動作させる為にはVMが欲しいんですが何か?
89 :
デフォルトの名無しさん:01/12/31 17:49
冬厨隔離スレとして順調に伸びてるな
>>86 サーバサイド以外でJavaの需要ってほぼ皆無だよ。
i-appliのあれはJavaという名前がついてるけど別ものだし。:-)
90 :
デフォルトの名無しさん:01/12/31 17:54
>>84 1bitならケチらないが、32bitをケチりたいんだよ。
32bit無符号のデータを外部から取りこむ場合、その値域をカバーするために、
long (64bit)を使うしかなくて苦痛なんだよ。
CとJAVA例えるならば職人とオペレーター。
所詮JAVAでバイナリ操作は無理だな。
Rubyナラデキル。
うんうん、Rubyもいいよね。
C,C++,Rubyマンセー!
Javaはあまり知らんからノーコメントとしておく。
どんなもんでも
できるにこしたこたぁない
97 :
デフォルトの名無しさん:01/12/31 19:41
情報科学、情報工学ではJavaは生き残ると思うけど。
98 :
デフォルトの名無しさん:01/12/31 19:43
あらゆる分野でRubyが使われるようになるのに、そう時間はかからないだろう。
99 :
デフォルトの名無しさん:01/12/31 19:46
>所詮JAVAでバイナリ操作は無理だな。
バカ発見。
Cにできる事と、Javaにできる事に差があるわけ無いだろが。
ある処理を記述するのに、どうするかが言語の違いだよ。
さっさと気づけ馬鹿ども。
>Cにできる事と、Javaにできる事に差があるわけ無いだろが。
C言語ちゃんとお勉強してから言ってくださいね。
>>99 ROM,RAMあわせて4KBしかありませんが、なにか?
JavaではIA-64のバンドルの生成は出来ません。
103 :
デフォルトの名無しさん:01/12/31 20:01
IA-64のハンドル?バンドル?ってなんですか?
104 :
デフォルトの名無しさん:01/12/31 20:04
>>101 それはハードウエアの問題では?
コンパイラ作成の手間を考えたら、
一般的じゃないCPUでアプリケーションを作る場合は、
C言語になるのかも。
言語的な違いは明らかで
JAVAで書くような複雑なプログラムは、Cじゃ書かないし
Cで書くような簡単なプログラムは、JAVAじゃ書かない。
1つ言っておく。CとJAVAを比較するのは
CとBASICを比較するようなものだと。
1つ言っておく。CとJAVAを比較するのは
CとLISPを比較するようなものだと。
1つ言っておく。馬と牛を比較するのは
馬と鹿を比較するようなものだと。
109 :
デフォルトの名無しさん:01/12/31 20:21
1つ言っておく。
やっぱや~めた。
>109
いってくれ
111 :
デフォルトの名無しさん:01/12/31 20:22
Java は計算機科学の最先端の研究対象にもなるし、実用にもなる。
C は fj.comp.lang.c での罵りあいの道具にしかならない(w
JAVAでドライバでも組んでみてくらはい。
それができたら認めるよ~ん。
計算機科学の最先端って、やたら多いけどね。
ウニの棘の先端みたい。
115 :
デフォルトの名無しさん:01/12/31 20:31
>>112 Java用のドライバ作成環境を用意してくれたらな。
一休さんみたいだ。
116 :
デフォルトの名無しさん:01/12/31 20:32
>>112 OS、デバイスとのインターフェ-ス部分をJNI使って書けばいいだけでしょ?
JavaOSのドライバはJAVAだし。
117 :
デフォルトの名無しさん:01/12/31 20:36
あくまでも実行する側の問題であって、
例えばJavaをn
119 :
デフォルトの名無しさん:01/12/31 20:40
C厨必死だな(w
>>112 あんたJavaでドライバ組みたいと思うのか?
VMをJAVAで作るとか言い出しそうだな(藁
124 :
名無しさん:01/12/31 21:02
Javaは将来性がないとか死滅するとか
おまえら情報操作もいいかげんにしろや。
そうやってJava使いを一人でも多く減らして自分だけ
甘い汁を吸おうと思ってるんだろ?だがな、俺は騙されん。
最も将来性があり、これから主流になるのは間違いなくJavaだ。
シリアル/パラレルポート接続なら
Cmmunication APIでなんとか。
あとUSB APIというものもあるようだ。
まだ実装がLinux用しか出てないけど。
>123
Jikes RVMとかいうJavaで書かれたJVMが存在する。
126 :
デフォルトの名無しさん:01/12/31 21:09
>>123 マジな話、Javaチップの JVM って何で書いてあるんだろう?
バイトコードはネイティブ実行できるからVM不要だろうけど、
ファイルI/Oとかネットワーク周りの物理層をどうやって処理
するのか考え出すと年越せません~
127 :
デフォルトの名無しさん:01/12/31 21:09
JAVAとC#がこれからは主流になると思うな。
実はアンチVBだけど、
VB7は結構使えるのかもと・・・全然知らないから
いいかげんな事言ってるかも?
ただ、OOという技術が趣味プログラマーに浸透するかは疑問だし
ポインター知らないで、JAVAができるのか?という疑問もある。
まあ、あくまで予想だね。
携帯のVMはcで書かれています。
はっきり言ってVMでもデバイス制御部分は全てCかアセンブラです。
130 :
名無しさん:01/12/31 21:18
Javaをマスターした後だと
C覚えるのって簡単ですか?
>126
内部のCPUもどきのFPGAが実行している。
Javaチップってそんな大層なもんではなくて
バイトコード処理用の拡張命令持っただけの
普通の、例えばArmとかだよ。
>>130 簡単だよ、というのが慣例だよね。
難しいかった、というやつには
おまえはJavaをマスターしてない
とつっこまれて終わり。
>130
逆のほうがいいかも
だからマスターは禁k(以下略)
swap、まだ?
JAVAチップのドライバーはCで書かれています。
138 :
CopyBorot:01/12/31 21:37
Cは最初なんの為に開発されたのか知ってるかい?
Cは何を使って開発されたのか知ってるかい?
このスレのC支持者に誰か予知能力者でもいるのかい?
時代は交代していくものさ。ヽ(´ー`)ノ
Java厨呼ばわりで結構。
"乗りてえ風に遅れた奴は間抜けっていうんだ。"
とか"うしおととら"の"とら"の言葉で締めてみる。
あぁ~さっきのはJavaを「言語」として捉えた時の意見であって
JVMを攻撃しまくってるC支持者さん達には
しょうしょうキティな文章になってますがよろしくヽ(´ー`)ノ
>>139 Cでの開発環境が用意されているということ。
あんたアセンブラについて勉強した方が良いね。
>>136 30じゃないけど、
swap( int[] array, int i, int j ){
int tmp = array[i];
array[i] = array[j];
array[j] = tmp;
}
とかぐらいしか思いつかない。
他の方法あるなら知りたいっす
>>30
PDP-11の時代でも、今でのCの果たす役割は根本的には変わってない気がする。
CPUがItaniumになって、OSがLinuxになったくらいで…
ま、そればかりじゃないけど。
自前でマクロ展開でもすれば > swap
それが良いかも>マクロ展開
146 :
デフォルトの名無しさん:01/12/31 21:57
swap( int[] array, int i, int j ){
array[i] ^= array[j];
array[j] ^= array[i];
array[i] ^= array[j];
}
>>147 それーゆーのって、Cの#defineマクロとかで
swap書くときしか使ってないけどなぁ…
Cが優れているところ
1)ポインタ
2)プリプロセッサ
Javaが優れているところ
1)ネット系ライブラリが充実している。
そんだけ。
Cの短所
・・・特に無い。
JAVAの短所
1)厨房が大量に集まってしまった。(しかも、えばってるし)
2)プリプロセッサが無い
3)ポインタが無い。特に関数ポインタ
JAVAはunsignedが無いのは痛いね。
別のスレでやってなかったか?
>>151 こないだ買ったJava本にポインタの解説がイパーイありました。
Javaにはポインタがあるらしいです。
156 :
デフォルトの名無しさん :01/12/31 23:17
Cの長所
・実行速度が速い。
・アセンブリに近い記述が可能。
・C++はCを言語体系の一部分に含めているので、
C++を学習するとき得なくてはならない知識を
ある程度小さくできる。
Cの短所
・最新の言語に含まれている、魅力的な機能がない。
>155
関数ポインタもかいてあったか?
>>158 いえ、それは書いてませんでした。すいません。
ポインタらしきものがあるということで。
161 :
デフォルトの名無しさん:01/12/31 23:35
関数ポインタは、望んだ実装のメソッドを持つobject(のクラス)を作れ、ということで。
ただしそうすると、好きな名のメソッド(を参照する変数)ってものは
結局使えないので、微妙に嫌な気分だが。
javaも軽く使う分には悪くない言語だが、
ちと手のこんだ事をしようとすると、C以下の柔軟性しかないのが壁となる。
lispやrubyみたいな方向性の柔軟さも、少しは欲しい。
せめてクラス変数の型を継承で作れるようにしてほしかった。
Classっていう唯一の型しかないのは面倒だ。
うわ。java.lang.Classってfinalなのか。
変数どころかObjectとしても継承できないわけか。
あと、逆にC++のような方向性もまた切りすててるんで、
javaって、「エレガントに」やれる事柄が本当に少ない言語だ。
162 :
デフォルトの名無しさん:01/12/31 23:43
Cのほうが全然早い、理解しやすい。
しかしネットワークとか付加的なのが少ない
163 :
デフォルトの名無しさん :02/01/01 00:13
>>162 C言語は開発当初から言語仕様をスマートにする方向で
設計されたらしい。
いまだにそれを貫いているところを残してあるが故に、
付加的な仕様が少ない。
しかし、だからこそ学ぶ際に煩雑な感じを受けずにすむ。
それもここまでC言語が普及した理由の1つだろう。
欲しい機能があれば自分で作る。
これが言語仕様上ほとんど制限の無いC言語の
正しい使い方。
欲しいソフトが存在しなかったら自分で作る。
これがコンピュータの正しい使い方。
関数ポインタって、java.lang.reflect.Method
使えば似たような事出来るような気がしますが。
167 :
デフォルトの名無しさん :02/01/01 00:52
>>せめてクラス変数の型を継承で作れるようにしてほしかった。
って意味わからない。
class ClassA{ static int val; }
のvalみたいのをクラス変数っつーんだよね?
>>166 定義済みで既知のクラスでないと呼べないでしょ。
Javaはどこまで行っても固定プログラム。
手を変え品を変え、関数ポインタがあるように書かれてるけど、
同じ材料が形を変えているだけ。
焼きそばとたこ焼きとお好み焼きみたいな物。
そーいや 一昔前は、
アセンブラで作ったプログラム vs Cで作ったプログラム
の議論(水掛け論のような気も…)が結構あったと思いますが、
Javaごときと速度比べるとは、最近のCユーザってココロザシ低く
なってません?
クラス変数なんて用語はないのでは・・・。
>>168が書いているvalのことは単にオブジェクト間で静的な
データメンバ(静的データメンバ)なのでは?
>>170 Cのいいところを挙げるとなると普通出てくるだろ。
スレタイトル読めやボケ。
>>定義済みで既知のクラスでないと呼べないでしょ。
バイトコードをJavaプログラムに生成させて、
クラスローダに読ませる、Class取得、Method取得、invoke()
ってやれば?
出来るかどうか知らないけど。
>170
こんなアホスレ立てるお子ちゃまがいるから
解りやすく教育しているだけ。
>>173 その発想が出る時点で答えになってない。
ポインタについて勉強しましょうね。
>>176 なんだ、
>>定義済みで既知のクラスでないと呼べないでしょ。
ってのは 実験して出来ないって言ってるわけじゃないのか。
>>171 > クラス変数なんて用語はないのでは・・・。
OOの基本的な用語のような気が…。
なんか このスレみてると Javaのおかげで厨房少ないはずの
Cユーザのレベル低下が目立ってるような… なげかわしや…
>>181 > なんか このスレみてると Javaのおかげで厨房少ないはずの
> Cユーザのレベル低下が目立ってるような… なげかわしや…
"Java厨がいるから"と安心しきったのが低下させているんでしょうな。
183 :
デフォルトの名無しさん:02/01/01 01:46
>181
具体的には?
>>181 どの発言から「レベル低下」だと思われました?
年始もハイだぜ、ベイベー!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,~((((((((~~、
( _(((((((((_ )
|/ ~^^\)/^^~ヽ|
| _ 《 _ |
(|-(_//_)-(_//_)-|)
| 厶、 |
\ |||||||||||| /
⊂ \_______⊂ ⌒`つ≡≡≡(´⌒;;;≡≡≡
 ̄ (´⌒(´⌒;;
鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱成‥‥‥‥
鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱戸‥‥‥
鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱江‥‥
鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬼鬱鬱鬱鬱鬱鬱鬱鬱鬱子‥
鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬼成成戸成豆鬼豆成戸戸成成成豆鬼鬱鬱鬱鬱豆‥
鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱豆戸江江江江戸戸戸戸江江江江江江戸成豆鬱鬱鬱鬱江
鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱豆戸江江江江江江江江江江子江江江江江戸成豆鬱鬱鬱鬱
鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱豆戸戸江江子江江江子子子子子子子子江江戸戸成鬱鬱鬱鬱
鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱戸江江江子子子子子子子子子子子子子江江戸戸成豆鬱鬱鬱
鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬼戸江江江江子子子子子子子子子子子子江江江戸成豆鬱鬱鬱
鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱成江江江江江江江子子子子子子子子子子子江江戸成豆豆鬱鬱
鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱戸江江江子江江江子子子子子子子子子子子江戸鬼鬱鬼鬼鬼鬱
鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱戸江子江江江江江戸鬼鬼豆成戸江子子子江戸豆鬱鬱鬱鬱鬼鬱
鬱鬱鬱鬱鬱鬱鬱鬱鬱豆戸江江江江戸成鬼鬱鬱鬼豆成成戸江江江江戸戸成豆豆鬼鬱鬱
鬱鬱鬱鬱鬱鬱鬱鬱豆戸江江江江豆鬼豆成戸江江江江江戸戸戸戸戸戸江江子江戸成鬱
鬱鬱鬱鬱鬱鬱鬱成江江子子子戸成江子子子子子子江江戸戸戸戸戸江江江子江戸戸鬱
鬱鬱鬱鬱鬱鬱豆江江江子子子江江子子子子子子江戸戸江江江江江江戸戸鬼鬼成成鬼
鬱鬱鬱鬱鬱鬱豆江江江子子子子子子子江江成鬱鬱成戸江子子江江江戸子鬱鬱鬱成豆
鬱鬱鬱鬱鬱鬱豆江江江子子子子江江成鬼戸戸鬱鬱豆戸子子子江戸江戸戸成成成成成
鬱鬱鬱鬱鬱鬱鬼戸江子子子子子子江子子子江江戸戸江子子子子戸江江江戸戸江江戸
鬱鬱鬱鬱鬱鬱鬱戸江子子子子子子子…子子江江江子子子子子子江戸江子江江江子江
豆豆鬼鬱鬱鬱鬱戸江江江子子子子子子子子子子子子子子子子子子戸戸江子子子子戸
江戸豆鬱鬱鬱鬱成江江江江子子子子子子子子子子子子子子子子子戸戸江子子子子戸
戸戸成成豆鬱鬱豆戸江江子子子子子子子子子子子子子戸江子子…子戸戸子子子子江
江子成江江鬱鬱豆戸江江子子子子子……子子子子子江子子……子子戸戸江子子子江
子子江江江豆鬼戸戸江江子子子子子子…子子子子江戸子子江江戸成豆成戸江江子戸
戸江戸豆戸戸戸江江江子子子子子子子子子子江江江戸戸成江戸豆鬼豆戸戸戸江江戸
戸江子戸戸江江江江江子子子子子子子子子江江江子子子子江江江戸戸戸戸戸江江戸
江戸江江子戸江江江江江子子子子子子子子江江江子子子子子子江江戸戸戸戸江戸江
子戸江子戸鬼江江江江江子子子子子子子子江江江江子子子江江戸成豆豆成戸江成子
江戸鬱鬱鬱鬼戸戸戸戸江江江子子子子子子江戸成成戸戸戸戸成成豆鬱鬱成江戸成‥
戸江豆鬱鬱成成戸戸戸江江江子子子子子子子江鬼鬱成戸子子江江豆鬼豆江江戸戸‥
戸江江鬱鬱成豆成戸戸戸江江江江子子子子子江戸戸戸戸戸戸戸成豆成戸江戸成子‥
戸江江鬱鬱鬼成成成成戸戸江江江江江子子江江子子江江江戸戸戸成豆戸戸成戸‥‥
江江江戸成鬱成成豆豆成成戸戸江江江江江江江子子子江江戸成成成戸戸戸成子…‥
戸江江江鬼鬱戸成豆鬼豆豆成成戸戸江江江江江子子子子子江江江江江戸成江子……
江江豆豆鬱鬱成成成豆鬼鬼鬼鬼成戸戸江江子子子子子子子子子子子江戸成子子子…
江鬼鬱成鬼鬱成成成成豆鬼鬼鬼鬼鬼豆成戸江江江子子子子子子江江戸成鬼鬼戸子…
鬱鬱鬼豆鬼鬱豆成成成成豆豆鬼鬼鬼鬼鬼鬼成戸江江江江江戸戸成成豆鬱鬼鬱鬱戸…
鬱鬱鬼鬼豆鬼鬼成成戸成成成豆豆鬼鬼鬼鬱鬱鬼豆豆成成豆豆豆鬼鬱鬱鬱鬱鬼鬱鬱戸
鬱鬱鬱鬱成鬱鬱鬼成成戸戸戸戸戸戸成豆鬼鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱
鬱鬱鬱鬱豆鬱鬼鬱成戸戸戸江江戸江戸戸成豆鬼鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬼鬱鬱
アンチC房が荒らしてるな。
タイーホされて以来、婦警にC言語を教わってるぜ、ベイベー!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,~((((((((~~、
( _(((((((((_ )
|/ ~^^\)/^^~ヽ|
| _ 《 _ |
(|-(_//_)-(_//_)-|)
| 厶、 |
\ |||||||||||| /
⊂ \_______⊂ ⌒`つ≡≡≡(´⌒;;;≡≡≡
 ̄ (´⌒(´⌒;;
189 :
デフォルトの名無しさん:02/01/01 02:39
ホントレベル低いな・・・
>2)プリプロセッサが無い
プリプロセッサがないとなんで困るんだよ・・・
>3)ポインタが無い。特に関数ポインタ
ホント学習してくれ。
オブジェクト変数に入ってるのは、メモリアドレス。
関数ポインタが、オーバーライドとかインターフェースとか
(実行時)ポリモーフィズム=レイトバインディング=動的バインディング=DMD
になったんだけど。
>>189 ロクに実務やった事無いか、低レベルの奴は問題に気付かないだけ。
死ねよ。
191 :
デフォルトの名無しさん:02/01/01 02:51
>javaも軽く使う分には悪くない言語だが、
>ちと手のこんだ事をしようとすると、C以下の柔軟性しかないのが壁となる。
>lispやrubyみたいな方向性の柔軟さも、少しは欲しい。
アホか?
RUBY製作者が書いてる本でも読んでみろ。
lispはデバッグが難しいというか、複雑な関数が表現しずらいので
大規模にむかないと、「個人的に」思うが、
JavaはC++,RUBYに比べてかなり大規模向けだぞ。
>せめてクラス変数の型を継承で作れるようにしてほしかった。
>Classっていう唯一の型しかないのは面倒だ。
>うわ。java.lang.Classってfinalなのか。
>変数どころかObjectとしても継承できないわけか
おまえ末期症状だな。
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/lang/Class.html このクラスが何なのかもよくわかってないみたいだな?
とりあえずこのクラスを継承して何がしたいんだ?
オブジェクト変数の型なら、定義したクラス全てが型になるぞ。
派生クラスポインタの事をいってるなら、javaではObject型の変数に
どのオブジェクトの参照も入れることができる。
他にJava使いもいるぜ!
婦警と、このスレみたいな言い合いしてるぜ、ベイベー!
俺からみてもレベル低いぜ、ベイベー!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,~((((((((~~、
( _(((((((((_ )
|/ ~^^\)/^^~ヽ|
| _ 《 _ |
(|-(_//_)-(_//_)-|)
| 厶、 |
\ |||||||||||| /
⊂ \_______⊂ ⌒`つ≡≡≡(´⌒;;;≡≡≡
 ̄ (´⌒(´⌒;;
193 :
デフォルトの名無しさん:02/01/01 02:55
馬鹿が自分の不勉強さ加減をさらすスレですか。
馬鹿とか無知とかって、自分がそうであることに気がつかないからね。
元旦からアホさらして、かわいそうな人生だね。
194 :
デフォルトの名無しさん:02/01/01 02:57
ついでに教えておくと、
C++ではプリプロセッサは使わない。
というか、使わなくて済むように機能が追加された。
それをJAVAが真似したんだから、プリプロセッサなんて
あるわけ無いだろ。
OOだとプリプロセッサは不都合が起きる。
クラスで名前空間を区切っても、DEFINEで破壊されるなどと・・・
まあ、構文を無視した#IFは便利だと思うが
それはC++のコメントがアホだからだ。
emacs使ってれば問題はないが。
>>189 の信じる学習とはJavaのプロパガンダ本を鵜呑みにすることじゃない?
>>195 いいかげん知らない事を突っ込むのやめなよ、あんた。
どうやるか知らないのはあんたが不勉強だからだよ。
この天然ぶりは圧巻だ。
199 :
デフォルトの名無しさん:02/01/01 03:01
>欲しい機能があれば自分で作る。
>これが言語仕様上ほとんど制限の無いC言語の
ボケですか?
JAVAも同じ。
はあ、Javaの宣伝間に受けて「勉強」したと思ってる真性馬鹿か・・・
最近減ったんで安心してたのに・・・。
それにしてもJavaにプリプロセッサが無い理由なんて始めて聞いた。
煽り用の捏造かな?
煽ってる奴はプログラムの素人臭いし。
202 :
デフォルトの名無しさん:02/01/01 03:10
>ファイルI/Oとかネットワーク周りの物理層をどうやって処理
C言語の場合、同じソースでも環境によってはコンパイルできない。
なぜなら、I/Oは言語仕様外だから。
言語仕様外の物は、ライブラリーとして提供するしかないわけで
互換性を保つにはヘッダファイルを共通にして、なるべく同じように動くような気がする
バイナリーを作ると。
C++も同じね。
JAVAはライブラリーとして提供するのではなく、VMとして提供するのが理想。
でもVMに組み込むのが面倒な場合は、JNIという最終手段を使う。
JAVAチップでさえもドライバの開発環境はCしかないね。
JAVA単体では割り込みの記述なんてできっこないからね。
あーん 真性Java房だよー。
Rubyにあげるから取りに来てくれ。
205 :
デフォルトの名無しさん:02/01/01 03:17
ドライバを書くときにヘッダを読み込むでしょ。
それのソースを見てくれればわかるけど、
実際の中身はシステムコールか、アセンブラなんだよね。
それってのは結局のところ、アセンブラ(機種依存)で書かれた、
ライブラリーを呼び出したりしてるだけであって、
C単体でやってるんじゃないよ。
で、JAVAでやりたければJNI使って、システムコールを呼び出すクラスを作って
開発するわけだけど。
現実問題として、OSに組み込むにはOSがJVMで動くドライバをサポートする
必要がある。
理由はわかるよね?
206 :
デフォルトの名無しさん:02/01/01 03:17
なんかまともな質問はないですか?
環境によってコンパイル出来ないってのはI/Oとはあんまり関係無いと思うが、
まぁ、動かないっていう意味で言ってるんだろうな。
言語仕様って、標準ライブラリも含んでるんだろうな、とすると入出力関数はあるぞ。
そもそもメモリマップドI/Oなら、ポインタがあればいいし。
でも、I/Oを切り離してライブラリにするってのは、ふつーそーだしな。
JavaはVMに入出力組み込むのが理想なのか??
VMの仕様はかなり厳密に定義されてるから、動作を変えちゃうのは理想なのかなぁ??
ま、JMVはまだ勉強中だから、よくわからないけど。
208 :
デフォルトの名無しさん :02/01/01 03:21
>>206C++のbool型はどうやって実装しているのですか?
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,~((((((((~~、
( _(((((((((_ )
|/ ~^^\)/^^~ヽ|
| _ 《 _ |
(|-(_//_)-(_//_)-|)
| 厶、 |
\ |||||||||||| /
⊂ \_______⊂ ⌒`つ≡≡≡(´⌒;;;≡≡≡
 ̄ (´⌒(´⌒;;
Cだけで全部書かれたドライバだって、あるぞ。
でも、アセンブラで書くのがあたりまえな環境もあるだろうな。
ケイタイとか。
210 :
デフォルトの名無しさん:02/01/01 03:28
>まぁ、動かないっていう意味で言ってるんだろうな。
ゴメソ、そうだ。
入出力関数もそう。
たとえば、ソケットでブロックされてる時に
printfをすぐに表示する処理系と、そうじゃない処理系ってあるでしょ。
そんな感じの違い。
ある程度互換性があるような気がするのは、処理系ごとにアセンブラを書く
ライブラリー作成者の努力。
(一部アセンブラね。)
機種依存部分をライブラリにすると、コンパイラ作成時にメリットがある。
で、CとかJavaとかと逆の立場なのがPerlね。
VMはもうちょっと勉強してみてね。
VMって言うよりはバイトコードについて調べてみてください。
>>205 組み込みやってる俺から言わせて貰えば
はっきり言ってその発想から抜けた方がいい。
割り込みっつーのはアセでベクタ定義されたアドレスにJUMPしてんの。
つまりアセで関数名定義して実態はC等のマイクロコードを生成する言語で書かれてるんだよ。
OSなんてまったく関係無い。
1.Webシステムが簡単に作れる。
2.ミーハーな客が、簡単なシステムにカネを沢山出す。
仕事でやる分には、これだけ利点があれば充分だと思うが。
とくに2が重要。
>>211 それは俺に言ってるの?
>つまりアセで関数名定義して実態はC等のマイクロコードを生成する言語で書かれてるんだよ。
そういう意味で書いたんだけど。
>OSなんてまったく関係無い。
システムコールはどうなるよ・・・
>2.ミーハーな客が、簡単なシステムにカネを沢山出す。
これかなり重要だね
知人は23で400万オーバーしてるのに
俺は 200万いかないし・・・・・
俺がゲームPGだからっていうこともあるけど・・・
215 :
JavaのC++に比べて良いところ:02/01/01 03:37
1コードがかなーり読みやすい。
2deleteを意識しなくていい。
3ライブラリとリファレンスが良い。
4JavaDocも便利で見やすいのができる。
5コンパイル時間が短い。
6名前空間が容易に分割できる。
7配列の仕様はかなりいい。
>>211 > つまりアセで関数名定義して実態はC等のマイクロコードを生成する言語で書かれてるんだよ。
折れ組み込みのことよくわからないし、プロが言うから間違いないんだろうけど、
それって「マイクロコード」っていうの?
217 :
デフォルトの名無しさん :02/01/01 03:39
218 :
デフォルトの名無しさん:02/01/01 03:41
俺が今でも疑問なのは、
始めてやった言語がJavaで
Javaをマスターするのにどれくらい時間がかかるのか、
という事。
参照とOOの壁ってでかくない?
間違ってもC言語やる前にJAVAをやらない事を
俺はすすめる。
219 :
デフォルトの名無しさん:02/01/01 03:42
コンパイラ言語ってなんですか?
>>217 JavacはJVMへのコンパイラ。
JVMはインタプリタ。
Javaソース から バイトコード 生成する作業は
コンパイルと言われていますが、何か?
222 :
JavaのC++に比べて良いところ :02/01/01 03:43
1コードがかなーり読みやすい。
2deleteを意識しなくていい。
3ライブラリとリファレンスが良い。
4JavaDocも便利で見やすいのができる。
5コンパイル時間が短い。
6名前空間が容易に分割できる。
7配列の仕様はかなりいい。
8コンパイルエラーがわかりやす過ぎる。
9実行時のエラー(例外)もわかりやす過ぎる。
>>214 ゲームPGだって1000万行くのいるよ。
会社が悪いのか腕がないのか・・。
224 :
デフォルトの名無しさん:02/01/01 03:44
× JavacはJVMへのコンパイラ。
○ Javacはバイトコードへのコンパイラ。
225 :
デフォルトの名無しさん :02/01/01 03:44
>>215 C++のコードは読みにくいと?
>配列の仕様はかなりいい。
どのようにいいの?知らないから教えてほしい。
>>220 JavacはJVMへのコンパイラ(プッ
>ゲームPGだって1000万行くのいるよ。
20代前半で1000万行く人いるんですね。
私もそのぐらいになりたいです。
そこまでの腕になるためには数年はかかると思いますけど・・・
ああ、二十台前半という条件つきかあ・・・。
231 :
デフォルトの名無しさん :02/01/01 03:50
誰か答えてよ・・・。
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄
,~((((((((~~、
( _(((((((((_ )
|/ ~^^\)/^^~ヽ|
| _ 《 _ |
(|-(_//_)-(_//_)-|)
| 厶、 |
\ |||||||||||| /
⊂ \_______⊂ ⌒`つ≡≡≡(´⌒;;;≡≡≡
 ̄ (´⌒(´⌒;;
232 :
JavaのC++に比べて悪いところ :02/01/01 03:52
1new,deleteで精神的に疲れる。
2意味ない部分でのパフォーマンスが気になる。
3潔くvirtualをつけることができない事がある。(継承のコストが気になる)
4コンパイル時間が長すぎてキレる事がある。
5::の前が長い。
6ヘッダを書くのが面倒。
7doxygenは日本語が入ると読みずらい。(誰かクッキーを)
8stlのコード汚い。
9#includeの数は減らない?
10#typedefは気分的に嫌。
11ポインタか参照どっちかにして。
12どーせ、クラスはポインタでしか扱わないって・・・
>>232 それは 「JavaのC++に比べて悪いところ」ではないような…
235 :
デフォルトの名無しさん:02/01/01 03:58
>C++のコードは読みにくいと?
::が痛いし、ヘッダが痛い。
要するに冗長な部分が多かったり、一箇所に情報がまとめられなかったりと
プログラミング言語C++(赤いやつ)には、コンパイラ作成者の怠慢って書いてなかった?
>どのようにいいの?知らないから教えてほしい。
最初から、配列の長さを記録していて
アクセスする時も、配列の長さを超えていないか確認するので
C++で経験する恐怖のデバッグはない。
その分パフォーマンスは犠牲になるけどね。
でも、ほとんどのプログラムでそのロスは気にならない。
なぜなら、C++のメソッド呼び出しのオーバーヘッドより
ロスが少ないから。
VCで挫折してSwingでやっと表示できた厨房が
クラス作って「オブジェクト指向を理解した」と喚いてる光景が
目に浮かびますが何か?
237 :
デフォルトの名無しさん :02/01/01 03:57
238 :
デフォルトの名無しさん:02/01/01 03:59
>>205 >システムコールはどうなるよ・・・
OSが用意するハンドリング可能なAPI。
OSによって異なるが抽象化されたI/Oを操作するときに用いる。
デバイスドライバはその下層に位置する。
しかしシステムコール、ドライバの概念が無い、カーネルだけの
OSもある。(ITRON)
携帯のJAVAなんてRTOSのタスクの1つで動いているだけ。
周辺デバイスへのレジスタへのI/Oはベクタ以外は全部C。
>>216 そう。
,~((((((((~~、
( _(((((((((_ )
|/ ~^^\)/^^~ヽ|
| _ 《 _ |
(|-(_//_)-(_//_)-|)
| 厶、 |
\ |||||||||||| / <
>>232あんた詳しそう!答えてくれよ!
>>208の質問に!
\_______/
/⌒ ヽ
/ / ノヽ _ー ̄_ ̄)', ・ ∴.' , .. ∧_∧ ∴.'.' , .
( /ヽ | ) --_- ― = ̄  ̄`:, .∴ ' ((( #)゚Д゚) .∴ '
\ / _, -'' ̄ = __――=', ・,' .r⌒> _/ / ・,' , ・,‘
( _~"" -- _-―  ̄=_ )":" .' | y'⌒ ⌒i .' . ’
| /,,, _―  ̄_=_ ` )),∴. ). | / ノ | ∴.'∴.'
| / / ―= _ ) ̄=_) _), ー' /´ヾ_ノ
( ) ) _ _ )= _) ,./ , ノ '
| | / = _) / / / , ・,‘
| | |. / / ,' , ・,‘
/ |\ \ / /| |
∠/  ̄ !、_/ / )
|_/
Cの言語仕様をちょろっと改良した、BetterCが欲しい。
C99がそれか?
>>240ウザイ!
ワードの1ビット使ってるに決まってるだろうがボケ!
243 :
JavaのC++に比べて悪いところ :02/01/01 04:09
ゴメソ>>皆様
お詫びに。
1バイナリーがはけない。
2よって、遅い。
3たまには、メモリーをきっちり使いたい。
4メモリがきっちり使えなくても、newのオーバーロードもしたかった。
5演算子のオーバーロードは是非できるようにしてくれ。
6でも、演算子のオーバーロードサポートしても実はJAVAだと言語仕様が汚くなりそうだ。
7stlは必要ない。アグリゲーションを貫いて欲しかった。
8インターフェースと継承で名前が衝突した時はかなーーーりいただけない。
9unicodeでの処理は、パフォーマンスがちょっと気になる。
10unsignedは欲しいかも。(これは何ともいえない)
244 :
デフォルトの名無しさん :02/01/01 04:09
,~((((((((~~、
( _(((((((((_ )
|/ ~^^\)/^^~ヽ|
| _ 《 _ |
(|-(_//_)-(_//_)-|)
| 厶、 |
\ |||||||||||| / <
>>242ひどい・・・初心者なのに・・・。
\_______/
/⌒ ヽ
/ / ノヽ _ー ̄_ ̄)', ・ ∴.' , .. ∧_∧ ∴.'.' , .
( /ヽ | ) --_- ― = ̄  ̄`:, .∴ ' ((( #)゚Д゚) .∴ '
\ / _, -'' ̄ = __――=', ・,' .r⌒> _/ / ・,' , ・,‘
( _~"" -- _-―  ̄=_ )":" .' | y'⌒ ⌒i .' . ’
| /,,, _―  ̄_=_ ` )),∴. ). | / ノ | ∴.'∴.'
| / / ―= _ ) ̄=_) _), ー' /´ヾ_ノ
( ) ) _ _ )= _) ,./ , ノ '
| | / = _) / / / , ・,‘
| | |. / / ,' , ・,‘
/ |\ \ / /| |
∠/  ̄ !、_/ / )
|_/
馬鹿に付ける薬はない。
246 :
デフォルトの名無しさん:02/01/01 04:13
>周辺デバイスへのレジスタへのI/Oはベクタ以外は全部C。
実際にレジスタへのI/Oはasmで記述してるんでしょ?
>>243 個人的には
・enum が欲しい。
enumへの コンパイル時の代入チェックが欲しいのね。
・InputStream と OutputStream を
interface に代えてくれれば…
遅いのは、ある程度までなら腕でカバーできる
のと、delete に苦しまされるのと引き換えと
思えば我慢できるけど。
俺、この前Cでドライバ書いたよ。
>>247 漏れもenumはなんでJavaにないんだろう?
って思うYO
リアルモードとかプロテクトモードってゆう古いアーキテクチャ
の残骸を引きずっているCPU(たぶんあんたがパソコンで使ってる奴)
ではアセじゃないと書けないかもね。
でも今日びのメモリマップドCPUではリニアアドレスでアクセスできるから
ポインタ使って
unsiguned char *reg;
reg = 0x80000;
*reg = 0xff;
でアクセスできる。
こういうときunsigunedじゃないとイタイわけよ。
>unsiguned
unsignedでは?
253 :
デフォルトの名無しさん:02/01/01 04:36
C早い。
1万回の"Hello C\n"表示をわずか4秒。。
C++は5秒
255 :
デフォルトの名無しさん :02/01/01 04:37
>253
プログラムはともかくコンソールに
1万行/秒の表示能力があるとは思えないんだけど?
1万行/秒の表示能力があるとは思えないんだけど?
↓
2500行/秒の表示能力があるとは思えないんだけど?
>>256 単にプログラムの実行速度を計測したものと思われ。
>>253 それはつまり printf vs cout でそーゆー結果が出たって事ですか?
ねーよヴァカ!
やれやれ、また妄想クンか
君は脳内コンソールでも使ってなさい p
>>261 今作って実行して見たんだよボケ!
for(i=0;i<10000;i++){
System.out.println("Hello C "+i);
}
ちゃんと1万回5-7秒くらい。(何故かTimeが取れない)
さっきの人と環境が違うから比較にはならないが。
つうか、これじゃブロック転送のベンチマーク取ってるようなもんで
比較としてはJavaに甘い例だな。
bash-2.05a$ time ruby -e "for i in 1..10000 do puts 'hello,ruby'; end"
real 0m1.262s
user 0m0.010s
sys 0m0.020s
ですがなにか?
#include<stdio.h>
#include<time.h>
void main(void)
{
clock_t i;
for(i=0;i!=10000;i++)
puts("Hello C");
i=clock();
printf("%d\n",i/CLOCKS_PER_SEC);
}
/*これで実行したら、確かに4秒だった。*/
じゃあrubyが最速ってことですね(藁
#include<iostream>
#include<ctime>
using namespace std;
void main()
{
clock_t i;
for(i=0;i!=10000;i++)
cout<<"Hello C\n";
i=clock();
cout<<i/CLOCKS_PER_SEC<<'\n';
}
//これだと10秒もかかってしまった
マシンの処理能力によっても変わってくると思われ。
そだね。
Rubyは駄目だよ、PERL,phpより遅い
ベンチ取らなくても分かるからとってないけどね
>272
cygwinなんだが...
CPUはAthlon1.1G
ちなみにgccだと
bash-2.05a$ gcc -O2 main.c
bash-2.05a$ time ./a.exe
real 0m1.422s
user 0m0.170s
sys 0m0.200s
やっぱruby最速(藁
>>271でcoutじゃなくてputsやprintfでやってみると
やっぱり4秒だったよ。
と、いうことは<<は遅いということか・・・。
>>276 俺の環境
VC++6.0
Celeron500Mhz
マシンの性能差はかなりあるぞ
処理時間の99%がブロック転送で、ネイティブの処理時間比較
してるようなもの。意味無い。
言語比較なら演算で比較するのが良い。
ruby>>>>>>>>>>>>>>>>>>C>Java>>>>>>>>C++
割り算掛け算やってみー。
アセに落とすと一番ステップ数多くなるから。
Ruby房の正体が本当にRuby使いだったと判ったのは収穫であった。
public static void main(String args[]){
long i;
long a,b,c;
for(i=0;i<10000000;i++){
a=i;b=i*2;c=i/3+1;
a= a*b/c;
}
}
>>281 もうちょっとよく読め。
C++が遅いんでなくてcout<<が遅いと書いてあるだろ。
>>286 っつーと rubyが最も速いっつー結論に異論は無い、と。
ruby>>>>>>>>>>>>>C/C++>>>>>>>>>>>>>Java
>>285 そんなんでいいよ。
結果だけ表示すれば。
C > C++ > Java > Perl > Ruby
まあこれでいっか・・・
291 :
デフォルトの名無しさん:02/01/01 05:48
C > C++ > Java > Perl > Python > Ruby
C > C++ > Java > Perl > Python > php > HSP > Ruby
C,C++ > Java > Perl > Python > BASIC >Ruby
士農工商エタ非人Ruby
C/C++ > Delphi > Java > Perl > Python > php
> HSP > BASIC > ひまわり > Ruby
>>296 正解。
よって、終了。
300踏んだ人、削除依頼出してきて。
VBがないんですが...
なんか厨房呼び寄せちまったな
DOS窓の表示速度調べたかっただけなのに...
C/C++ > Delphi > Java > Perl > Python > php
> HSP > BASIC > ひまわり > Ruby > VB
これでいい?>298
VBはBASIC以下かよ!!
まさか300まで逝くとな。
>>299=厨房
つーか同じ環境でやらないと意味無いだろ
>299
↑こう言う奴が居るから気持ち悪くて使いたく無い (^-^
305 :
デフォルトの名無しさん:02/01/01 06:06
同一環境で
bash-2.05a$ time ruby -e "for i in 1..10000 do puts 'hello,ruby'; end"
real 0m1.262s
user 0m0.010s
sys 0m0.020s
bash-2.05a$ gcc -O2 main.c
bash-2.05a$ time ./a.exe
real 0m1.422s
user 0m0.170s
sys 0m0.200s
なので
Ruby>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>C
であることが証明されました
放置開始
>>305 何でオマエが同一環境持ってんだよ。
オマエ単なる厨房だろ(藁
Cygwinの使い方も知らんのか
Rubyにはお似合いだな
309 :
デフォルトの名無しさん:02/01/01 06:12
C房必死ですね
Ruby馬鹿が侵食しているのでこれにて終了
>>306 いや、じっくりおちょくって遊ぼう
まさか a.exe とは
いやー流石ルビーストだね 嘲笑
>>309 私はどちらかに荷担するつもりはないが、
必死なのはRuby房の方では。
今さっきの実験で
うんこ == ruby
が整数 1を返すことがわかったぞい!
うちの環境では(うんこp 'ruby) =>tが返ってきた。
rubyってcygwinでコンパイルできるの?
317 :
デフォルトの名無しさん:02/01/01 06:21
言語別所有マシン比較結果
Ruby Athlon1.1G
C/C++/Java Celeron500, P2-350
よってここでもRubyの優位性が見て取れます
>>317 もしかしてさ、自分で面白いと思ってるの・・?
>>316 出来ますが、実行するとうんこを吐いて死んでしまいます。
>317
マシン分けてるんだ
俺もRuby入れると環境が汚れるから、捨てシステムに入れろって注意されたよ
もう寝なさい。
>>317 ・・・馬鹿の世界チャンピオンだ・・・。
もしかして、Ruby信者は厨房率高い?
>>320 君って(・∀・)イイ!
そうか~よごれるのか~。
Ruby 名前からしてヤヴァすぎ
ふつー恥かしくて付けれません
327 :
デフォルトの名無しさん:02/01/01 06:33
>325
「あ~あ~、やっちゃったよこのYellow」
と思ったNativeが十万人程確認されていますね
いつの間にかRuby房を煽るスレになってる・・・。
Ruby房の顔が想像できて笑えるからいいけど。
>>328 ( ::::::::::::::::::::::::^:::::::::: :::::: :(
丿::::::::::::::::::::::::::::::::::::::::::::::::::::: :::: (
/::::::::::/ノ::::::::ノ::::::::ヽ:人::::::::::ヽ::::::::::)
(::::::::::/ ):::ノ::::ノ ) ソ ヾ::::::::::::丶ヽ
(:::::::::/ 彡 ノ ノ :: 彡:/)) :::::::)
(::::::::::/彡彡彡彡彡 ミミミミミミミ ::::::::)
( :::::::// ̄ ̄ ̄ ̄ヽ===/ ̄ ̄ ̄ ̄ヽ |::::::)
| =ロ -=・=- ∥ ∥ -=・=- ロ = |
|:/ ∥ / /ノ ヽ \ ∥ ヽ|ヽ
/|/ ヽ`======/ ⌒ ` ========ノ | |
(|| .(● ●) |ノ
| : :: :::l l: ::: ::: |Rubyこそ一番一番一番!
| _:: :二 M二__::::::.. . |
| : ::: : ::: :: === ::: :: :: :::: )
\ ::: ::::::::::: :::::::::: :::::::::::::: /|
/|ヽ ヽ:::: _- ::::: ⌒:: :::::::: -_ ノ
/ || 丶\_::_:::::_:::: :::::_/:::: /
| | \ \ ::::::::::: :::::::::: ::: :: _/
/ ̄\ 丶  ̄ ̄ ̄ ̄ ̄ ̄ ̄
これだろ?w
330 :
デフォルトの名無しさん:02/01/01 11:52
Rubyを叩くヤツは在日
CとJavaのスレでなぜRubyが
おいおいRuby信者に言われたくネーヨ (臭
333 :
デフォルトの名無しさん:02/01/01 12:09
Ruby?Osama Binてやつ?
ネイティブコンパイラが無い言語なんてクソだよ。
ソース行末にセミコロン書く習慣のない言語なんてクソクソだよ。
334 :
デフォルトの名無しさん:02/01/01 12:12
>ネイティブコンパイラが無い言語なんてクソだよ。
馬鹿発見
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Java >>>>>>>>>>>>>> C
335 :
デフォルトの名無しさん:02/01/01 12:14
Cを知らなくてもRubyはできる。
Rubyを知ればCはやらなくていい!!!
336 :
デフォルトの名無しさん:02/01/01 12:23
>>334 理論的な話が不可能なドキュソ・ルビャー発見。
バカは自分がバカだと気づかない。
テーブルの上に2つの鉄槌が有る。。。。
執事「我神よ、民供は増えすぎた言語に困惑しております
残念ですがこの2つの鉄槌を振るわねばなりません
Perl,Ruby,phpのうちからお選び下さい」
神様「うむ、」
執事「ささ」
神様「では、一つ目の鉄槌をRubyに、そして二つ目の鉄槌をRuby厨に
落すぞ、あ、後余ったのも全部Rubyでいいや うんうん」
執事「マンセーー!!!」
ルビャーとマカーって、共通するモノがあるよね。
論理的な話し以前に、感情的な話しかできない。
自分が信奉するモノを叩かれると、エモーショナルにキレる。
もうね、アフォかと。ヴァカかと。
339 :
デフォルトの名無しさん:02/01/01 12:59
>>336 じゃあ、理論的に>333を説明してみな。
あまり期待せずに待ってるよ(わら
340 :
デフォルトの名無しさん:02/01/01 12:59
Ruby以外の言語は糞。これは疑問の余地なし。
>>338 > ルビャーとマカーって、共通するモノがあるよね。
> 論理的な話し以前に、感情的な話しかできない。
> 自分が信奉するモノを叩かれると、エモーショナルにキレる。
> もうね、アフォかと。ヴァカかと。
オマエモナー
RubyでOSつくれるんですか?
344 :
デフォルトの名無しさん:02/01/01 13:39
Rubyが悪いのではない。
Ruby厨が痛いだけ。
Rubyという言語そのものは
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>> Java >>>>>>>>>>>>>>> C
345 :
デフォルトの名無しさん:02/01/01 15:04
346 :
デフォルトの名無しさん:02/01/01 15:10
>>344-345 マジで総意
Ruby>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>他の糞言語>>>>>>>>Ruby厨
347 :
デフォルトの名無しさん:02/01/01 15:16
RubyはCに完全勝利した!
348 :
デフォルトの名無しさん:02/01/01 15:19
Rubyは俺の良心なんだ!
349 :
デフォルトの名無しさん:02/01/01 15:30
Rubyやってみたいんですけど、
ネイティブコードにコンパイルってのはできるんでしょうか?
(そういう言語仕様ではないのかな?)
あくまでOOなスクリプト?
>>202よ、
>>126をしっかり読め
「JavaチップのVM」でファイルI/Oとかネットワーク周りの物理層を
どう処理しているかって聞いたんだよ。
それに対する
>>128,
>>131,
>>132 (レスありがと)で納得したんだが、
>VMとして提供するのが理想
>JNIという最終手段
では話になってないんだよ。
結論としては、VM内やJNIの先で FPGA にメモリマップされたI/Oを叩いたり、
サブCPUや非Javaバイトコードモードに遷移して、
Cやasmで書いたドライバを実行して物理I/Oを行うってことですな。
>>351 それってさ、単にforループを判定しただけだろ?意味無いよ。
実用的なアプリケーションでのベンチマークはどうよ?
「できる・できない」は別として、OOなスクリプトなんだから、Cと比較してること自体イタイ。
サーバサイドで、Javaと比較した客観的データくれ。
> JavaのC++に比べて良いところ
> 2.delete を意識しなくていい。
あんた、真のプログラミングでJava使ったこと無いだろ。
GCに悩まされているサーバサイドの皆さん、説教してやってください。
354 :
デフォルトの名無しさん:02/01/01 15:57
るby再起オー!
c言語なkん化かこの異物!
じゃヴぁなんか遅きゅ轍海野のにmな棚井悪阻。真のおおプロ蔵mなが類byを使う戊だ!
るbyさいこーまt″案sレー
355 :
デフォルトの名無しさん:02/01/01 15:58
>>305 の結果って、単に標準出力の処理速度を計ってるだけじゃん。
それも、推測だけど、gcc では出力をバッファリングしていないが、
Rubyはバッファリングしているために、見かけ上速くなってるだけでは?
ファイルにリダイレクトした場合の速度計測希望~
266と267はやってることが違うのでは?
Rubyしらんけど
JavaのGC -> 原因不明鯖落し用の爆弾
RubyのGC -> え、Ruby何それ?
For Loopが速いだけでRudyが速いといえるわけがない。
Rudyが速いと主張するなら、まともなベンチマークを取って
ほかの言語とも比べたものを示せ>ルビャー
Rubyが他の言語より遅いはずがない。
360 :
デフォルトの名無しさん:02/01/01 16:15
何度やっても同じ。Ruby >>> C
知恵遅れのジジイはCでもやってろ
C/C++ >>>>>>>>>>>> | 壁 | >>>>>>>> Ruby
362 :
デフォルトの名無しさん:02/01/01 16:17
363 :
デフォルトの名無しさん:02/01/01 16:20
Rubyの速さを体感したければ
まずはRubyをインストールしてみることです。
>> 363 CERT勧告に「毎月13日に頭がクラッシュします」って書かれてたけど大丈夫?
long i;
long a,b,c;
long t1,t2;
t1 = System.currentTimeMillis();
for(i=0;i<10000000;i++){
a=i;b=i*2;c=i/3+1;
a= a*b/c;
}
t2 = System.currentTimeMillis();
System.out.println("time = "+(t2-t1) +"msec.");
8620msec
>364
ここに居るのは被害者かいな (w
367 :
デフォルトの名無しさん:02/01/01 16:36
結局ルビャーって、マカーと同じだな。
ごくごく1部の機能が優れている?(とは思えないけど)からって、そこにばっかり粘着してて。
枝葉を見て幹を見ず。木を見て森を見ず。
結局は、目的の解決に最適な言語を使えばいいだけなのに。
なんでもかんでもRubyでやろうっていうんだろうな。
368 :
デフォルトの名無しさん:02/01/01 16:49
Rubyistと呼んでください。
>>365 Athlon 1GHz で、
1.700(秒) IBM jdk1.3.0
1.710(秒) WatcomC 11.0J
2.140(秒) jview 5.00.3802
2.850(秒) jdk1.4beta3
3.070(秒) jdk1.3.1-02
7.393(秒) Borland C++ Builder 4
っつーとこですか。
コンパイラは古いのしか持ってないので
新しい奴持ってる人は自分で測定してください
Borlandのが異常に遅いけど、
コンパイラのオプション間違ってるのかな…
それとも __int64 使っちゃいけないとか?
教えて>偉い人
JAVAってオーバーヘッド発生しないって聞いたの
ですが本当ですか?
なんかすごい嘘くさいのですが・・・
素直にlong使えよ
>>374 longだと 32ビット値になるような気が…
それはコンパイラの最適化オプションを付けての結果かい?
それと変数はcharとかbyteでもやってみー
>>376 >>それはコンパイラの最適化オプションを付けての結果かい?
そのつもり。
>>それと変数はcharとかbyteでもやってみー
やりたいのでしたら、ご自分でどうぞ。
>>373 関数を呼んだときのオーバーヘッドです。
CとJavaを比べんなよ・・・・・・・
両方覚えろ
381 :
デフォルトの名無しさん:02/01/02 00:31
>>378 ていうかJavaでは関数とはいわずにメソッドといいます(w
382 :
デフォルトの名無しさん:02/01/02 00:53
>>353 Javaのメモリリークについて言いたいのかな?
もちろんコーディングをミスればリークするけどさ。
VMが必要か必要じゃないかを判断できれば、メモリリークはなくなるけど
冷静に考えればそんな事が無理なのは明らかでしょ。
俺が言ってるのは、明示的にdeleteを書かなきゃならないコストは
どれくらいのものかって事。
C++を使ってる時、オブジェクトを生成するようなメソッドはあまり書きたくない。
effectiveC++にも似たような事が載ってたと思うので読んでください。
enumはいまいち便利な使い方が思いつかないんだけど、
便利な使い方があったら教えてください。
>>350 あんたインタープリターの意味がわかってないよ。
PERLとかRUBYのI/OとJAVAのI/Oは同じ類だってわかってます?
RUBYはまだ使い込んでいないので、特徴があまり把握できてないんで
何ともいえないですね。
作者が書いてる本は持ってるんですけど、あれには大規模開発には向かないって
書いてありますが、なんででしょうか?
RUBYにはコンパイラは無くても、コンパイル時に行うような
文法やら型のチェックってありますよね?
わかる人いたら教えてください。
383 :
デフォルトの名無しさん:02/01/02 01:00
>>16 リフレクションを使え.動的メソッド呼び出しやコールバック
関数なんかもJavaで作れる.
384 :
デフォルトの名無しさん:02/01/02 01:04
>>30 そういう場合は大きさ1の配列作ってやれば良いYO!
385 :
デフォルトの名無しさん:02/01/02 01:06
またデマ情報が・・・
JAVAのメソッド呼び出しは、全て動的ですが。
コールバック関数・・・何がしたいのかよくわからん。
で、リフレクションなんてのはおそらく
普通の人には使う機会はない。
386 :
デフォルトの名無しさん:02/01/02 01:09
>>385 AbstractFactoryパターンやCommandパターン使うときには
必須だろ?リフレクションを使わないってのはJavaでただ
プログラム書いてるってダケのこと(w
387 :
デフォルトの名無しさん:02/01/02 01:15
>AbstractFactoryパターンやCommandパターン使うときには
なんの事をリフレクションって言ってるのかね・・・
リフレクションAPIをあげとくと、
Class,Member,AccesssibleObject,Field,Method,Construtor
Array,Modifier,ReflectPermission
ちょっと怪しげ・・・
なんせ使わないからね。
これで、あんたがデザパタもJAVAも
全然理解してない事がよーーくわかりましたよ。
>>387 クラス名でClassインスタンスとって、newInstanceして、
invokeMethodとかって、時々やるっしょ。
動いてるサーバーのビジネスロジックの追加・交換なんか
ができて便利。
389 :
デフォルトの名無しさん:02/01/02 01:20
InputStreamが抽象クラスなのはそれでいいと思うけどね。
まあ、そこはセンスの問題かな。
とりあえず、インターフェースだったらなーって思ったケースってどんな
ケースか参考までに聞かせてもらえるとうれしいな。
390 :
デフォルトの名無しさん:02/01/02 01:20
>>387 インターフェースを使って、実装と分離するのはよくある
話で、動的にサブクラスを生成して共通メソッドを呼び出す
てのは、ある程度の規模の開発になるとよくやるんだよ。
その際に、hogehoge.classなんてしてClassオブジェクトを
取得したり、Methodオブジェクトでサブクラスのメソッド呼び出し
を動的に制御したりする。こういうことをするために必要なのが
リフレクションです。まあ、漏れもめちゃくちゃ詳しいわけでは
ないけどね。
未知の、コンパイル時に情報交換を行わないプログラムは
Javaでは実行できませんよ。
リフレクションとかその他もろもろのは全部既知のプログラムしか
扱えない。つまり静的。
392 :
デフォルトの名無しさん:02/01/02 01:25
>>389 多重継承が必要な時。
Javaは多重継承ができないから、必要な機能が複数の抽象クラスに
分かれている場合なんかは不便だな。
まあ、普通にJavaでOOPをやってりゃその辺りで頭を悩ます必要はないんだけど。
393 :
デフォルトの名無しさん:02/01/02 01:27
>>391 イマイチいいたいことがわかんないっス。
もうちっと説明キボン。
リフレクションを使うと、コンパイル時の型チェックはできないので
実行時の動的型チェックしか行なえない。
394 :
デフォルトの名無しさん:02/01/02 01:28
>>390 あなたはOOPを根底から勘違いしてるようです。
>話で、動的にサブクラスを生成して共通メソッドを呼び出す
それを(実行時)ポリモーフィズム、レイトバインディング、
動的バインディング、ダイナミックメソッドディスパッチ等と呼びます。
それは、言語レベルで用意されてます。
抽象クラス、オーバーライド、インターフェースについて調べてみてください。
ちなみにリフレクションAPIは、かなり低レベルのAPIです。
もともと、JAVABeansを組み合わせたりするアプリケーションを
作るために作られたのだと思います。
(最初は用意されていなかったはず・・・)
ようするにクラスを解析するようなものです。
>>388 なるほど、そういう使い方もできるんですね。
止められないプログラムというのは身近じゃないので・・・
他にも使いかたってあるんですか?
コンパイル時点では走らせるプログラムに関する情報をいっさい持たない
任意のプログラムを走らせる事が出来る=動的。としとく。
>>389 例えば RandomAccessFile みたいな read() と write() を
両方備えたクラスを FilterInputStream とかで処理してた
いとき。 わざわざ RandomAccessFileInputStream みたい
なの作るのって疲れる…
397 :
デフォルトの名無しさん:02/01/02 01:32
>>394 思うに、アンタの方がよっぽど素人さんだと思う・・。
そんな単語だけ並べて・・中身を語ってみなさい。
リフレクションがJavaBeanのために作られたという根拠は??
398 :
デフォルトの名無しさん:02/01/02 01:32
>>392 いや、まあそうなんですが・・・
具体的なケースです。
理論的に、継承が必要なケースはポリモーフィズムを使いたい場合で、
ポリモーフィズムを使わない場合、集約(アグリゲーション)という
別の手段で回避できます。
現実的には、コーディングが面倒だったりしますが・・・
(そこら辺の自動化がIDEに組み込まれていないが無いところで、OOPLが浸透してない
事を実感させられるのですが)
>>391 うそだよーん。
Class.forName()でClassのインスタンスがとれて、
ClassからFieldやMethodインスタンスのリストが取れるんだから、
クラスファイルのURLとどのメソッドに何渡すかさえ与えれば、
あるプログラムから知らないクラスの知らないメソッド動かせる
よーん。
あんた偉そうな割に無知なのね。
>>399 客観的に見て別に偉そうには見えないけど。
URL?
402 :
デフォルトの名無しさん:02/01/02 01:46
>>399 >ClassからFieldやMethodインスタンスのリストが取れるんだから、
Listだったっけ?配列じゃなかった??
403 :
デフォルトの名無しさん:02/01/02 01:46
JAVAで全てこなせるように書いている奴は見ててマヌケだ。
Class forName(String className)ね・・・。
classNameはどこから持ってくるの?
407 :
デフォルトの名無しさん:02/01/02 01:52
>>403 JavaBeansじゃなくて、java.beansパッケージのクラス群のことだったのね。
ハイハイ。
イントロスペクション云々は昔勉強したけど忘れてしまったよ。
でもこのリンクが言ってることがリフレクションのすべてだ、なんて
まさか思ってないですよね?
個人的には、java.beansパッケージのクラスを使ってる場面をみたことがないです。
あ、そーそー FileInputStream が
mark / reset サポートしてないのも…
409 :
デフォルトの名無しさん:02/01/02 01:54
>>406 プロパティファイルからで良いんじゃない?
410 :
デフォルトの名無しさん:02/01/02 01:56
>>話で、動的にサブクラスを生成して共通メソッドを呼び出す
>それを(実行時)ポリモーフィズム、レイトバインディング、
>動的バインディング、ダイナミックメソッドディスパッチ等と呼びます。
>それは、言語レベルで用意されてます。
>抽象クラス、オーバーライド、インターフェースについて調べてみてください
>>390を読むと、この説明はあってるようだけど、そもそも、「実行時にサブクラスを生成」するのはレイトバインディングとかダイナミックバインディングとは言わないだろ。
>>409 多分それだと、静的だっていうぞ、こいつは。
サーバでソケットの向こうから飛ばしてもらうとか。
管理ユーザがGUIから必要になるたびに登録するとか。
あるディレクトリを常に監視して、そこにファイルが置かれたら
そいつをイベントにしてロードするとか。
まさかそれもダメって言うなら、あんた言うの動的なプロ
グラムのシンボル名称解決ってどうやるんだよ???
とか、かいてるうちに話は先にいっちゃったのね。
413 :
デフォルトの名無しさん:02/01/02 02:00
>>410 さらに、「言語レベルで用意されている」という受け答えがすでに意味不明。
この人本当にJavaが何かさっぱりわかっていないよ。
414 :
デフォルトの名無しさん:02/01/02 02:03
>>411 そうぢゃなくて、「こういう条件が揃った場合には、このクラスを
呼び出す」っていうことが必要な時によく使うけどね漏れは。
415 :
デフォルトの名無しさん:02/01/02 02:04
>classNameはどこから持ってくるの?
プログラムを止めたくない場合の例では、
サーバー用のクライアントを立ててローカルから送ってあげるって
とこですかね。
>JavaBeansじゃなくて、java.beansパッケージのクラス群のことだったのね
いえ違いますよ。
JavaBeansを使った開発環境作成のためです。
>でもこのリンクが言ってることがリフレクションのすべてだ、なんて
>まさか思ってないですよね?
古すぎるせいか、開発動機が書かれてるホームページはありません。
私はAPIリファレンスから知識を得ていますので、それ以外のことはわかりません。
>共通メソッドを呼び出す
こっちがレイトバインディング云々ですよ。
>>411 もちろん静的ですよ。
つうか、最初に明示した条件に反してるでしょう。アフォですか?
論破されたからって「こいつ」呼ばわりですか?
いまの流れでいうと、動的っていうのは、ようするにevalのことだよね?
文字列を実行する、しかも呼ばれた側呼び出し元の環境を参照できる、ってことでいいんですよね?
>>413 おれもそうおもう。
なんかバイトコード臭い話ばかりだな。
420 :
デフォルトの名無しさん:02/01/02 02:09
>>415 >古すぎるせいか、開発動機が書かれてるホームページはありません。
>私はAPIリファレンスから知識を得ていますので、それ以外のことはわかりません。
じゃあぜひシステム開発を経験して、リフレクションの便利さ・必要さを
身をもって体感してください。
私もリフレクションが好きでたまらないというわけでは全然ないんだけど、
使わざるを得ない場面に遭遇するから使っているだけです。
JavaでOOPやってるとかならず出てくるですよ、コイツは。
421 :
デフォルトの名無しさん:02/01/02 02:09
>さらに、「言語レベルで用意されている」という受け答えがすでに意味不明。
ポリモーフィズムの説明はうんざりなんですが、
同じ事をC++でやる事を考えてみてください。
といってもC++知らないでしょうけど・・・。
ちなみにJavaではI/Oの機能はライブラリレベルで用意されていると
表現します。
PERLではI/Oの機能は言語レベルでサポートされています、
と表現します。
422 :
デフォルトの名無しさん:02/01/02 02:11
>>421 >ポリモーフィズムの説明はうんざりなんですが、
>同じ事をC++でやる事を考えてみてください。
>といってもC++知らないでしょうけど・・・。
漏れはいちおうC++のプログラマーなんだが・・。
うんざりせずにC++での実例をもとに語ってみてください。
423 :
デフォルトの名無しさん:02/01/02 02:13
424 :
デフォルトの名無しさん:02/01/02 02:13
>使わざるを得ない場面に遭遇するから使っているだけです
どういう場合で使うのでしょうか?
是非教えてください。
私は一度も使ったことありませんので。
>なんでサーバーの話をしているのやら。
>>動いてるサーバーのビジネスロジックの追加・交換なんか
というわけです。
425 :
デフォルトの名無しさん:02/01/02 02:15
JAVAか昔やらされたな。
あの言語でファイルフォーマット解析しろって言われた時は
吐きけがしたよ。
426 :
デフォルトの名無しさん:02/01/02 02:16
>>425 構造体にがぽっとはめられないかね、がぽっと
427 :
デフォルトの名無しさん:02/01/02 02:17
>>424 上で出したけど、いくつかのデザインパターンではリフレクションを
前提としている場合があります。そして、それを適用した方が
後々のメンテ性が良いことが多いんです。
例えば、実行時のあるオブジェクトの状態によって呼び出すメソッドを
変えたい場合にはリフレクションしかありません。
まあゴリゴリと長いコードを書くのであれば別ですが、OOPだけに
そんなことはしませんよね?
428 :
デフォルトの名無しさん:02/01/02 02:17
言語レベルっていう言い方が、すでに意味不明(つーか、いろんな意味に取れすぎ)
ライブラリレベルもそう。
言語仕様で定義されているとか、標準ライブラリに含まれているとか、そういう言い方してほしい。
429 :
デフォルトの名無しさん:02/01/02 02:18
>>422 C++でポリモーフィズムするには
親クラスのメソッドにvirtualをつけて
子クラスでオーバーライドするだけですが・・・
あとは親クラスの型を指すポインタ変数に子クラスを入れて
普通にメソッド呼び出しするだけで
動的バインドが行われます。
JAVAではvirtualをつけなくても全部virtualになってます。
わかっていただけたでしょうか?
あなたのリフレクションを使う動的バインドは
別物でしたか?
つまりJAVAではオブジェクトの代入は全て参照になってしまうと。
431 :
デフォルトの名無しさん:02/01/02 02:23
>429
つーかC++とJavaの違いをまったく知らないねこの人。
432 :
422じゃないけど:02/01/02 02:24
あるクラスのインスタンスと、そのクラスから導出されたクラスのインスタンスをバインドできるのは、動的バインドって言わないだろう。
ポリモルフィズムとは言うけど。
リフレクションを使うのは、言語が動的バインドをサポートしていないから、別の手段でそれと同じ事をする、っていう気がするんだが…
433 :
デフォルトの名無しさん:02/01/02 02:24
>>427 C++で同じ事するときはどうするの?
でさ、デザパタの本ってリフレクションAPIが作られる前からあったけど
どうやってたんだろ??
ところでファイルフォーマットの解析って、
俺はバイナリーエディター使うんだけどさ、
コンパイラでどうやってやるの?
>>427 それはウソ。
リフレクションを使わざるを得ないのは、実行時まで「クラス」「メソッド」を解決できない時だけ。
単に条件分岐で起動するメソッド変えるだけとかなら、デザパタに解決方法がいくつかある。
Class.forName()でクラスロードしてJITコンパイルして実行、つうのは
オーバーヘッドでかすぎなので、なるべくしないほうがいいよ。実行時にいちいち遅くなる
よりは、初期化時だけ遅いほうがナンボかましでしょ?
435 :
デフォルトの名無しさん:02/01/02 02:29
>あるクラスのインスタンスと、そのクラスから導出されたクラスのインスタンスをバインドできるのは
ゴメン、もうちょっとわかりやすく書いて
意味が良くわからないっす。
436 :
デフォルトの名無しさん:02/01/02 02:30
>>434 別にウソではないだろう。引数を持つコンストラクタを持つクラスのインスタンスを
動的に生成したい場合はどーする。リフレクションでやるしかないだろ。
>Class.forName()でクラスロードしてJITコンパイルして実行、つうのは
>オーバーヘッドでかすぎなので、なるべくしないほうがいいよ。実行時にいちいち遅くなる
>よりは、初期化時だけ遅いほうがナンボかましでしょ?
ま、よーするにコードの見易さを取るか、速さを取るかだわな。
437 :
デフォルトの名無しさん:02/01/02 02:32
>>436 引数つきのコンストラクタの起動方法って、結構みんな知らないのね。
Constracterクラスのドキュメント見て味噌。
>ところでファイルフォーマットの解析って、
>俺はバイナリーエディター使うんだけどさ、
話がかみ合わないわけだこりゃ。
439 :
デフォルトの名無しさん:02/01/02 02:33
というか、ヒープ上のメモリにオブジェクトを生成すること
つまりはnewを使うことを動的にオブジェクトを生成すると
一般的には言うんだが、
どういう意味で使っているのか教えてくれないかな?
440 :
デフォルトの名無しさん:02/01/02 02:34
>>434 それもやっぱりウソ。ある特定のインスタンスのフィールドをダイナミックに
初期化したい場合にはリフレクションを使う。
それから、単体テストをする場合になんかも使う。setAccessible(true)でフィールドの
中身を取り出す。
441 :
デフォルトの名無しさん:02/01/02 02:35
>>436 すまん。何言ってるのかワカラン。
動的に生成するって、何をさしていってるの?
JVMが目的のクラスを解決できていれば、単にそのコンストラクタで
newするだけだよね?
442 :
デフォルトの名無しさん:02/01/02 02:35
443 :
デフォルトの名無しさん:02/01/02 02:35
438はフォーマット判別といいたかったんだと思われ。
と書き込んでみるテスト。
444 :
デフォルトの名無しさん:02/01/02 02:37
>>440 そういう隠蔽を破壊するようなことをなんでする必要があるの?
単体テストならわかるけど。
>>435 強い型付けの言語で、あるクラスの変数を宣言して、そのサブクラスのオブジェクトを代入する、っていうのは、
動的バインドとはいわないだろう、っていうことだ。
って、なんか、解かりやすくなった自身無いなぁ…
446 :
デフォルトの名無しさん:02/01/02 02:38
>>441 うーむ、言い方が悪かった。
条件によって生成するサブクラスが違う場合(ただし同じインターフェースを
実装しているか、同じ抽象クラスを継承していることが前提)に、getConstructor()
とかやるじゃない。
447 :
デフォルトの名無しさん:02/01/02 02:39
>>444 アサーションだよ。アサーション用のメソッドが無い場合は
そうやってクラス内の値を取り出すしかない。
449 :
デフォルトの名無しさん:02/01/02 02:41
>>446 あーわかりました。そういう時は、なるべくFactoryMethodとかで
やったほうがいいよ。(かのヒロミチュ先生もご推薦(藁))
450 :
デフォルトの名無しさん:02/01/02 02:43
>>445 Javaの場合、その変数(C++だと派生クラスポインタ)に対して
メソッド呼び出しをした時必ず動的バインドが行われる。
過去レスを読んでみると良い。
451 :
デフォルトの名無しさん:02/01/02 02:44
>>449 そう、だからFactoryMethodとかAbstractFactoryとかその辺のことを言ってるんだよ。
452 :
デフォルトの名無しさん:02/01/02 02:45
>やったほうがいいよ。(かのヒロミチュ先生もご推薦(藁))
誰?
453 :
デフォルトの名無しさん:02/01/02 02:47
451の発言を見て
>そういう時は、なるべくFactoryMethodとかでやったほうがいいよ。
という意味がいまだにわかっていないじゃん(w
と書いてみるテスト
454 :
デフォルトの名無しさん:02/01/02 02:47
>>451 本当に、そのあたりを記述するのにリフレクション使う必要が
あるのかな???C++/Java両刀の人間には不思議なんだけど。
使ってもできるけど、避けたほうがいいんじゃない?という話
ですが、どないでしょ?
455 :
デフォルトの名無しさん:02/01/02 02:47
そういえば、高木先生スレッドなくなったね。
高木先生はすげーって。
456 :
デフォルトの名無しさん:02/01/02 02:48
>>454 もうほっといてあげなって。
これだけ説明してもわかってないし、
ヒープとスタックの区別もついて無さそうだよ。
457 :
デフォルトの名無しさん:02/01/02 02:49
そういうわけで、ポリモーフィズムもわかってない。
きっとOOもわかってない。
あー、哀れ・・・
458 :
445>450:02/01/02 02:50
459 :
デフォルトの名無しさん:02/01/02 02:51
という具合になげくお前らももっとわかってなさそう・・
攻撃に弱い人は、たいてい冬厨ですな。
第三者装って揚げ足取るのが得意技。
461 :
デフォルトの名無しさん:02/01/02 02:53
>>454 Classクラスのfactoryメソッド使うだろ?
まさにそれがリフレクションの機能使ってるやんけ。
なんかずいぶんいろんな意味の「動的バインド」が出てきてる気がする…
463 :
デフォルトの名無しさん:02/01/02 02:55
>>454 >使ってもできるけど、避けたほうがいいんじゃない?という話
>ですが、どないでしょ?
というのは何故??
464 :
デフォルトの名無しさん:02/01/02 02:57
FactoryMethod適用時に、switch文を使ってもクラスの動的生成を見かけ上はできる
けど、美しくないよね。
>>461 なんででしょ?普通にnewで対象クラスのコンストラクタ起動するだけでいいじゃない。
仮にそれでないとFactoryMethodが実現できないなら、C++の時どうするの?
>>443 君らの書くプログラムはファイルreadすると
勝手にフォーマットがわかるですか?
ずいぶん便利ですね。
468 :
デフォルトの名無しさん:02/01/02 03:00
>>465 getConstructorメソッドちゅうのを使うことはリフレクションの機能を使っているということです。
ちなみにこの場合は対象クラスをnew演算子でインスタンス化しません。
469 :
デフォルトの名無しさん:02/01/02 03:01
>>465 あ、そうそう、Constructorクラスていうのがあるからね。
Java2のAPIガイドみてみ。
あーそういうことか。
switch分岐よりClass.forName().newInstance();
とかで一行で済ますほうが「ソースが美しい」って話ね。
ここから先は宗教戦争ですので、結論はでませんな。
インスタンス生成メソッドでさえswitchを嫌うことで失う実行時
コストととの相談というあたりを落としどころにしませう。でない
と終わらんよ。
471 :
デフォルトの名無しさん:02/01/02 03:03
>>465は、lava.lang.refrect をまず読んでからだろうな。
472 :
デフォルトの名無しさん:02/01/02 03:03
>なんででしょ?普通にnewで対象クラスのコンストラクタ起動するだけでいいじゃない。
newする対象のクラスが動的に変わる場合はハードコーディングしないでしょ?
クラス名をひっぱってきて、Constructorオブジェクトを取得してからインスタンスを
取得する。まあ一度やってみてください。やらんとわからんと思う。
java.lang.refrectだ・・・
しかし、コレクションあたりと同じ感覚でリフレクション使う人って、
以外と多いんだね。知らんかった。気をつけよう。
475 :
デフォルトの名無しさん:02/01/02 03:05
>>474 そうそう、そのへんから宗教戦争になるんだよ、たぶん…
477 :
デフォルトの名無しさん:02/01/02 03:06
>>474 コレクションとリフレクションを同じ感覚で捕らえられる感覚が
おれにはさっぱりわからん。まったく別物じゃん。説明してくれ。
478 :
デフォルトの名無しさん:02/01/02 03:07
異なるクラスが20個あったら20個の分岐を作るんか?
そりゃアンタ、アフォですよ。
>>472 あーそうか。サブクラスを実行時まで解決できないパターンでの
ファクトリの話ね。了解です。
はうー、どんなシステムでそんなもんが必要になるのでせうか。
後学の為に教えてチョ。
>>478 3個ぐらいだったら分岐しちゃうような…
481 :
デフォルトの名無しさん:02/01/02 03:10
実行時に20のうちから1つ選んでインスタンスを作るような場面が、コレクションを使う場面と同じ位あったら、やっぱ考え直すな、おれなら。
482 :
デフォルトの名無しさん:02/01/02 03:10
>>479 結構いろんなところで遭遇するよ。
例えばA/B/Cというシステムにメッセージを送りたくて、出口が一つしかない場合とか。
メッセージのあて先決定メソッドなんかはabstructにしておくんだよ。
483 :
デフォルトの名無しさん:02/01/02 03:12
>>480 3個程度しか増えないことがわかっているならそれでも良いんじゃない?
んで、将来も変わらないことがわかっているんならわざわざリフレクション
使うまでもないかもね。
というか、リフレクションって呼ぶとかなり誤解招くな・・・
そんなリフレクションAPIの末端使ってて、リフレクションとか言ってるんだもんな。
解析と判別も笑えたけど。
おめーのバグだろ・・・スレに登録済みですか?(笑)
>Class.forName().newInstance();とかで一行で
一行じゃかけないよ。
横に長くて(笑)
それは冗談にしろ、2つのメソッドは両方引数がくっついてくるわけで
そこら辺もとか考えると、
switchの方が、メンテするとき明らかに楽だと思うけど。
で、リフレクションおじさんは結局のところ
変なデザパタの本をそのまんま丸暗記してたって事なのかな?
さすがにスタックとヒープの違いはわかってると思うけど・・・
そう願いたいよ。
485 :
デフォルトの名無しさん:02/01/02 03:19
484も、えらそうなこと言ってるけどおそらく実務は皆無だと思われる・・
まぁ、ここでわかってないやつが1000人いても、仕事の現場のわかってないやつ1人にくらべれば、俺の生活への影響は微々たるものだ。
ファクトリーメソッドは便利だから、よく使うよね。
20個分岐するswitchって言うけどさ
20個クラスつくったり、ファクトリーメソッド呼び出す側とか
いろいろ考えてみると別にどうってことないと思うけど。
488 :
デフォルトの名無しさん:02/01/02 03:21
>>484 >というか、リフレクションって呼ぶとかなり誤解招くな・・・
>そんなリフレクションAPIの末端使ってて、リフレクションとか言ってるんだもんな。
えらそーなことをのたまうオメーが説明してみー。
489 :
デフォルトの名無しさん:02/01/02 03:23
>switchの方が、メンテするとき明らかに楽だと思うけど。
バカかお前は?
クラスが増えるたびにいちいちソース直してコンパイルかけんのかよ??
そーゆーのはプロパティファイルに外だしするんだよヴォケが。
>>488 というかリフレクションクラス全部挙げたりしたんですが・・・
今日は70メッセージくらい書いたと思うけど。
今日も厨房が一人減って満足だ。
では、おやすみ。
491 :
デフォルトの名無しさん:02/01/02 03:25
489はmakeツールを知らないらしい・・・
492 :
デフォルトの名無しさん:02/01/02 03:26
>というかリフレクションクラス全部挙げたりしたんですが・・・
それは説明したことにはならんと思うぞ。
20個分岐のswitchが1箇所ですむなら、べつにいいと思うんだが、このテの話は、
20個の分岐が、あっちこっちに散らばるようなら、ポリモルフィズムつかえっていう時に出てくるなぁ。
でも、20個のcaseのswitchが1つあって、そこで作るオブジェクトを切りかえるような使い方なら、
おれはまよわずそれを使うな。
リフレクション(?)なんぞ使わずに。
494 :
デフォルトの名無しさん:02/01/02 03:27
491はIDEを使ったことがないらしい・・
ついでにJavaで仕事をしたこともないらしい・・
495 :
デフォルトの名無しさん:02/01/02 03:29
窓の中の蛙ハケーン
あ、もちろん、実行時まで知り得ないクラスのインスタンス作るような場合は、リフレクションでしょうね。
497 :
デフォルトの名無しさん:02/01/02 03:30
>>493 というかですね、あるシステムの汎用フレームワーク的な部分を構築する
場合は、スーパークラスやインターフェースのかたまりを作って
それをベースにいろんなシステムを開発していくわけです。
そのフレームワークからユーザーパッケージのクラスを、ソースに
ベタ書きで呼び出すわけにはいかんだろ、というワケです。
498 :
デフォルトの名無しさん:02/01/02 03:30
ファクトリーメソッドにプロパティー使うバカもいるのか。
名スレだな。
499 :
デフォルトの名無しさん:02/01/02 03:31
普通はどうやるの?? > 498
MS の JVIEW上でも File.setLastModified() だっけ?
出来るメソッド書くとき java.lang.reflect にお世話に
なりました。
501 :
デフォルトの名無しさん:02/01/02 03:34
>>497 ストリングクラスのオブジェクト渡すのと、
派生クラスのオブジェクト渡すのと何が違うの?
それってファクトリーメソッドの話とは違うよね?
503 :
デフォルトの名無しさん:02/01/02 03:36
>>501 なんか話がズレてるぞ。
汎用なんだから、ある特定のユーザーパッケージもしくはクラスを
importしたりベタ書きしたら、ぜんぜん汎用じゃなくなるじゃんか。
Cの良いとこと悪いとこスレだったはずなのに (ほのぼの~)
汎用パッケージ内のクラス内に、ユーザーパッケージのクラスを
ハードコードすると、汎用パッケージとして意味をなさなくなってしまう
という意味です。
それを解決するのに有用なのが上の方にあったリフレクションだ。
507 :
デフォルトの名無しさん:02/01/02 03:39
>>503 だから、外部から派生クラスを受け取ればいいでしょ?
508 :
デフォルトの名無しさん:02/01/02 03:40
リフレクション使うにしろ、文字列を受け取るわけでしょ?
ファクトリーメソッドの話はもう終わったのかな。
509 :
デフォルトの名無しさん:02/01/02 03:40
>>507 スマソ。意味がわからん。
「外部から派生クラスを受け取る」ってどういう意味?
510 :
ジーンズもケイタイも503が好き:02/01/02 03:40
>>503 汎用パッケージとユーザーパッケージが同時に存在してるなら、どういうことになるんだろうね。
どういう→そういう
512 :
デフォルトの名無しさん:02/01/02 03:41
>>509 つまり Class.forName() で得られるような
クラスオブジェクトを渡すって事では?
514 :
デフォルトの名無しさん:02/01/02 03:42
外部って言うのは、フレームワーク上のアプリケーション
つまりは、ユーザーパッケージの事。
やば、ヘンな造語使ってしまった
516 :
デフォルトの名無しさん:02/01/02 03:43
>>510 汎用パッケージは、いろんなところに横展開が可能だ。
A社で使ったり、B社で使ったり・・。業界が同じなら流用しやすいだろ。
だけど中身の業務は違うから、そういう部分はユーザーパッケージのクラス
で実装するんだよ。汎用パッケージが提供するのは主にインターフェース
もしくは抽象クラスの部分。
517 :
デフォルトの名無しさん:02/01/02 03:45
>>514 だから、ユーザーパッケージのクラス名は外だしにするってことだ。
switch文を使ったら、クラス名をハードコーディングせんといかんだろが。
518 :
デフォルトの名無しさん:02/01/02 03:50
>>517 ちょっと待て、switchはファクトリーメソッドの話。
ユーザーパッケージの中でnewされたオブジェクト(抽象クラスを継承した物
またはインターフェースをインプリメントしたもの)を受け取る関数を
汎用パッケージに持たせるのが普通では?
つまり、何らかの入力に対して何らかの出力をしたければ、
(例えばの話として)汎用パッケージでは、
constructor(InputStream is,OutputStream os)
というのを用意して、
ユーザーパッケージでは、相応のInputStreamとOutputStreamの派生クラスを
newして
コンストラクタに渡してあげればよい。
519 :
デフォルトの名無しさん:02/01/02 03:56
>>518 俺の構想とはアンタとちょっとずれているとは思うのだが・・
汎用パッケージからAというインターフェースを実装したクラスを
使いたい場合、ユーザーパッケージにはAを実装したクラスを作るよね。
だけど汎用パッケージ側はユーザークラスを知らないわけだ。
だけどインターフェース名で呼び出せば良いから、条件によって
クラス名だけフレームワーク側にあたえてやって、ユーザークラスの
インスタンスを取得すればよい。
こんな風に。
A a = Factory.getA(クラス名);
どうでしょうかね?
取得したいユーザークラスが引数を持つコンストラクタをもっている
場合も、インスタンスの取得の仕方が違うだけで考え方は同じだよ。
521 :
デフォルトの名無しさん:02/01/02 04:01
結局のところ、Javaのリフレクションって俗に言うプラグインを組み込むための仕掛け
と理解してるんだけど良いのかな。JavaBeanってプラグインだと決め付けてるけど。
522 :
デフォルトの名無しさん:02/01/02 04:03
523 :
デフォルトの名無しさん:02/01/02 04:07
>>521 それはリフレクションの一部の機能ね。
>>519 言いたい事はわかるけど、それだと
ユーザーが作ったAの派生クラスを外部で利用するには、
キャストをしなきゃならない事は理解できるかな?
Aがインターフェースである場合はそんする部分も大きいよ。
524 :
デフォルトの名無しさん:02/01/02 04:11
そのURLのページから、リフレクションは情報隠蔽を破壊しやすいので
使わないこと。
まあ、ファクトリーメソッドとしては問題ないけどね。
525 :
デフォルトの名無しさん:02/01/02 04:13
>>523 そのユーザーが作ったAの派生クラスは、汎用パッケージがあることが
前提なんだから、他では使い道が無いよね?
万が一、外部で(外部とはどういう意味かよくわからんが)使いたい場合は
そのクラスをそのまま使えばいいんじゃないの?
例えばそのユーザークラスに独自のメソッドが実装されていた場合
(つまりスーパークラスにはないメソッドが定義されている)に
そのメソッドを使いたい場合は、Aというインターフェースで受けては
いけないよね。もしくはダウンキャストしなけりゃならない。
Java2における、Vectorクラスなんかそうだよな。Listで受けるときは
Listに定義されてるメソッドしか使えないけど、汎用的に使えるよね。
526 :
デフォルトの名無しさん:02/01/02 04:15
>Aがインターフェースである場合はそんする部分も大きいよ。
どういう場合か簡潔に説明してください。
527 :
デフォルトの名無しさん:02/01/02 04:30
>>523 後付けの部品を組み込む時以外の既知のクラス情報を参照するのに意味あるの?
クラス設計の不手際をコーディング時に辻褄あわせて再設計の工数とトレードオフ
するためには使えるけど、それって裏技の類だよね。
・・・設計に自信があっても障害検知時に利用するというのには大いに意味があるか。
528 :
デフォルトの名無しさん:02/01/02 13:35
なんで誰も
>>494のバカっぷりに突っ込んでやらないの?
528=491
C 使いってもういないのだろうか。
嘆かわしい世の中だ。
531 :
デフォルトの名無しさん:02/01/02 16:07
>そのユーザーが作ったAの派生クラスは、汎用パッケージがあることが
逆です。
フレームワークをユーザーが使うの。
>もしくはダウンキャストしなけりゃならない。
既に書いたけど、
汎用フレームワークの外側でnewされてれば、ダウンキャストは起こらない。
リフレクション使うと、コンパイル時の型チェックもできないしさ。
>どういう場合か簡潔に説明してください。
ファクトリーメソッドで必ずオブジェクトを作るって事は、
複数のインターフェースをインプリメントできない。
つまりはインターフェースの意味が無い。
constructor(A a,B b)
というのがあったとき、
A,BをインプリメントしたクラスCがあると、
constructor(c,c)でOK。
これでいい?
とりあえず BeansScriptingFramework は便利だ。
533 :
デフォルトの名無しさん:02/01/02 16:53
>>530 きょうび Cだけしかできないなんてヴァカがいたらみてみたいものだ(w
>>533 Javaをわけもわからず無理やり使って、勝手に惨めな思いしている
Cプログラマなら、掃いて捨てるほどいるなあ。
>>534 年末に使われてないJava使いを集めて捨てました。
すっきりきれいになりました。GCって便利ですね。
JAVAで全てできると思っている奴は見ていてマヌケだ。
537 :
デフォルトの名無しさん:02/01/02 17:13
JAVAと表記するやつは間違いなくマヌケさん(稿
>>536 >>JAVAで全てできると思っている奴は見ていてマヌケだ。
そんな人いないと思いますけど…
ひょっとして、過去の536ご自身ですか?
>>537 >JAVAと表記するやつは間違いなくマヌケさん(稿
おまえは些細なことにこだわって自滅するタイプ
540 :
デフォルトの名無しさん:02/01/02 17:27
Javaってなんでヲタを集めるんだろうか?
ヲタというほど知ってるやつ、少なさそうだけど…
542 :
デフォルトの名無しさん:02/01/02 17:33
ヲタとは知識をひけらかして人を見下す人の事を言ったのが語源ですだ。
543 :
あたまの容量が少ないひとっているんだね:02/01/02 17:36
>>539 きみってヴァカそう、僕のまわりには決していないタイプ(w
>>542 >>ヲタとは知識をひけらかして人を見下す人の事を言ったのが語源ですだ。
それって 542ご自身がヲタだという告白とみなしますが、
よろしいですか?
>>543 >
>>539 > きみってヴァカそう、僕のまわりには決していないタイプ(w
おまえ、いつも一人ぼっち。周りにだれもいないタイプ(ヒ
Java使ってる奴は所詮ローカルな知識だけで、
不変的な仕様を理解できない。
くだらん事で争うな
「不変的な仕様」ってなんのことだろう?
>>549 「普遍的な仕様」でない事だけは確かみたいです。
(それにしたって良く意味わからないけど)
ヲタとは知識だけをひけらかして人を見下す人が、あいてを「お宅」と呼ぶのが語源ですだ。
>>550 > 「普遍的な仕様」でない事だけは確かみたいです。
> (それにしたって良く意味わからないけど)
「不偏的な仕様」かな?
惨に依存しないってことで。
C厨半泣き状態
>>551 >ヲタとは知識だけをひけらかして人を見下す人が、あいてを「お宅」と呼ぶのが語源ですだ。
そんな知識ひけらかしてどうするんだい?
>>553 >C厨半泣き状態
Java厨号泣。アイゴー。アイゴー。
>>555 愛子様ご生誕を 未だに祝ってらっしゃるのですね?
よせよ、Kusakabeが来るぞ。
559 :
デフォルトの名無しさん:02/01/02 18:22
Javaは煽動と洗脳によって支えられています。
人を見下したいという願望を持つ若いアフォを、
「Javaが現れるまで従来は・・・でした。」式の、
[決まった答えが出てくる嘘の知識]で誘導します。
その手のJavaの解説本を読んだアフォは
「旧世代を打倒してプログラミングの世界を革新しなければならない」
といったような「使命感」を植え付けられます。
騙されやすい若者を騙して使う汚いやり口だと思います。
ヒトラー・ユーゲントしかり、紅衛兵しかり、
これは全てJavaの仕掛け人サイドの計算通り。
いいかげん、目を覚ましましょう。
俺はあの書き方みて笑ってしまったよ。
なんてアンチJavaは、Java使いがJavaしかやってないと思ってんだろうね。
Java使いも昔はC使いだったんだが(Servlet&JSPが初めてのプログラミング
と言う真性厨房サラリーマンプログラマをのぞいて)。
仕事によってはCを選択することもあるというのは、言われなくてもわかって
るって。
ってか、この類のスレに書き込んでる奴は漏れなくヴァカ
560も含めてね。でも俺は例外(笑
>>561 インターフェースのような後決めライブラリ構造がJava以前は無かったような
事を言うから。
再利用も同じ。
try{
>>562 }
catch(例外 俺){
俺.氏ね;
}
finaly{
すっきり;
}
>>518 >>constructor(InputStream is,OutputStream os)
っつーか これ isのデータを osに出力するだけだったら
クラスメソッド(っつーか関数)でやるべきなんでは?
JAVAってビット演算も当たり前のようにできますよね?
初心者でスマソ
ビット演算はハードウェアを直接使う際には必要だが、
アプリケーションを作るレベルでは使うべきでないと思うがどうか?
>>570通信や画像処理では必須かと思われ。
ライブラリに隠蔽すればいいけども。