トップページ⇒tech
571コメント167KB

CとJAVAを比較した場合Cの良いとこと悪いとこ

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
ってある?
0002デフォルトの名無しさんNGNG
2ですが、なにか?
0003デフォルトの名無しさんNGNG
CはJAVAに比べて処理が速く何でもできるとよくいいますね。

JAVAはオブジェクトが使えますから、オブジェクト指向派の人にはJAVAの方がいいかもしれません。

しかしながら、C++の方ができることの範囲が広いようなので、そっちのほうがいいかもですね。
0004デフォルトの名無しさんNGNG
惨
0005デフォルトの名無しさんNGNG
死
0006デフォルトの名無しさんNGNG
氏++
0007デフォルトの名無しさんNGNG
>>3
Cもオブジェクト使えますが、なにか?
0008(・∀・)クソスレアゲルナ!NGNG
>>7
Javaも基本型使えますが、なにか?
0009デフォルトの名無しさんNGNG
>>8
HSPも整数型使えますが、なにか?
0010デフォルトの名無しさんNGNG
Javaのおかげで、Cには厨房が集らないので助かってます
0011Java++NGNG
C:インラインアセンブラが使える
Java:言語レベルで GUI や Thread などが使える
0012デフォルトの名無しさんNGNG
Cの良いところはポインタが使えるところで、
Cの悪いところはポインタを使わなければならないところ。
0013デフォルトの名無しさんNGNG
Java が良いのは、糞壁がウンチクを語らないこと。
0014デフォルトの名無しさんNGNG
Cはなんでもできるってのはよく言われるけど、
おまえは本当にCでしか書けないようなプログラムを書くのか?
たんにデバイス制御もできるし、とかいいたいだけなんじゃないかと、
問いたい。問い詰めたい。小一時間問い詰めたい。
0015デフォルトの名無しさんNGNG
CでできることはJAVAで全部できるんかね?

もしそうなら Cが消える日がくるかもしれんな
0016   NGNG
Javaでは動的なプログラムは作れません。
プラグインや動的関数ポインタは無理。
死んで欲しい。
0017デフォルトの名無しさんNGNG

知人は CはJAVAみたいにきれいなプログラムを書けないから
糞とか言ってくるので言い返したいのですが、
Cしか知らない私は言い返せないで
JAVAがCより優れている所があるなら 私も教えてほしいです。
0018 NGNG
Cがエッチなら
Javaは夜明けのコーヒーみたいなもんだ。
0019デフォルトの名無しさんNGNG
>>17
標準ライブラリが豊富。
>>11が書いてるように、標準規格内でスレッドやGUIをサポートしている。
0020   NGNG
>>17
Cの方が美しいプログラムが書けるよ。
0021デフォルトの名無しさんNGNG
JAVAはそんなにきれいに書けるもんなの?
Cで書こうが、JAVAで書こうが綺麗かどうかって
いうのは設計の問題のような気がするけど・・・
0022デフォルトの名無しさんNGNG
Javaってインタプリタ方式だから実行速度遅いよね。
0023デフォルトの名無しさんNGNG
実行速度が速いだけでCが優れている と言われるなら
PCのスペックが年々上がっているので、
数年後にはJAVAのほうが勝る可能性があるんじゃないのですか?
0024デフォルトの名無しさんNGNG
分野によるね
0025デフォルトの名無しさんNGNG
>>17 Javaは JVM がないと何もできないよ。
Cを糞とか言うやつには、JVM が何で書いてあるか問詰めてみろ
0026デフォルトの名無しさん NGNG
>>23
お前の書いていること、おかしいぞ。
0027デフォルトの名無しさんNGNG
>>26
スペックが上がれば
JAVAが遅く感じることがなくなるってことじゃない?
0028デフォルトの名無しさん NGNG
>>27
だが>>23の言っている
「JAVAのほうが勝る」
なんてことにはならんだろう。
0029    NGNG
>>23
ヴァカですか?
0030デフォルトの名無しさんNGNG
>>17=>>1
とりあえずJavaの悪い所はPrimitive型へのポインタが取得できない事かな。
それと、(ヒープ上に取ってるくせに)配列の大きさを変えれない事。
0031デフォルトの名無しさんNGNG
>>30
「Javaで」ポインタ取得できたとして、
なんか嬉しいことあります?
0032デフォルトの名無しさんNGNG
>>31
swapメソッドが書ける
003330NGNG
>>32は俺ね。
0034デフォルトの名無しさんNGNG
JavaにCのコードを埋め込めるよ。
だから、Cでできることは全部JAVAでできるけど。
一般的にJAVAにCのコードを埋め込む時は、
機種(OS)に依存したプログラムを書くときだね。
C++→Cトランスレーターなるものがあるので、
JAVAは何でもありなわけだけど、
わざわざOS依存させて、実行速度を優先させるケースも少ないんで・・・
0035    NGNG
  void *func()=jmp_table[command_code*4];
  func();

みたいなCで二行で済むことをJAVAだとどんなコードになるんだろう?
0036デフォルトの名無しさんNGNG
Primitive型ってなんですか??
0037デフォルトの名無しさんNGNG
>>35
((Command)map.get(code)).execute();

準備さえしとけば、一行で済むよ。
ジャンプテーブルの変わりにCommandインスタンス
のマップ作っとくだけ。
0038デフォルトの名無しさんNGNG
>>35
OOがわかってない事をさらすなって(笑)
0039仕様書無しさんNGNG
>>37
そういう使い方は便利だなぁ。
参考になたーよ。
0040デフォルトの名無しさんNGNG
>とりあえずJavaの悪い所はPrimitive型へのポインタが取得できない事かな。
OOでプログラム書いてるときは、そういうケースで困った事はないな。

>それと、(ヒープ上に取ってるくせに)配列の大きさを変えれない事。
ネタだよね・・・
0041デフォルトの名無しさんNGNG
>>39
デザパタやろうよ・・・
0042デフォルトの名無しさんNGNG
>>37
遅そう。。。
0043デフォルトの名無しさんNGNG
>>42
ハッシュマップからコードでハッシュ検索するだけなんだから、
コードのインスタンスのhashcode()メソッド適当にオーバーライド
して遅くないルーチンに最適化しとけば、かなり速いよ。
hashcode()で引いて来た番号をハッシュマップ内部の配列の添字番号
としてそのまま参照引き出してあげれば済むような最適化は、簡単に
できるよ。
0044デフォルトの名無しさん NGNG
>>34
Cはアセンブリコード埋め込めるぞ。
MMXやSSE使うときに必要。
004543NGNG
いちばん簡単なのは、キー値に0から順番の値のIntegerインスタンス
使うこと。hashcode()メソッドが、単に内部のint値返すだけだから。
0046デフォルトの名無しさんNGNG
>>43
というか、そこって速い遅い議論するところじゃないでしょ。
004730NGNG
>>40
>ネタだよね・・・
コラッ!せっかく>>36あたりが釣れそうだったのにバラすなって!(w
004836NGNG
つられました。
で、Primitive型ってなんですか??
0049デフォルトの名無しさんNGNG
>>48
オブジェクト参照型以外全部。
005036NGNG
intとかlongとかですか?
じゃ>>30はswapかきたいだけでバイトコードインタプリタ否定ですか?
0051デフォルトの名無しさんNGNG
まあ、はっきり言ってしまえば、JAVAのクラスは何で書かれてるの
かと言えばCで書かれている。
0052デフォルトの名無しさんNGNG
VC++の新しいVerは古いVC++を使って開発されているってのは聞きますね〜
他のCやC++も同様なのでしょうけど、javaの新しいVerをjavaから作っていったら...
数回verupすると恐ろしい事になりそうやね
0053 NGNG
CはUnixと共に成長し、C++を生み、
今なおメインの言語として君臨している。

Cは
「論理的で、覚えることが少なくて、実行速度が速い、皆に愛されている言語」
だと倉薫も書いていたYO!
0054デフォルトの名無しさんNGNG
>>52は一瞬JVMをJavaで書くように読めてつっこみそうにナターヨ
>>51Javaのクラス? ふつーJavaで書かれてるんでないか?
コンパイラはCで書かれてるんだろうけど。

新しいアーキテクチャのCPUが出てくれば、やっぱり最初に提供されるのはCなんだろうから、
Cはまだまだしばらくの間、必要なんだろうとおもわれ。
0055デフォルトの名無しさんNGNG
午前3時半か
もうすぐヤツが目を覚ます時間だな
0056デフォルトの名無しさん NGNG
                       ,〜((((((((〜〜、
                     ( _(((((((((_ )
                      |/ ~^^\)/^^~ ヽ|
                       |  _ 《 _  |
                      (|-(_//_)-(_//_)-|)    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                       |   厶、   |   <  おはよ〜〜。
                       \ |||||||||||| /    \_____________
                  _-‐' ̄|\      /  `ー―-、__
             /~⌒~ ̄|  , -‐'\ ` - ー '/  \    '     ̄\
           /      | `ー―-、ヽ   ノ -―'~ ̄ 、       \
          /       /      `ーV -‐' ̄      ヽ         |
          /                ||          \           |
          |                ||                   |`、
        /`-、   /           ヽ||/          ヽ   ー、_ノ \
       /       、    ○      ||/    ○      |/      \ \
       /        V        \. ||            /         | |
      |         ヽ        ヽ/ヽ、          人          |  |
      |        / \、_     /  \       /  ヽ         |  |
      /       ノ /    ̄`ーー'   l  、 ̄`ーー-ー'    ∧        l   |
     (       / /\  入   /   |   |     / )  /  \      人  |
    /    \ ,/    \     l、_ 人_ _,|    -‐',/l /    `ー、_>-‐'~    |
    //      〈       | \   /   |   ヽ   /  |        |       |
   | |         |        |     |   |    |      /        |        |
    | |       |         |    l、_ 人_ _ _ ,|     _/       |        |
   | |       /       /‐--、______, --‐'~ __〈        |        |
0057デフォルトの名無しさんNGNG
    ∧_∧!   / ̄ ̄ ̄ ̄ ̄ ̄ ̄
__( ;´Д`)__< 遅刻だ!
|  〃( つ つ   |  \_______
|\ ⌒⌒⌒⌒⌒⌒\
|  \           \
\  |⌒⌒⌒⌒⌒⌒|
  \ |______|
005857NGNG
5分も負けた…。
0059デフォルトの名無しさん NGNG
朝からハイだぜ、ベイベー!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 
      ,〜((((((((〜〜、
     ( _(((((((((_ )
     |/ ~^^\)/^^~ヽ|
      |  _ 《 _  |
      (|-(_//_)-(_//_)-|)
      |   厶、    |
      \ |||||||||||| /
      ⊂ \_______⊂ ⌒`つ≡≡≡(´⌒;;;≡≡≡
              ̄ (´⌒(´⌒;;
0060    NGNG
>>38
OOと関係無いだろ ヴァーカ!市ね!糞が!
006130NGNG
>>50
ネタだって言ってるのに…。
そう本気にされると申し訳なく思えちゃうな。
Javaでもswap書けるよ(これはネタじゃない)>>36
006230NGNG
61補足
かなり無理矢理だけどね。
006336NGNG
>>61
ほ?ポインタとれると、なにか、swapに特殊なテクニックがあるですか?
しかも、Javaで「無理矢理」な…
0064デフォルトの名無しさん NGNG
年末もハイだぜ、ベイベー!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      ,〜((((((((〜〜、
     ( _(((((((((_ )
     |/ ~^^\)/^^~ヽ|
      |  _ 《 _  |
      (|-(_//_)-(_//_)-|)
      |   厶、    |
      \ |||||||||||| /
      ⊂ \_______⊂ ⌒`つ≡≡≡(´⌒;;;≡≡≡
              ̄ (´⌒(´⌒;;
006536NGNG
「Javaにはレジスタ変数が無い」とかだったら、わかるんだが…
0066ネタNGNG
Javaにはswapメソッドを書く必要性がありません。
0067デフォルトの名無しさんNGNG
なんでそんなswapが話題になってるの?
tmp=a;a=b;b=tmp; でいいんでしょ?
プリミティブだと値のコピーによる交換だけど。
どーせプリミティブのコピーなんてたいしたコストじゃないし。
0068いわずもがなNGNG
>>67
初心者本しか見たことの無い冬厨の季節だから。
006936NGNG
>>67
だってそれじゃ、ポインタ取れるかどうかなんて関係ないじゃん。
0070あほくさNGNG
このスレって「Cしか知らない馬鹿」隔離スレみたいね。
0071デフォルトの名無しさんNGNG
C?
あんなアセに陰毛が生えた程度のものを
言語っていわないでくれるかな。
0072デフォルトの名無しさんNGNG
>>71

 しかし、その陰毛がヤラしい部分をけっこう良く隠蔽
しているんだよな。
0073デフォルトの名無しさんNGNG
無毛萌え〜
007436NGNG
ねーねーねー無理矢理なswap、まだ??
0075デフォルトの名無しさん NGNG
>>71
おいおい、随分な物言いだな。
さすがに言語でないことはないだろう。
0076デフォルトの名無しさんNGNG
>>75
基地外に突っ込むなよ。かわいそうだろ。
適当にいなしといてやれよ。
0077デフォルトの名無しさんNGNG
だいたいライブラリで吸収できそうな話題じゃないか?
STL使えばC++でも簡潔に書けるだろ。

ポインタ云々もスマートポインタを用意すれば良いだけ。
0078デフォルトの名無しさんNGNG
javaは将来性ない
Cはある。
0079デフォルトの名無しさんNGNG
>78
JAVAの需要が先細りになっても、Cの需要は変わらないって
言いたいのか? 賛成だ。そのとおりだよな。
 ただ、JAVAだって生き残らないとは限らんぜ。
0080デフォルトの名無しさんNGNG
>78
まだ、どうころぶかわからんよ
0081デフォルトの名無しさんNGNG
javaはおわりだね
0082デフォルトの名無しさんNGNG
Javaもネタとはいえ Cと比べられるように
なっちゃったんですねぇ…
0083デフォルトの名無しさんNGNG
次のバージョンではunsignedは使えるようにして欲しいなぁ
0084デフォルトの名無しさんNGNG
>>83
1bitくらいケチるなよ。
0085デフォルトの名無しさん NGNG
>>79
分野によって変わってくるんだろうね。
いまだにFortranやCOBOLが使われているように
Javaも何処かでは生き残り続けるのかもしれない。
0086デフォルトの名無しさんNGNG
JAVAはOSに依存しないため
今後発展しそうな気がするんだけど気のせいですか?

現在はCよりJAVAのほうが需要があるように
感じるけど それも気のせい?
0087デフォルトの名無しさん NGNG
>>86
分野によるしねえ。
0088デフォルトの名無しさんNGNG
>86
JAVAを動作させる為にはVMが欲しいんですが何か?
0089デフォルトの名無しさんNGNG
冬厨隔離スレとして順調に伸びてるな
>>86 サーバサイド以外でJavaの需要ってほぼ皆無だよ。
i-appliのあれはJavaという名前がついてるけど別ものだし。:-)
0090デフォルトの名無しさんNGNG
>>84 1bitならケチらないが、32bitをケチりたいんだよ。

32bit無符号のデータを外部から取りこむ場合、その値域をカバーするために、
long (64bit)を使うしかなくて苦痛なんだよ。
0091デフォルトの名無しさんNGNG
CとJAVA例えるならば職人とオペレーター。
0092デフォルトの名無しさんNGNG
>>90
苦痛って… 医者に行った方が良いかも。
0093デフォルトの名無しさんNGNG
所詮JAVAでバイナリ操作は無理だな。
0094デフォルトの名無しさんNGNG
Rubyナラデキル。
0095デフォルトの名無しさん NGNG
うんうん、Rubyもいいよね。
C,C++,Rubyマンセー!
Javaはあまり知らんからノーコメントとしておく。
0096デフォルトの名無しさんNGNG
どんなもんでも
できるにこしたこたぁない
0097デフォルトの名無しさんNGNG
情報科学、情報工学ではJavaは生き残ると思うけど。
0098デフォルトの名無しさんNGNG
あらゆる分野でRubyが使われるようになるのに、そう時間はかからないだろう。
0099デフォルトの名無しさんNGNG
>所詮JAVAでバイナリ操作は無理だな。
バカ発見。

Cにできる事と、Javaにできる事に差があるわけ無いだろが。
ある処理を記述するのに、どうするかが言語の違いだよ。
さっさと気づけ馬鹿ども。
0100デフォルトの名無しさんNGNG
>Cにできる事と、Javaにできる事に差があるわけ無いだろが。

C言語ちゃんとお勉強してから言ってくださいね。
0101デフォルトの名無しさんNGNG
>>99
ROM,RAMあわせて4KBしかありませんが、なにか?
0102デフォルトの名無しさんNGNG
JavaではIA-64のバンドルの生成は出来ません。
0103デフォルトの名無しさんNGNG
IA-64のハンドル?バンドル?ってなんですか?
0104デフォルトの名無しさんNGNG
>>101
それはハードウエアの問題では?
コンパイラ作成の手間を考えたら、
一般的じゃないCPUでアプリケーションを作る場合は、
C言語になるのかも。

言語的な違いは明らかで
JAVAで書くような複雑なプログラムは、Cじゃ書かないし
Cで書くような簡単なプログラムは、JAVAじゃ書かない。
0105デフォルトの名無しさんNGNG
>>104

基本から勉強してね。
0106デフォルトの名無しさんNGNG
1つ言っておく。CとJAVAを比較するのは
CとBASICを比較するようなものだと。
0107デフォルトの名無しさんNGNG
1つ言っておく。CとJAVAを比較するのは
CとLISPを比較するようなものだと。
0108デフォルトの名無しさんNGNG
1つ言っておく。馬と牛を比較するのは
馬と鹿を比較するようなものだと。
0109デフォルトの名無しさんNGNG
1つ言っておく。
やっぱや〜めた。
0110デフォルトの名無しさんNGNG
>109
いってくれ
0111デフォルトの名無しさんNGNG
Java は計算機科学の最先端の研究対象にもなるし、実用にもなる。
C は fj.comp.lang.c での罵りあいの道具にしかならない(w
0112デフォルトの名無しさんNGNG
JAVAでドライバでも組んでみてくらはい。
それができたら認めるよ〜ん。
0113デフォルトの名無しさんNGNG
計算機科学の最先端って、やたら多いけどね。
ウニの棘の先端みたい。
0114デフォルトの名無しさんNGNG
>>112
馬鹿
0115デフォルトの名無しさんNGNG
>>112
Java用のドライバ作成環境を用意してくれたらな。
一休さんみたいだ。
0116デフォルトの名無しさんNGNG
>>112
OS、デバイスとのインターフェ−ス部分をJNI使って書けばいいだけでしょ?
JavaOSのドライバはJAVAだし。
0117デフォルトの名無しさんNGNG
あくまでも実行する側の問題であって、
例えばJavaをn
0118デフォルトの名無しさんNGNG
>>116
天然ですか?
0119デフォルトの名無しさんNGNG
C厨必死だな(w
0120デフォルトの名無しさんNGNG
>>112
あんたJavaでドライバ組みたいと思うのか?
0121デフォルトの名無しさんNGNG
>>119
君、Java厨?アワレ。
0122デフォルトの名無しさんNGNG
>>116
実用に耐えられるものを作ってくれ。
0123デフォルトの名無しさんNGNG
VMをJAVAで作るとか言い出しそうだな(藁
0124名無しさんNGNG
Javaは将来性がないとか死滅するとか
おまえら情報操作もいいかげんにしろや。
そうやってJava使いを一人でも多く減らして自分だけ
甘い汁を吸おうと思ってるんだろ?だがな、俺は騙されん。
最も将来性があり、これから主流になるのは間違いなくJavaだ。
0125デフォルトの名無しさんNGNG
シリアル/パラレルポート接続なら
Cmmunication APIでなんとか。
あとUSB APIというものもあるようだ。
まだ実装がLinux用しか出てないけど。

>123
Jikes RVMとかいうJavaで書かれたJVMが存在する。
0126デフォルトの名無しさんNGNG
>>123 マジな話、Javaチップの JVM って何で書いてあるんだろう?
バイトコードはネイティブ実行できるからVM不要だろうけど、
ファイルI/Oとかネットワーク周りの物理層をどうやって処理
するのか考え出すと年越せません〜
0127デフォルトの名無しさんNGNG
JAVAとC#がこれからは主流になると思うな。
実はアンチVBだけど、
VB7は結構使えるのかもと・・・全然知らないから
いいかげんな事言ってるかも?
ただ、OOという技術が趣味プログラマーに浸透するかは疑問だし
ポインター知らないで、JAVAができるのか?という疑問もある。
まあ、あくまで予想だね。
0128デフォルトの名無しさんNGNG
携帯のVMはcで書かれています。
はっきり言ってVMでもデバイス制御部分は全てCかアセンブラです。
0129デフォルトの名無しさんNGNG
>>128
その携帯は Javaチップなんすか?
0130名無しさんNGNG
Javaをマスターした後だと
C覚えるのって簡単ですか?
0131デフォルトの名無しさんNGNG
>126
内部のCPUもどきのFPGAが実行している。
0132デフォルトの名無しさんNGNG
Javaチップってそんな大層なもんではなくて
バイトコード処理用の拡張命令持っただけの
普通の、例えばArmとかだよ。
0133デフォルトの名無しさんNGNG
>>130
簡単だよ、というのが慣例だよね。
難しいかった、というやつには
おまえはJavaをマスターしてない
とつっこまれて終わり。
0134デフォルトの名無しさんNGNG
>130
逆のほうがいいかも
0135デフォルトの名無しさんNGNG
だからマスターは禁k(以下略)
013636NGNG
swap、まだ?
0137デフォルトの名無しさんNGNG
JAVAチップのドライバーはCで書かれています。
0138CopyBorotNGNG
Cは最初なんの為に開発されたのか知ってるかい?
Cは何を使って開発されたのか知ってるかい?
このスレのC支持者に誰か予知能力者でもいるのかい?
時代は交代していくものさ。ヽ(´ー`)ノ
Java厨呼ばわりで結構。
"乗りてえ風に遅れた奴は間抜けっていうんだ。"

とか"うしおととら"の"とら"の言葉で締めてみる。
0139デフォルトの名無しさんNGNG
>>137
アセンブラ使わないんだ…
0140CopyBorotNGNG
あぁ〜さっきのはJavaを「言語」として捉えた時の意見であって
JVMを攻撃しまくってるC支持者さん達には
しょうしょうキティな文章になってますがよろしくヽ(´ー`)ノ
0141デフォルトの名無しさんNGNG
>>139
Cでの開発環境が用意されているということ。
あんたアセンブラについて勉強した方が良いね。
014231NGNG
>>136
30じゃないけど、

swap( int[] array, int i, int j ){
 int tmp = array[i];
 array[i] = array[j];
 array[j] = tmp;
}

とかぐらいしか思いつかない。
他の方法あるなら知りたいっす >>30
0143デフォルトの名無しさんNGNG
PDP−11の時代でも、今でのCの果たす役割は根本的には変わってない気がする。
CPUがItaniumになって、OSがLinuxになったくらいで…
ま、そればかりじゃないけど。
0144デフォルトの名無しさんNGNG
自前でマクロ展開でもすれば > swap
014531NGNG
それが良いかも>マクロ展開
0146デフォルトの名無しさんNGNG
>>10
同感
0147デフォルトの名無しさんNGNG
swap( int[] array, int i, int j ){
 array[i] ^= array[j];
 array[j] ^= array[i];
 array[i] ^= array[j];
}
014831NGNG
>>147
それーゆーのって、Cの#defineマクロとかで
swap書くときしか使ってないけどなぁ…
014930NGNG
>>142
合ってるよ(´∀`)
0150147NGNG
>>148

と、いわれても…。
0151 NGNG
Cが優れているところ
1)ポインタ
2)プリプロセッサ
Javaが優れているところ
1)ネット系ライブラリが充実している。
そんだけ。
Cの短所
・・・特に無い。
JAVAの短所
1)厨房が大量に集まってしまった。(しかも、えばってるし)
2)プリプロセッサが無い
3)ポインタが無い。特に関数ポインタ
0152デフォルトの名無しさんNGNG
JAVAはunsignedが無いのは痛いね。
0153デフォルトの名無しさんNGNG
>>152

1ビットくらいケチるなよ。
0154デフォルトの名無しさんNGNG
別のスレでやってなかったか?
0155デフォルトの名無しさんNGNG
>>151
こないだ買ったJava本にポインタの解説がイパーイありました。
Javaにはポインタがあるらしいです。
0156デフォルトの名無しさん NGNG
Cの長所
・実行速度が速い。
・アセンブリに近い記述が可能。
・C++はCを言語体系の一部分に含めているので、
C++を学習するとき得なくてはならない知識を
ある程度小さくできる。
Cの短所
・最新の言語に含まれている、魅力的な機能がない。
0157デフォルトの名無しさんNGNG
>>154

確かに以前にも書いた覚えが(^^;
0158デフォルトの名無しさんNGNG
>155
関数ポインタもかいてあったか?
0159155NGNG
>>158
いえ、それは書いてませんでした。すいません。
0160デフォルトの名無しさんNGNG
ポインタらしきものがあるということで。
0161デフォルトの名無しさんNGNG
関数ポインタは、望んだ実装のメソッドを持つobject(のクラス)を作れ、ということで。

ただしそうすると、好きな名のメソッド(を参照する変数)ってものは
結局使えないので、微妙に嫌な気分だが。

javaも軽く使う分には悪くない言語だが、
ちと手のこんだ事をしようとすると、C以下の柔軟性しかないのが壁となる。
lispやrubyみたいな方向性の柔軟さも、少しは欲しい。

せめてクラス変数の型を継承で作れるようにしてほしかった。
Classっていう唯一の型しかないのは面倒だ。
うわ。java.lang.Classってfinalなのか。
変数どころかObjectとしても継承できないわけか。

あと、逆にC++のような方向性もまた切りすててるんで、
javaって、「エレガントに」やれる事柄が本当に少ない言語だ。
0162デフォルトの名無しさんNGNG
Cのほうが全然早い、理解しやすい。
しかしネットワークとか付加的なのが少ない
0163デフォルトの名無しさん NGNG
>>162
C言語は開発当初から言語仕様をスマートにする方向で
設計されたらしい。
いまだにそれを貫いているところを残してあるが故に、
付加的な仕様が少ない。
しかし、だからこそ学ぶ際に煩雑な感じを受けずにすむ。
それもここまでC言語が普及した理由の1つだろう。
0164デフォルトの名無しさんNGNG
欲しい機能があれば自分で作る。
これが言語仕様上ほとんど制限の無いC言語の
正しい使い方。
0165デフォルトの名無しさんNGNG
欲しいソフトが存在しなかったら自分で作る。
これがコンピュータの正しい使い方。
0166デフォルトの名無しさんNGNG
関数ポインタって、java.lang.reflect.Method
使えば似たような事出来るような気がしますが。
0167デフォルトの名無しさん NGNG
>>164>>165
似ているわけね。
0168デフォルトの名無しさんNGNG
>>せめてクラス変数の型を継承で作れるようにしてほしかった。
って意味わからない。
class ClassA{ static int val; }
のvalみたいのをクラス変数っつーんだよね?
0169 NGNG
>>166
定義済みで既知のクラスでないと呼べないでしょ。
Javaはどこまで行っても固定プログラム。
手を変え品を変え、関数ポインタがあるように書かれてるけど、
同じ材料が形を変えているだけ。

焼きそばとたこ焼きとお好み焼きみたいな物。
0170デフォルトの名無しさんNGNG
そーいや 一昔前は、
アセンブラで作ったプログラム vs Cで作ったプログラム
の議論(水掛け論のような気も…)が結構あったと思いますが、
Javaごときと速度比べるとは、最近のCユーザってココロザシ低く
なってません?
0171デフォルトの名無しさん NGNG
クラス変数なんて用語はないのでは・・・。
>>168が書いているvalのことは単にオブジェクト間で静的な
データメンバ(静的データメンバ)なのでは?
0172デフォルトの名無しさん NGNG
>>170
Cのいいところを挙げるとなると普通出てくるだろ。
スレタイトル読めやボケ。
0173デフォルトの名無しさんNGNG
>>定義済みで既知のクラスでないと呼べないでしょ。
バイトコードをJavaプログラムに生成させて、
クラスローダに読ませる、Class取得、Method取得、invoke()
ってやれば?
出来るかどうか知らないけど。
0174デフォルトの名無しさんNGNG
>170
こんなアホスレ立てるお子ちゃまがいるから
解りやすく教育しているだけ。
0175デフォルトの名無しさんNGNG
>>174
君もここよんでよく勉強してね。
0176デフォルトの名無しさんNGNG
>>173
その発想が出る時点で答えになってない。
ポインタについて勉強しましょうね。
0177デフォルトの名無しさんNGNG
>>171
クラス変数って言うみたいですけど?
少なくとも Java では。

http://www.google.co.jp/search?q=%83N%83%89%83X%95%CF%90%94&hl=ja&lr=lang_ja
0178デフォルトの名無しさんNGNG
>>176
なんだ、
>>定義済みで既知のクラスでないと呼べないでしょ。
ってのは 実験して出来ないって言ってるわけじゃないのか。
0179デフォルトの名無しさんNGNG
>>171
> クラス変数なんて用語はないのでは・・・。

OOの基本的な用語のような気が…。
0180171NGNG
>>177>>179
そうか・・・。
すまんな、俺の間違いだったようだ。
0181デフォルトの名無しさんNGNG
なんか このスレみてると Javaのおかげで厨房少ないはずの
Cユーザのレベル低下が目立ってるような… なげかわしや…
0182CopyBorotNGNG
>>181
> なんか このスレみてると Javaのおかげで厨房少ないはずの
> Cユーザのレベル低下が目立ってるような… なげかわしや…
"Java厨がいるから"と安心しきったのが低下させているんでしょうな。
0183デフォルトの名無しさんNGNG
>181
具体的には?
0184デフォルトの名無しさんNGNG
>>181

どの発言から「レベル低下」だと思われました?
0185デフォルトの名無しさん NGNG
年始もハイだぜ、ベイベー!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      ,〜((((((((〜〜、
     ( _(((((((((_ )
     |/ ~^^\)/^^~ヽ|
      |  _ 《 _  |
      (|-(_//_)-(_//_)-|)
      |   厶、    |
      \ |||||||||||| /
      ⊂ \_______⊂ ⌒`つ≡≡≡(´⌒;;;≡≡≡
              ̄ (´⌒(´⌒;;
0186えなりくんNGNG
鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱成‥‥‥‥
鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱戸‥‥‥
鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱江‥‥
鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬼鬱鬱鬱鬱鬱鬱鬱鬱鬱子‥
鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬼成成戸成豆鬼豆成戸戸成成成豆鬼鬱鬱鬱鬱豆‥
鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱豆戸江江江江戸戸戸戸江江江江江江戸成豆鬱鬱鬱鬱江
鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱豆戸江江江江江江江江江江子江江江江江戸成豆鬱鬱鬱鬱
鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱豆戸戸江江子江江江子子子子子子子子江江戸戸成鬱鬱鬱鬱
鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱戸江江江子子子子子子子子子子子子子江江戸戸成豆鬱鬱鬱
鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬼戸江江江江子子子子子子子子子子子子江江江戸成豆鬱鬱鬱
鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱成江江江江江江江子子子子子子子子子子子江江戸成豆豆鬱鬱
鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱戸江江江子江江江子子子子子子子子子子子江戸鬼鬱鬼鬼鬼鬱
鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱戸江子江江江江江戸鬼鬼豆成戸江子子子江戸豆鬱鬱鬱鬱鬼鬱
鬱鬱鬱鬱鬱鬱鬱鬱鬱豆戸江江江江戸成鬼鬱鬱鬼豆成成戸江江江江戸戸成豆豆鬼鬱鬱
鬱鬱鬱鬱鬱鬱鬱鬱豆戸江江江江豆鬼豆成戸江江江江江戸戸戸戸戸戸江江子江戸成鬱
鬱鬱鬱鬱鬱鬱鬱成江江子子子戸成江子子子子子子江江戸戸戸戸戸江江江子江戸戸鬱
鬱鬱鬱鬱鬱鬱豆江江江子子子江江子子子子子子江戸戸江江江江江江戸戸鬼鬼成成鬼
鬱鬱鬱鬱鬱鬱豆江江江子子子子子子子江江成鬱鬱成戸江子子江江江戸子鬱鬱鬱成豆
鬱鬱鬱鬱鬱鬱豆江江江子子子子江江成鬼戸戸鬱鬱豆戸子子子江戸江戸戸成成成成成
鬱鬱鬱鬱鬱鬱鬼戸江子子子子子子江子子子江江戸戸江子子子子戸江江江戸戸江江戸
鬱鬱鬱鬱鬱鬱鬱戸江子子子子子子子…子子江江江子子子子子子江戸江子江江江子江
豆豆鬼鬱鬱鬱鬱戸江江江子子子子子子子子子子子子子子子子子子戸戸江子子子子戸
江戸豆鬱鬱鬱鬱成江江江江子子子子子子子子子子子子子子子子子戸戸江子子子子戸
戸戸成成豆鬱鬱豆戸江江子子子子子子子子子子子子子戸江子子…子戸戸子子子子江
江子成江江鬱鬱豆戸江江子子子子子……子子子子子江子子……子子戸戸江子子子江
子子江江江豆鬼戸戸江江子子子子子子…子子子子江戸子子江江戸成豆成戸江江子戸
戸江戸豆戸戸戸江江江子子子子子子子子子子江江江戸戸成江戸豆鬼豆戸戸戸江江戸
戸江子戸戸江江江江江子子子子子子子子子江江江子子子子江江江戸戸戸戸戸江江戸
江戸江江子戸江江江江江子子子子子子子子江江江子子子子子子江江戸戸戸戸江戸江
子戸江子戸鬼江江江江江子子子子子子子子江江江江子子子江江戸成豆豆成戸江成子
江戸鬱鬱鬱鬼戸戸戸戸江江江子子子子子子江戸成成戸戸戸戸成成豆鬱鬱成江戸成‥
戸江豆鬱鬱成成戸戸戸江江江子子子子子子子江鬼鬱成戸子子江江豆鬼豆江江戸戸‥
戸江江鬱鬱成豆成戸戸戸江江江江子子子子子江戸戸戸戸戸戸戸成豆成戸江戸成子‥
戸江江鬱鬱鬼成成成成戸戸江江江江江子子江江子子江江江戸戸戸成豆戸戸成戸‥‥
江江江戸成鬱成成豆豆成成戸戸江江江江江江江子子子江江戸成成成戸戸戸成子…‥
戸江江江鬼鬱戸成豆鬼豆豆成成戸戸江江江江江子子子子子江江江江江戸成江子……
江江豆豆鬱鬱成成成豆鬼鬼鬼鬼成戸戸江江子子子子子子子子子子子江戸成子子子…
江鬼鬱成鬼鬱成成成成豆鬼鬼鬼鬼鬼豆成戸江江江子子子子子子江江戸成鬼鬼戸子…
鬱鬱鬼豆鬼鬱豆成成成成豆豆鬼鬼鬼鬼鬼鬼成戸江江江江江戸戸成成豆鬱鬼鬱鬱戸…
鬱鬱鬼鬼豆鬼鬼成成戸成成成豆豆鬼鬼鬼鬱鬱鬼豆豆成成豆豆豆鬼鬱鬱鬱鬱鬼鬱鬱戸
鬱鬱鬱鬱成鬱鬱鬼成成戸戸戸戸戸戸成豆鬼鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱
鬱鬱鬱鬱豆鬱鬼鬱成戸戸戸江江戸江戸戸成豆鬼鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬱鬼鬱鬱
0187 NGNG
アンチC房が荒らしてるな。
0188デフォルトの名無しさん NGNG
タイーホされて以来、婦警にC言語を教わってるぜ、ベイベー!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      ,〜((((((((〜〜、
     ( _(((((((((_ )
     |/ ~^^\)/^^~ヽ|
      |  _ 《 _  |
      (|-(_//_)-(_//_)-|)
      |   厶、    |
      \ |||||||||||| /
      ⊂ \_______⊂ ⌒`つ≡≡≡(´⌒;;;≡≡≡
              ̄ (´⌒(´⌒;;
0189デフォルトの名無しさんNGNG
ホントレベル低いな・・・
>2)プリプロセッサが無い
プリプロセッサがないとなんで困るんだよ・・・

>3)ポインタが無い。特に関数ポインタ
ホント学習してくれ。
オブジェクト変数に入ってるのは、メモリアドレス。
関数ポインタが、オーバーライドとかインターフェースとか
(実行時)ポリモーフィズム=レイトバインディング=動的バインディング=DMD
になったんだけど。
0190  NGNG
>>189
ロクに実務やった事無いか、低レベルの奴は問題に気付かないだけ。
死ねよ。
0191デフォルトの名無しさんNGNG
>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型の変数に
どのオブジェクトの参照も入れることができる。
0192デフォルトの名無しさん NGNG
他にJava使いもいるぜ!
婦警と、このスレみたいな言い合いしてるぜ、ベイベー!
俺からみてもレベル低いぜ、ベイベー!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      ,〜((((((((〜〜、
     ( _(((((((((_ )
     |/ ~^^\)/^^~ヽ|
      |  _ 《 _  |
      (|-(_//_)-(_//_)-|)
      |   厶、    |
      \ |||||||||||| /
      ⊂ \_______⊂ ⌒`つ≡≡≡(´⌒;;;≡≡≡
              ̄ (´⌒(´⌒;;
0193デフォルトの名無しさんNGNG
馬鹿が自分の不勉強さ加減をさらすスレですか。
馬鹿とか無知とかって、自分がそうであることに気がつかないからね。
元旦からアホさらして、かわいそうな人生だね。
0194デフォルトの名無しさんNGNG
ついでに教えておくと、
C++ではプリプロセッサは使わない。
というか、使わなくて済むように機能が追加された。
それをJAVAが真似したんだから、プリプロセッサなんて
あるわけ無いだろ。
OOだとプリプロセッサは不都合が起きる。
クラスで名前空間を区切っても、DEFINEで破壊されるなどと・・・

まあ、構文を無視した#IFは便利だと思うが
それはC++のコメントがアホだからだ。
emacs使ってれば問題はないが。
0195  NGNG
>>189
の信じる学習とはJavaのプロパガンダ本を鵜呑みにすることじゃない?
0196  NGNG
>>194
死ね!
0197デフォルトの名無しさんNGNG
>>195
いいかげん知らない事を突っ込むのやめなよ、あんた。
どうやるか知らないのはあんたが不勉強だからだよ。
0198デフォルトの名無しさんNGNG
この天然ぶりは圧巻だ。
0199デフォルトの名無しさんNGNG
>欲しい機能があれば自分で作る。
>これが言語仕様上ほとんど制限の無いC言語の
ボケですか?
JAVAも同じ。
0200  NGNG
はあ、Javaの宣伝間に受けて「勉強」したと思ってる真性馬鹿か・・・
最近減ったんで安心してたのに・・・。
0201  NGNG
それにしてもJavaにプリプロセッサが無い理由なんて始めて聞いた。
煽り用の捏造かな?
煽ってる奴はプログラムの素人臭いし。
0202デフォルトの名無しさんNGNG
>ファイルI/Oとかネットワーク周りの物理層をどうやって処理
C言語の場合、同じソースでも環境によってはコンパイルできない。
なぜなら、I/Oは言語仕様外だから。
言語仕様外の物は、ライブラリーとして提供するしかないわけで
互換性を保つにはヘッダファイルを共通にして、なるべく同じように動くような気がする
バイナリーを作ると。
C++も同じね。
JAVAはライブラリーとして提供するのではなく、VMとして提供するのが理想。
でもVMに組み込むのが面倒な場合は、JNIという最終手段を使う。
0203デフォルトの名無しさんNGNG
JAVAチップでさえもドライバの開発環境はCしかないね。
JAVA単体では割り込みの記述なんてできっこないからね。
0204 NGNG
あーん 真性Java房だよー。
Rubyにあげるから取りに来てくれ。
0205デフォルトの名無しさんNGNG
ドライバを書くときにヘッダを読み込むでしょ。
それのソースを見てくれればわかるけど、
実際の中身はシステムコールか、アセンブラなんだよね。
それってのは結局のところ、アセンブラ(機種依存)で書かれた、
ライブラリーを呼び出したりしてるだけであって、
C単体でやってるんじゃないよ。
で、JAVAでやりたければJNI使って、システムコールを呼び出すクラスを作って
開発するわけだけど。
現実問題として、OSに組み込むにはOSがJVMで動くドライバをサポートする
必要がある。
理由はわかるよね?
0206デフォルトの名無しさんNGNG
なんかまともな質問はないですか?
0207ひとりごちてみるNGNG
環境によってコンパイル出来ないってのはI/Oとはあんまり関係無いと思うが、
まぁ、動かないっていう意味で言ってるんだろうな。
言語仕様って、標準ライブラリも含んでるんだろうな、とすると入出力関数はあるぞ。
そもそもメモリマップドI/Oなら、ポインタがあればいいし。
でも、I/Oを切り離してライブラリにするってのは、ふつーそーだしな。
JavaはVMに入出力組み込むのが理想なのか??
VMの仕様はかなり厳密に定義されてるから、動作を変えちゃうのは理想なのかなぁ??
ま、JMVはまだ勉強中だから、よくわからないけど。
0208デフォルトの名無しさん NGNG
>>206C++のbool型はどうやって実装しているのですか?
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      ,〜((((((((〜〜、
     ( _(((((((((_ )
     |/ ~^^\)/^^~ヽ|
      |  _ 《 _  |
      (|-(_//_)-(_//_)-|)
      |   厶、    |
      \ |||||||||||| /
      ⊂ \_______⊂ ⌒`つ≡≡≡(´⌒;;;≡≡≡
              ̄ (´⌒(´⌒;;
0209ひとりごちているちゅうNGNG
Cだけで全部書かれたドライバだって、あるぞ。
でも、アセンブラで書くのがあたりまえな環境もあるだろうな。
ケイタイとか。
0210デフォルトの名無しさんNGNG
>まぁ、動かないっていう意味で言ってるんだろうな。
ゴメソ、そうだ。
入出力関数もそう。
たとえば、ソケットでブロックされてる時に
printfをすぐに表示する処理系と、そうじゃない処理系ってあるでしょ。
そんな感じの違い。
ある程度互換性があるような気がするのは、処理系ごとにアセンブラを書く
ライブラリー作成者の努力。
(一部アセンブラね。)
機種依存部分をライブラリにすると、コンパイラ作成時にメリットがある。
で、CとかJavaとかと逆の立場なのがPerlね。
VMはもうちょっと勉強してみてね。
VMって言うよりはバイトコードについて調べてみてください。
0211デフォルトの名無しさんNGNG
>>205
組み込みやってる俺から言わせて貰えば
はっきり言ってその発想から抜けた方がいい。
割り込みっつーのはアセでベクタ定義されたアドレスにJUMPしてんの。
つまりアセで関数名定義して実態はC等のマイクロコードを生成する言語で書かれてるんだよ。
OSなんてまったく関係無い。
0212Javaの良いところNGNG
1.Webシステムが簡単に作れる。
2.ミーハーな客が、簡単なシステムにカネを沢山出す。

仕事でやる分には、これだけ利点があれば充分だと思うが。
とくに2が重要。
0213205NGNG
>>211
それは俺に言ってるの?

>つまりアセで関数名定義して実態はC等のマイクロコードを生成する言語で書かれてるんだよ。
そういう意味で書いたんだけど。

>OSなんてまったく関係無い。
システムコールはどうなるよ・・・
0214デフォルトの名無しさんNGNG
>2.ミーハーな客が、簡単なシステムにカネを沢山出す。
これかなり重要だね

知人は23で400万オーバーしてるのに
俺は 200万いかないし・・・・・

俺がゲームPGだからっていうこともあるけど・・・
0215JavaのC++に比べて良いところNGNG
1コードがかなーり読みやすい。
2deleteを意識しなくていい。
3ライブラリとリファレンスが良い。
4JavaDocも便利で見やすいのができる。
5コンパイル時間が短い。
6名前空間が容易に分割できる。
7配列の仕様はかなりいい。
0216デフォルトの名無しさんNGNG
>>211
> つまりアセで関数名定義して実態はC等のマイクロコードを生成する言語で書かれてるんだよ。

折れ組み込みのことよくわからないし、プロが言うから間違いないんだろうけど、
それって「マイクロコード」っていうの?
0217デフォルトの名無しさん NGNG
>>215
Javaってコンパイラ言語だっけ?
0218デフォルトの名無しさんNGNG
俺が今でも疑問なのは、
始めてやった言語がJavaで
Javaをマスターするのにどれくらい時間がかかるのか、
という事。
参照とOOの壁ってでかくない?
間違ってもC言語やる前にJAVAをやらない事を
俺はすすめる。
0219デフォルトの名無しさんNGNG
コンパイラ言語ってなんですか?
0220デフォルトの名無しさんNGNG
>>217
JavacはJVMへのコンパイラ。
JVMはインタプリタ。
0221デフォルトの名無しさんNGNG
Javaソース から バイトコード 生成する作業は
コンパイルと言われていますが、何か?
0222JavaのC++に比べて良いところ NGNG
1コードがかなーり読みやすい。
2deleteを意識しなくていい。
3ライブラリとリファレンスが良い。
4JavaDocも便利で見やすいのができる。
5コンパイル時間が短い。
6名前空間が容易に分割できる。
7配列の仕様はかなりいい。
8コンパイルエラーがわかりやす過ぎる。
9実行時のエラー(例外)もわかりやす過ぎる。
0223 NGNG
>>214
ゲームPGだって1000万行くのいるよ。
会社が悪いのか腕がないのか・・。
0224デフォルトの名無しさんNGNG
× JavacはJVMへのコンパイラ。
○ Javacはバイトコードへのコンパイラ。
0225デフォルトの名無しさん NGNG
>>215
C++のコードは読みにくいと?

>配列の仕様はかなりいい。
どのようにいいの?知らないから教えてほしい。
0226 NGNG
>>222は煽ってるの?
0227デフォルトの名無しさん NGNG
>>220
JavacはJVMへのコンパイラ(プッ
0228デフォルトの名無しさんNGNG

>>224
そだね。
0229デフォルトの名無しさんNGNG
>ゲームPGだって1000万行くのいるよ。
20代前半で1000万行く人いるんですね。
私もそのぐらいになりたいです。
そこまでの腕になるためには数年はかかると思いますけど・・・
0230  NGNG
ああ、二十台前半という条件つきかあ・・・。
0231デフォルトの名無しさん NGNG
誰か答えてよ・・・。
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄
      ,〜((((((((〜〜、
     ( _(((((((((_ )
     |/ ~^^\)/^^~ヽ|
      |  _ 《 _  |
      (|-(_//_)-(_//_)-|)
      |   厶、    |
      \ |||||||||||| /
      ⊂ \_______⊂ ⌒`つ≡≡≡(´⌒;;;≡≡≡
              ̄ (´⌒(´⌒;;
0232JavaのC++に比べて悪いところ NGNG
1new,deleteで精神的に疲れる。
2意味ない部分でのパフォーマンスが気になる。
3潔くvirtualをつけることができない事がある。(継承のコストが気になる)
4コンパイル時間が長すぎてキレる事がある。
5::の前が長い。
6ヘッダを書くのが面倒。
7doxygenは日本語が入ると読みずらい。(誰かクッキーを)
8stlのコード汚い。
9#includeの数は減らない?
10#typedefは気分的に嫌。
11ポインタか参照どっちかにして。
12どーせ、クラスはポインタでしか扱わないって・・・
0233デフォルトの名無しさんNGNG
>>232
それは 「JavaのC++に比べて悪いところ」ではないような…
0234デフォルトの名無しさんNGNG
>>232
名前の欄、逆じゃないの?
0235デフォルトの名無しさんNGNG
>C++のコードは読みにくいと?
::が痛いし、ヘッダが痛い。
要するに冗長な部分が多かったり、一箇所に情報がまとめられなかったりと
プログラミング言語C++(赤いやつ)には、コンパイラ作成者の怠慢って書いてなかった?

>どのようにいいの?知らないから教えてほしい。
最初から、配列の長さを記録していて
アクセスする時も、配列の長さを超えていないか確認するので
C++で経験する恐怖のデバッグはない。
その分パフォーマンスは犠牲になるけどね。
でも、ほとんどのプログラムでそのロスは気にならない。
なぜなら、C++のメソッド呼び出しのオーバーヘッドより
ロスが少ないから。
0236デフォルトの名無しさんNGNG
VCで挫折してSwingでやっと表示できた厨房が
クラス作って「オブジェクト指向を理解した」と喚いてる光景が
目に浮かびますが何か?
0237デフォルトの名無しさん NGNG
>>232
陰険な奴だな
0238デフォルトの名無しさんNGNG
>>233,234
せーかい!!
0239デフォルトの名無しさんNGNG
>>205
>システムコールはどうなるよ・・・
OSが用意するハンドリング可能なAPI。
OSによって異なるが抽象化されたI/Oを操作するときに用いる。
デバイスドライバはその下層に位置する。
しかしシステムコール、ドライバの概念が無い、カーネルだけの
OSもある。(ITRON)
携帯のJAVAなんてRTOSのタスクの1つで動いているだけ。
周辺デバイスへのレジスタへのI/Oはベクタ以外は全部C。

>>216
そう。
0240デフォルトの名無しさん NGNG
 ,〜((((((((〜〜、
    ( _(((((((((_ )
    |/ ~^^\)/^^~ヽ|
     |  _ 《 _  |
     (|-(_//_)-(_//_)-|)
     |   厶、    |
     \ |||||||||||| /  < >>232あんた詳しそう!答えてくれよ!>>208の質問に!
       \_______/
     /⌒    ヽ
    / /    ノヽ    _ー ̄_ ̄)',  ・ ∴.'  , .. ∧_∧ ∴.'.'  , .
    ( /ヽ   | ) --_- ― = ̄  ̄`:, .∴ '      ((( #)゚Д゚) .∴ '
    \ /  _, -'' ̄  = __――=', ・,' .r⌒>  _/ / ・,' , ・,‘
      (   _~"" --  _-―  ̄=_  )":" .' | y'⌒   ⌒i .' .   ’
      |   /,,, _―  ̄_=_  ` )),∴. ).  |  /  ノ | ∴.'∴.'
      |  / /   ―= _ ) ̄=_)   _), ー'  /´ヾ_ノ
      (  ) )      _ _ )=  _) ,./ ,  ノ  '
      | | /          = _)  / / /   , ・,‘
      | | |.               / / ,'  , ・,‘
     / |\ \            /  /|  |
     ∠/   ̄            !、_/ /   )
                           |_/
0241デフォルトの名無しさんNGNG
Cの言語仕様をちょろっと改良した、BetterCが欲しい。
C99がそれか?
0242 NGNG
>>240ウザイ!
ワードの1ビット使ってるに決まってるだろうがボケ!
0243JavaのC++に比べて悪いところ NGNG
ゴメソ>>皆様
お詫びに。
1バイナリーがはけない。
2よって、遅い。
3たまには、メモリーをきっちり使いたい。
4メモリがきっちり使えなくても、newのオーバーロードもしたかった。
5演算子のオーバーロードは是非できるようにしてくれ。
6でも、演算子のオーバーロードサポートしても実はJAVAだと言語仕様が汚くなりそうだ。
7stlは必要ない。アグリゲーションを貫いて欲しかった。
8インターフェースと継承で名前が衝突した時はかなーーーりいただけない。
9unicodeでの処理は、パフォーマンスがちょっと気になる。
10unsignedは欲しいかも。(これは何ともいえない)
0244デフォルトの名無しさん NGNG
 ,〜((((((((〜〜、
    ( _(((((((((_ )
    |/ ~^^\)/^^~ヽ|
     |  _ 《 _  |
     (|-(_//_)-(_//_)-|)
     |   厶、    |
     \ |||||||||||| /  < >>242ひどい・・・初心者なのに・・・。
       \_______/
     /⌒    ヽ
    / /    ノヽ    _ー ̄_ ̄)',  ・ ∴.'  , .. ∧_∧ ∴.'.'  , .
    ( /ヽ   | ) --_- ― = ̄  ̄`:, .∴ '      ((( #)゚Д゚) .∴ '
    \ /  _, -'' ̄  = __――=', ・,' .r⌒>  _/ / ・,' , ・,‘
      (   _~"" --  _-―  ̄=_  )":" .' | y'⌒   ⌒i .' .   ’
      |   /,,, _―  ̄_=_  ` )),∴. ).  |  /  ノ | ∴.'∴.'
      |  / /   ―= _ ) ̄=_)   _), ー'  /´ヾ_ノ
      (  ) )      _ _ )=  _) ,./ ,  ノ  '
      | | /          = _)  / / /   , ・,‘
      | | |.               / / ,'  , ・,‘
     / |\ \            /  /|  |
     ∠/   ̄            !、_/ /   )
                           |_/
0245デフォルトの名無しさんNGNG
馬鹿に付ける薬はない。
0246デフォルトの名無しさんNGNG
>周辺デバイスへのレジスタへのI/Oはベクタ以外は全部C。
実際にレジスタへのI/Oはasmで記述してるんでしょ?
0247デフォルトの名無しさんNGNG
>>243
個人的には
・enum が欲しい。
 enumへの コンパイル時の代入チェックが欲しいのね。
・InputStream と OutputStream を
interface に代えてくれれば…

遅いのは、ある程度までなら腕でカバーできる
のと、delete に苦しまされるのと引き換えと
思えば我慢できるけど。
0248デフォルトの名無しさんNGNG
俺、この前Cでドライバ書いたよ。
0249デフォルトの名無しさんNGNG
>>247
漏れもenumはなんでJavaにないんだろう?
って思うYO
0250デフォルトの名無しさんNGNG
昔はネタだったが 今は現実問題。ホントにこんな奴がいるとはねえ。
http://www.javaopen.org/jfriends/cforjava/
0251デフォルトの名無しさんNGNG
リアルモードとかプロテクトモードってゆう古いアーキテクチャ
の残骸を引きずっているCPU(たぶんあんたがパソコンで使ってる奴)
ではアセじゃないと書けないかもね。
でも今日びのメモリマップドCPUではリニアアドレスでアクセスできるから
ポインタ使って

unsiguned char *reg;
reg = 0x80000;
*reg = 0xff;
でアクセスできる。
こういうときunsigunedじゃないとイタイわけよ。
0252 NGNG
>unsiguned
unsignedでは?
0253デフォルトの名無しさんNGNG
C早い。
1万回の"Hello C\n"表示をわずか4秒。。
C++は5秒
0254デフォルトの名無しさんNGNG
>>252
そう。眠いんでもう寝る。
0255デフォルトの名無しさん NGNG
>>253
Javaは?
0256デフォルトの名無しさんNGNG
>253
プログラムはともかくコンソールに
1万行/秒の表示能力があるとは思えないんだけど?
0257デフォルトの名無しさんNGNG
1万行/秒の表示能力があるとは思えないんだけど?
↓
2500行/秒の表示能力があるとは思えないんだけど?
0258デフォルトの名無しさん NGNG
>>256
単にプログラムの実行速度を計測したものと思われ。
0259デフォルトの名無しさんNGNG
>>253
それはつまり printf vs cout でそーゆー結果が出たって事ですか?
0260 NGNG
>>257
それぐらいあるよ。
0261デフォルトの名無しさんNGNG
ねーよヴァカ!
0262 NGNG
>>259
puts vs coutじゃない?
0263デフォルトの名無しさんNGNG
やれやれ、また妄想クンか
君は脳内コンソールでも使ってなさい p
0264 NGNG
>>261
今作って実行して見たんだよボケ!

  for(i=0;i<10000;i++){
    System.out.println("Hello C "+i);
  }
ちゃんと1万回5−7秒くらい。(何故かTimeが取れない)
さっきの人と環境が違うから比較にはならないが。
0265 NGNG
つうか、これじゃブロック転送のベンチマーク取ってるようなもんで
比較としてはJavaに甘い例だな。
0266デフォルトの名無しさんNGNG
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
ですがなにか?
0267 NGNG
#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秒だった。*/
0268デフォルトの名無しさんNGNG
じゃあrubyが最速ってことですね(藁
0269 NGNG
>>268
表示されてないから駄目。
0270266NGNG
>>269
きっちり一万行表示されたって
0271 NGNG
#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秒もかかってしまった
0272 NGNG
>>270
じゃあunixが優秀ということで。
0273 NGNG
マシンの処理能力によっても変わってくると思われ。
0274 NGNG
そだね。
0275デフォルトの名無しさんNGNG
Rubyは駄目だよ、PERL,phpより遅い
ベンチ取らなくても分かるからとってないけどね
0276266NGNG
>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最速(藁
0277 NGNG
>>276
俺のはP2-350だぞゴルア
0278 NGNG
>>271でcoutじゃなくてputsやprintfでやってみると
やっぱり4秒だったよ。
と、いうことは<<は遅いということか・・・。
0279267NGNG
>>276
俺の環境
VC++6.0
Celeron500Mhz

マシンの性能差はかなりあるぞ
0280 NGNG
処理時間の99%がブロック転送で、ネイティブの処理時間比較
してるようなもの。意味無い。
言語比較なら演算で比較するのが良い。
0281結論NGNG
ruby>>>>>>>>>>>>>>>>>>C>Java>>>>>>>>C++
0282 NGNG
>>281
もう結論なの?ruby擁護?
0283デフォルトの名無しさんNGNG
割り算掛け算やってみー。
アセに落とすと一番ステップ数多くなるから。
0284 NGNG
Ruby房の正体が本当にRuby使いだったと判ったのは収穫であった。
0285じゃこれは?NGNG
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;
 }
}
0286 NGNG
>>281
もうちょっとよく読め。
C++が遅いんでなくてcout<<が遅いと書いてあるだろ。
0287デフォルトの名無しさんNGNG
>>286
っつーと rubyが最も速いっつー結論に異論は無い、と。
0288今のところ・・・NGNG
ruby>>>>>>>>>>>>>C/C++>>>>>>>>>>>>>Java
0289デフォルトの名無しさんNGNG
>>285
そんなんでいいよ。
結果だけ表示すれば。
0290速度結論NGNG
C > C++ > Java > Perl > Ruby
まあこれでいっか・・・
0291デフォルトの名無しさんNGNG
>>290
(・∀・)イイ!
0292デフォルトの名無しさんNGNG
C > C++ > Java > Perl > Python > Ruby
0293デフォルトの名無しさんNGNG
C > C++ > Java > Perl > Python > php > HSP > Ruby
0294デフォルトの名無しさんNGNG
C,C++ > Java > Perl > Python > BASIC >Ruby
0295デフォルトの名無しさんNGNG
士農工商エタ非人Ruby
0296デフォルトの名無しさんNGNG
C/C++ > Delphi > Java > Perl > Python > php
> HSP > BASIC > ひまわり > Ruby
0297デフォルトの名無しさんNGNG
>>296
正解。
よって、終了。
300踏んだ人、削除依頼出してきて。
0298デフォルトの名無しさんNGNG
VBがないんですが...
0299266@るby房NGNG
なんか厨房呼び寄せちまったな

DOS窓の表示速度調べたかっただけなのに...
0300デフォルトの名無しさんNGNG
C/C++ > Delphi > Java > Perl > Python > php
> HSP > BASIC > ひまわり > Ruby > VB
これでいい?>298
0301デフォルトの名無しさんNGNG
VBはBASIC以下かよ!!
0302シャアNGNG
まさか300まで逝くとな。
0303デフォルトの名無しさんNGNG
>>299=厨房
つーか同じ環境でやらないと意味無いだろ
0304デフォルトの名無しさんNGNG
>299
↑こう言う奴が居るから気持ち悪くて使いたく無い (^-^
0305デフォルトの名無しさんNGNG
同一環境で
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
であることが証明されました
0306デフォルトの名無しさんNGNG
放置開始
0307 NGNG
>>305
何でオマエが同一環境持ってんだよ。
オマエ単なる厨房だろ(藁
0308デフォルトの名無しさんNGNG
Cygwinの使い方も知らんのか
Rubyにはお似合いだな 
0309デフォルトの名無しさんNGNG
C房必死ですね
0310デフォルトの名無しさんNGNG
Ruby馬鹿が侵食しているのでこれにて終了
0311デフォルトの名無しさんNGNG
>>306
いや、じっくりおちょくって遊ぼう
まさか a.exe とは
いやー流石ルビーストだね   嘲笑
0312デフォルトの名無しさんNGNG
>>309
私はどちらかに荷担するつもりはないが、
必死なのはRuby房の方では。
0313学者NGNG
今さっきの実験で
うんこ == ruby
が整数 1を返すことがわかったぞい!
0314デフォルトの名無しさんNGNG
うちの環境では(うんこp 'ruby) =>tが返ってきた。
0315デフォルトの名無しさんNGNG
>>313
ワラタ
0316デフォルトの名無しさんNGNG
rubyってcygwinでコンパイルできるの?
0317デフォルトの名無しさんNGNG
言語別所有マシン比較結果
Ruby Athlon1.1G
C/C++/Java Celeron500, P2-350

よってここでもRubyの優位性が見て取れます
0318デフォルトの名無しさんNGNG
>>317
もしかしてさ、自分で面白いと思ってるの・・?
0319デフォルトの名無しさんNGNG
>>316
出来ますが、実行するとうんこを吐いて死んでしまいます。
0320デフォルトの名無しさんNGNG
>317
マシン分けてるんだ
俺もRuby入れると環境が汚れるから、捨てシステムに入れろって注意されたよ
0321デフォルトの名無しさんNGNG
もう寝なさい。
0322デフォルトの名無しさんNGNG
>>317
・・・馬鹿の世界チャンピオンだ・・・。
0323デフォルトの名無しさんNGNG
もしかして、Ruby信者は厨房率高い?
0324デフォルトの名無しさんNGNG
>>320
君って(・∀・)イイ!
そうか〜よごれるのか〜。
0325デフォルトの名無しさんNGNG
Ruby 名前からしてヤヴァすぎ
ふつー恥かしくて付けれません
0326デフォルトの名無しさんNGNG
>>319
ワラタ
0327デフォルトの名無しさんNGNG
>325
「あ〜あ〜、やっちゃったよこのYellow」
と思ったNativeが十万人程確認されていますね
0328デフォルトの名無しさんNGNG
いつの間にかRuby房を煽るスレになってる・・・。
Ruby房の顔が想像できて笑えるからいいけど。
0329デフォルトの名無しさんNGNG
>>328
 (  ::::::::::::::::::::::::^:::::::::: :::::: :(
     丿::::::::::::::::::::::::::::::::::::::::::::::::::::: :::: (
     /::::::::::/ノ::::::::ノ::::::::ヽ:人::::::::::ヽ::::::::::)
     (::::::::::/  ):::ノ::::ノ ) ソ ヾ::::::::::::丶ヽ
    (:::::::::/ 彡  ノ   ノ  :: 彡:/)) :::::::)
   (::::::::::/彡彡彡彡彡   ミミミミミミミ ::::::::)
   ( :::::::// ̄ ̄ ̄ ̄ヽ===/ ̄ ̄ ̄ ̄ヽ |::::::)
    | =ロ   -=・=-  ‖ ‖ -=・=-   ロ = |
    |:/ ‖    / /ノ  ヽ \     ‖ ヽ|ヽ
    /|/  ヽ`======/  ⌒ ` ========ノ   | |
   (||         .(● ●)          |ノ
    |         : :: :::l l: ::: :::          |Rubyこそ一番一番一番!
    |      _:: :二 M二__::::::.. .        |
    |     : ::: : ::: ::  ===  ::: :: :: ::::     )
    \ :::   :::::::::::  ::::::::::  ::::::::::::::   /|
    /|ヽ  ヽ:::: _- ::::: ⌒:: :::::::: -_   ノ
   / || 丶\_::_:::::_:::: :::::_/:::: /
      | | \ \ ::::::::::: :::::::::: ::: :: _/
   / ̄\ 丶  ̄ ̄ ̄ ̄ ̄ ̄ ̄
これだろ?w
0330デフォルトの名無しさんNGNG
Rubyを叩くヤツは在日
0331デフォルトの名無しさんNGNG
CとJavaのスレでなぜRubyが
0332在日 NGNG
おいおいRuby信者に言われたくネーヨ (臭
0333デフォルトの名無しさんNGNG
Ruby?Osama Binてやつ?
ネイティブコンパイラが無い言語なんてクソだよ。
ソース行末にセミコロン書く習慣のない言語なんてクソクソだよ。
0334デフォルトの名無しさんNGNG
>ネイティブコンパイラが無い言語なんてクソだよ。
馬鹿発見

Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Java >>>>>>>>>>>>>> C
0335デフォルトの名無しさんNGNG
Cを知らなくてもRubyはできる。
Rubyを知ればCはやらなくていい!!!
0336デフォルトの名無しさんNGNG
>>334
理論的な話が不可能なドキュソ・ルビャー発見。
バカは自分がバカだと気づかない。
0337指輪物語NGNG
テーブルの上に2つの鉄槌が有る。。。。
執事「我神よ、民供は増えすぎた言語に困惑しております
  残念ですがこの2つの鉄槌を振るわねばなりません
  Perl,Ruby,phpのうちからお選び下さい」
神様「うむ、」
執事「ささ」
神様「では、一つ目の鉄槌をRubyに、そして二つ目の鉄槌をRuby厨に
  落すぞ、あ、後余ったのも全部Rubyでいいや うんうん」
執事「マンセーー!!!」
0338デフォルトの名無しさんNGNG
ルビャーとマカーって、共通するモノがあるよね。
論理的な話し以前に、感情的な話しかできない。
自分が信奉するモノを叩かれると、エモーショナルにキレる。
もうね、アフォかと。ヴァカかと。
0339デフォルトの名無しさんNGNG
>>336 じゃあ、理論的に>333を説明してみな。
あまり期待せずに待ってるよ(わら
0340デフォルトの名無しさんNGNG
Ruby以外の言語は糞。これは疑問の余地なし。
0341CopyBorotNGNG
>>338
> ルビャーとマカーって、共通するモノがあるよね。
> 論理的な話し以前に、感情的な話しかできない。
> 自分が信奉するモノを叩かれると、エモーショナルにキレる。
> もうね、アフォかと。ヴァカかと。
オマエモナー
0342デフォルトの名無しさんNGNG
RubyでOSつくれるんですか?
0343 NGNG
>>339
ルビ房の自作自演。
0344デフォルトの名無しさんNGNG
Rubyが悪いのではない。
Ruby厨が痛いだけ。
Rubyという言語そのものは
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>> Java >>>>>>>>>>>>>>> C
0345デフォルトの名無しさんNGNG
>>344 激しく同意
Cは新だ。
0346デフォルトの名無しさんNGNG
>>344-345
マジで総意
Ruby>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>他の糞言語>>>>>>>>Ruby厨
0347デフォルトの名無しさんNGNG
RubyはCに完全勝利した!
0348デフォルトの名無しさんNGNG
Rubyは俺の良心なんだ!
0349デフォルトの名無しさんNGNG
Rubyやってみたいんですけど、
ネイティブコードにコンパイルってのはできるんでしょうか?
(そういう言語仕様ではないのかな?)
あくまでOOなスクリプト?
0350126NGNG
>>202よ、>>126をしっかり読め
「JavaチップのVM」でファイルI/Oとかネットワーク周りの物理層を
どう処理しているかって聞いたんだよ。
それに対する >>128, >>131, >>132 (レスありがと)で納得したんだが、

>VMとして提供するのが理想
>JNIという最終手段
では話になってないんだよ。

結論としては、VM内やJNIの先で FPGA にメモリマップされたI/Oを叩いたり、
サブCPUや非Javaバイトコードモードに遷移して、
Cやasmで書いたドライバを実行して物理I/Oを行うってことですな。
0351デフォルトの名無しさんNGNG
>>349
>>305の結果読め。rubyはコンパイルするまでもなくCより高速
0352デフォルトの名無しさんNGNG
>>351
それってさ、単にforループを判定しただけだろ?意味無いよ。
実用的なアプリケーションでのベンチマークはどうよ?
「できる・できない」は別として、OOなスクリプトなんだから、Cと比較してること自体イタイ。
サーバサイドで、Javaと比較した客観的データくれ。
0353デフォルトの名無しさんNGNG
> JavaのC++に比べて良いところ
> 2.delete を意識しなくていい。

あんた、真のプログラミングでJava使ったこと無いだろ。
GCに悩まされているサーバサイドの皆さん、説教してやってください。
0354デフォルトの名無しさんNGNG
るby再起オー!
c言語なkん化かこの異物!
じゃヴぁなんか遅きゅ轍海野のにmな棚井悪阻。真のおおプロ蔵mなが類byを使う戊だ!
るbyさいこーまt″案sレー
0355デフォルトの名無しさんNGNG
>>305 の結果って、単に標準出力の処理速度を計ってるだけじゃん。
それも、推測だけど、gcc では出力をバッファリングしていないが、
Rubyはバッファリングしているために、見かけ上速くなってるだけでは?
ファイルにリダイレクトした場合の速度計測希望〜
0356デフォルトの名無しさんNGNG
266と267はやってることが違うのでは?
Rubyしらんけど
0357デフォルトの名無しさんNGNG
JavaのGC -> 原因不明鯖落し用の爆弾
RubyのGC -> え、Ruby何それ?
0358デフォルトの名無しさんNGNG
For Loopが速いだけでRudyが速いといえるわけがない。
Rudyが速いと主張するなら、まともなベンチマークを取って
ほかの言語とも比べたものを示せ>ルビャー
0359デフォルトの名無しさんNGNG
Rubyが他の言語より遅いはずがない。
0360デフォルトの名無しさんNGNG
何度やっても同じ。Ruby >>> C
知恵遅れのジジイはCでもやってろ
0361デフォルトの名無しさんNGNG
C/C++ >>>>>>>>>>>> | 壁 | >>>>>>>> Ruby
0362デフォルトの名無しさんNGNG
>>360 ....
0363デフォルトの名無しさんNGNG
Rubyの速さを体感したければ
まずはRubyをインストールしてみることです。
0364デフォルトの名無しさんNGNG
>> 363 CERT勧告に「毎月13日に頭がクラッシュします」って書かれてたけど大丈夫?
0365P2-350NGNG
 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
0366デフォルトの名無しさんNGNG
>364
ここに居るのは被害者かいな (w
0367デフォルトの名無しさんNGNG
結局ルビャーって、マカーと同じだな。
ごくごく1部の機能が優れている?(とは思えないけど)からって、そこにばっかり粘着してて。
枝葉を見て幹を見ず。木を見て森を見ず。
結局は、目的の解決に最適な言語を使えばいいだけなのに。
なんでもかんでもRubyでやろうっていうんだろうな。
0368デフォルトの名無しさんNGNG
Rubyistと呼んでください。
0369デフォルトの名無しさんNGNG
↑ CrushHEADIST >>366
0370デフォルトの名無しさんNGNG
>>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

っつーとこですか。
コンパイラは古いのしか持ってないので
新しい奴持ってる人は自分で測定してください
0371370NGNG
Borlandのが異常に遅いけど、
コンパイラのオプション間違ってるのかな…
それとも __int64 使っちゃいけないとか?
教えて>偉い人
0372デフォルトの名無しさんNGNG
JAVAってオーバーヘッド発生しないって聞いたの
ですが本当ですか?

なんかすごい嘘くさいのですが・・・
0373デフォルトの名無しさんNGNG
>>372
何のオーバーヘッドっすか?
0374デフォルトの名無しさんNGNG
素直にlong使えよ
0375デフォルトの名無しさんNGNG
>>374
longだと 32ビット値になるような気が…
0376デフォルトの名無しさんNGNG
それはコンパイラの最適化オプションを付けての結果かい?
それと変数はcharとかbyteでもやってみー
0377デフォルトの名無しさんNGNG
>>376
>>それはコンパイラの最適化オプションを付けての結果かい?
そのつもり。
>>それと変数はcharとかbyteでもやってみー
やりたいのでしたら、ご自分でどうぞ。
0378デフォルトの名無しさんNGNG
>>373
関数を呼んだときのオーバーヘッドです。
0379デフォルトの名無しさんNGNG
CとJavaを比べんなよ・・・・・・・
両方覚えろ
0380デフォルトの名無しさんNGNG
>>379
それは誰に言ってらっしゃるんで?
0381デフォルトの名無しさんNGNG
>>378
ていうかJavaでは関数とはいわずにメソッドといいます(w
0382デフォルトの名無しさんNGNG
>>353
Javaのメモリリークについて言いたいのかな?
もちろんコーディングをミスればリークするけどさ。
VMが必要か必要じゃないかを判断できれば、メモリリークはなくなるけど
冷静に考えればそんな事が無理なのは明らかでしょ。
俺が言ってるのは、明示的にdeleteを書かなきゃならないコストは
どれくらいのものかって事。
C++を使ってる時、オブジェクトを生成するようなメソッドはあまり書きたくない。
effectiveC++にも似たような事が載ってたと思うので読んでください。

enumはいまいち便利な使い方が思いつかないんだけど、
便利な使い方があったら教えてください。

>>350
あんたインタープリターの意味がわかってないよ。
PERLとかRUBYのI/OとJAVAのI/Oは同じ類だってわかってます?

RUBYはまだ使い込んでいないので、特徴があまり把握できてないんで
何ともいえないですね。
作者が書いてる本は持ってるんですけど、あれには大規模開発には向かないって
書いてありますが、なんででしょうか?
RUBYにはコンパイラは無くても、コンパイル時に行うような
文法やら型のチェックってありますよね?
わかる人いたら教えてください。
0383デフォルトの名無しさんNGNG
>>16
リフレクションを使え.動的メソッド呼び出しやコールバック
関数なんかもJavaで作れる.
0384デフォルトの名無しさんNGNG
>>30
そういう場合は大きさ1の配列作ってやれば良いYO!
0385デフォルトの名無しさんNGNG
またデマ情報が・・・
JAVAのメソッド呼び出しは、全て動的ですが。
コールバック関数・・・何がしたいのかよくわからん。
で、リフレクションなんてのはおそらく
普通の人には使う機会はない。
0386デフォルトの名無しさんNGNG
>>385
AbstractFactoryパターンやCommandパターン使うときには
必須だろ?リフレクションを使わないってのはJavaでただ
プログラム書いてるってダケのこと(w
0387デフォルトの名無しさんNGNG
>AbstractFactoryパターンやCommandパターン使うときには
なんの事をリフレクションって言ってるのかね・・・
リフレクションAPIをあげとくと、
Class,Member,AccesssibleObject,Field,Method,Construtor
Array,Modifier,ReflectPermission
ちょっと怪しげ・・・
なんせ使わないからね。
これで、あんたがデザパタもJAVAも
全然理解してない事がよーーくわかりましたよ。
0388!=385NGNG
>>387
クラス名でClassインスタンスとって、newInstanceして、
invokeMethodとかって、時々やるっしょ。
動いてるサーバーのビジネスロジックの追加・交換なんか
ができて便利。
0389デフォルトの名無しさんNGNG
InputStreamが抽象クラスなのはそれでいいと思うけどね。
まあ、そこはセンスの問題かな。
とりあえず、インターフェースだったらなーって思ったケースってどんな
ケースか参考までに聞かせてもらえるとうれしいな。
0390デフォルトの名無しさんNGNG
>>387
インターフェースを使って、実装と分離するのはよくある
話で、動的にサブクラスを生成して共通メソッドを呼び出す
てのは、ある程度の規模の開発になるとよくやるんだよ。

その際に、hogehoge.classなんてしてClassオブジェクトを
取得したり、Methodオブジェクトでサブクラスのメソッド呼び出し
を動的に制御したりする。こういうことをするために必要なのが
リフレクションです。まあ、漏れもめちゃくちゃ詳しいわけでは
ないけどね。
0391 NGNG
未知の、コンパイル時に情報交換を行わないプログラムは
Javaでは実行できませんよ。

リフレクションとかその他もろもろのは全部既知のプログラムしか
扱えない。つまり静的。
0392デフォルトの名無しさんNGNG
>>389
多重継承が必要な時。
Javaは多重継承ができないから、必要な機能が複数の抽象クラスに
分かれている場合なんかは不便だな。
まあ、普通にJavaでOOPをやってりゃその辺りで頭を悩ます必要はないんだけど。
0393デフォルトの名無しさんNGNG
>>391
イマイチいいたいことがわかんないっス。
もうちっと説明キボン。

リフレクションを使うと、コンパイル時の型チェックはできないので
実行時の動的型チェックしか行なえない。
0394デフォルトの名無しさんNGNG
>>390
あなたはOOPを根底から勘違いしてるようです。
>話で、動的にサブクラスを生成して共通メソッドを呼び出す
それを(実行時)ポリモーフィズム、レイトバインディング、
動的バインディング、ダイナミックメソッドディスパッチ等と呼びます。
それは、言語レベルで用意されてます。
抽象クラス、オーバーライド、インターフェースについて調べてみてください。

ちなみにリフレクションAPIは、かなり低レベルのAPIです。
もともと、JAVABeansを組み合わせたりするアプリケーションを
作るために作られたのだと思います。
(最初は用意されていなかったはず・・・)
ようするにクラスを解析するようなものです。

>>388
なるほど、そういう使い方もできるんですね。
止められないプログラムというのは身近じゃないので・・・
他にも使いかたってあるんですか?
0395 NGNG
コンパイル時点では走らせるプログラムに関する情報をいっさい持たない
任意のプログラムを走らせる事が出来る=動的。としとく。
0396デフォルトの名無しさんNGNG
>>389
例えば RandomAccessFile みたいな read() と write() を
両方備えたクラスを FilterInputStream とかで処理してた
いとき。 わざわざ RandomAccessFileInputStream みたい
なの作るのって疲れる…
0397デフォルトの名無しさんNGNG
>>394
思うに、アンタの方がよっぽど素人さんだと思う・・。
そんな単語だけ並べて・・中身を語ってみなさい。
リフレクションがJavaBeanのために作られたという根拠は??
0398デフォルトの名無しさんNGNG
>>392
いや、まあそうなんですが・・・
具体的なケースです。
理論的に、継承が必要なケースはポリモーフィズムを使いたい場合で、
ポリモーフィズムを使わない場合、集約(アグリゲーション)という
別の手段で回避できます。
現実的には、コーディングが面倒だったりしますが・・・
(そこら辺の自動化がIDEに組み込まれていないが無いところで、OOPLが浸透してない
事を実感させられるのですが)
0399デフォルトの名無しさんNGNG
>>391
うそだよーん。
Class.forName()でClassのインスタンスがとれて、
ClassからFieldやMethodインスタンスのリストが取れるんだから、
クラスファイルのURLとどのメソッドに何渡すかさえ与えれば、

あるプログラムから知らないクラスの知らないメソッド動かせる
よーん。

あんた偉そうな割に無知なのね。
0400391じゃないがNGNG
>>399
客観的に見て別に偉そうには見えないけど。
0401 NGNG
URL?
0402デフォルトの名無しさんNGNG
>>399
>ClassからFieldやMethodインスタンスのリストが取れるんだから、
Listだったっけ?配列じゃなかった??
0403デフォルトの名無しさんNGNG
根拠って言われてもね・・・
という事でWEBで探してきました
ttp://www.google.co.jp/search?q=cache:tnoExcybBsU:www.wakhok.ac.jp/~maruyama/summer98/node14.html+reflect+beans&hl=ja
だいぶ昔の事でどこで読んだかは忘れてしまったのですがね。
これで納得してもらえなければ、別に構いません。
開発同期が何であれ、そんな感じの使い方しかできないという事が
わかってもらえればいいです。
0404デフォルトの名無しさんNGNG
Javaだとこんな画像つくれる?
http://www.illy2.f2s.com/jpg/miruna.jpg
0405デフォルトの名無しさんNGNG
JAVAで全てこなせるように書いている奴は見ててマヌケだ。
0406 NGNG
Class forName(String className)ね・・・。

classNameはどこから持ってくるの?
0407デフォルトの名無しさんNGNG
>>403
JavaBeansじゃなくて、java.beansパッケージのクラス群のことだったのね。
ハイハイ。

イントロスペクション云々は昔勉強したけど忘れてしまったよ。
でもこのリンクが言ってることがリフレクションのすべてだ、なんて
まさか思ってないですよね?

個人的には、java.beansパッケージのクラスを使ってる場面をみたことがないです。
0408デフォルトの名無しさんNGNG
あ、そーそー FileInputStream が
mark / reset サポートしてないのも…
0409デフォルトの名無しさんNGNG
>>406
プロパティファイルからで良いんじゃない?
0410デフォルトの名無しさんNGNG
>>話で、動的にサブクラスを生成して共通メソッドを呼び出す
>それを(実行時)ポリモーフィズム、レイトバインディング、
>動的バインディング、ダイナミックメソッドディスパッチ等と呼びます。
>それは、言語レベルで用意されてます。
>抽象クラス、オーバーライド、インターフェースについて調べてみてください
>>390を読むと、この説明はあってるようだけど、そもそも、「実行時にサブクラスを生成」するのはレイトバインディングとかダイナミックバインディングとは言わないだろ。
0411デフォルトの名無しさんNGNG
>>409
多分それだと、静的だっていうぞ、こいつは。

サーバでソケットの向こうから飛ばしてもらうとか。
管理ユーザがGUIから必要になるたびに登録するとか。
あるディレクトリを常に監視して、そこにファイルが置かれたら
そいつをイベントにしてロードするとか。

まさかそれもダメって言うなら、あんた言うの動的なプロ
グラムのシンボル名称解決ってどうやるんだよ???
0412410NGNG
とか、かいてるうちに話は先にいっちゃったのね。
0413デフォルトの名無しさんNGNG
>>410
さらに、「言語レベルで用意されている」という受け答えがすでに意味不明。
この人本当にJavaが何かさっぱりわかっていないよ。
0414デフォルトの名無しさんNGNG
>>411
そうぢゃなくて、「こういう条件が揃った場合には、このクラスを
呼び出す」っていうことが必要な時によく使うけどね漏れは。
0415デフォルトの名無しさんNGNG
>classNameはどこから持ってくるの?
プログラムを止めたくない場合の例では、
サーバー用のクライアントを立ててローカルから送ってあげるって
とこですかね。

>JavaBeansじゃなくて、java.beansパッケージのクラス群のことだったのね
いえ違いますよ。
JavaBeansを使った開発環境作成のためです。

>でもこのリンクが言ってることがリフレクションのすべてだ、なんて
>まさか思ってないですよね?
古すぎるせいか、開発動機が書かれてるホームページはありません。
私はAPIリファレンスから知識を得ていますので、それ以外のことはわかりません。

>共通メソッドを呼び出す
こっちがレイトバインディング云々ですよ。
0416 NGNG
>>411
もちろん静的ですよ。

つうか、最初に明示した条件に反してるでしょう。アフォですか?
論破されたからって「こいつ」呼ばわりですか?
0417410NGNG
いまの流れでいうと、動的っていうのは、ようするにevalのことだよね?
文字列を実行する、しかも呼ばれた側呼び出し元の環境を参照できる、ってことでいいんですよね?

>>413
おれもそうおもう。
0418 NGNG
>>415
なんでサーバーの話をしているのやら。
0419デフォルトの名無しさんNGNG
なんかバイトコード臭い話ばかりだな。
0420デフォルトの名無しさんNGNG
>>415
>古すぎるせいか、開発動機が書かれてるホームページはありません。
>私はAPIリファレンスから知識を得ていますので、それ以外のことはわかりません。
じゃあぜひシステム開発を経験して、リフレクションの便利さ・必要さを
身をもって体感してください。
私もリフレクションが好きでたまらないというわけでは全然ないんだけど、
使わざるを得ない場面に遭遇するから使っているだけです。
JavaでOOPやってるとかならず出てくるですよ、コイツは。
0421デフォルトの名無しさんNGNG
>さらに、「言語レベルで用意されている」という受け答えがすでに意味不明。
ポリモーフィズムの説明はうんざりなんですが、
同じ事をC++でやる事を考えてみてください。
といってもC++知らないでしょうけど・・・。
ちなみにJavaではI/Oの機能はライブラリレベルで用意されていると
表現します。
PERLではI/Oの機能は言語レベルでサポートされています、
と表現します。
0422デフォルトの名無しさんNGNG
>>421
>ポリモーフィズムの説明はうんざりなんですが、
>同じ事をC++でやる事を考えてみてください。
>といってもC++知らないでしょうけど・・・。
漏れはいちおうC++のプログラマーなんだが・・。
うんざりせずにC++での実例をもとに語ってみてください。
0423デフォルトの名無しさんNGNG
>>419
どこがやねん。
0424デフォルトの名無しさんNGNG
>使わざるを得ない場面に遭遇するから使っているだけです
どういう場合で使うのでしょうか?
是非教えてください。
私は一度も使ったことありませんので。

>なんでサーバーの話をしているのやら。
>>動いてるサーバーのビジネスロジックの追加・交換なんか
というわけです。
0425デフォルトの名無しさんNGNG
JAVAか昔やらされたな。
あの言語でファイルフォーマット解析しろって言われた時は
吐きけがしたよ。
0426デフォルトの名無しさんNGNG
>>425
構造体にがぽっとはめられないかね、がぽっと
0427デフォルトの名無しさんNGNG
>>424
上で出したけど、いくつかのデザインパターンではリフレクションを
前提としている場合があります。そして、それを適用した方が
後々のメンテ性が良いことが多いんです。

例えば、実行時のあるオブジェクトの状態によって呼び出すメソッドを
変えたい場合にはリフレクションしかありません。
まあゴリゴリと長いコードを書くのであれば別ですが、OOPだけに
そんなことはしませんよね?
0428デフォルトの名無しさんNGNG
言語レベルっていう言い方が、すでに意味不明(つーか、いろんな意味に取れすぎ)
ライブラリレベルもそう。
言語仕様で定義されているとか、標準ライブラリに含まれているとか、そういう言い方してほしい。
0429デフォルトの名無しさんNGNG
>>422
C++でポリモーフィズムするには
親クラスのメソッドにvirtualをつけて
子クラスでオーバーライドするだけですが・・・
あとは親クラスの型を指すポインタ変数に子クラスを入れて
普通にメソッド呼び出しするだけで
動的バインドが行われます。
JAVAではvirtualをつけなくても全部virtualになってます。
わかっていただけたでしょうか?
あなたのリフレクションを使う動的バインドは
別物でしたか?
0430デフォルトの名無しさんNGNG
つまりJAVAではオブジェクトの代入は全て参照になってしまうと。
0431デフォルトの名無しさんNGNG
>429
つーかC++とJavaの違いをまったく知らないねこの人。
0432422じゃないけどNGNG
あるクラスのインスタンスと、そのクラスから導出されたクラスのインスタンスをバインドできるのは、動的バインドって言わないだろう。
ポリモルフィズムとは言うけど。
リフレクションを使うのは、言語が動的バインドをサポートしていないから、別の手段でそれと同じ事をする、っていう気がするんだが…
0433デフォルトの名無しさんNGNG
>>427
C++で同じ事するときはどうするの?
でさ、デザパタの本ってリフレクションAPIが作られる前からあったけど
どうやってたんだろ??

ところでファイルフォーマットの解析って、
俺はバイナリーエディター使うんだけどさ、
コンパイラでどうやってやるの?
0434デフォルトの名無しさんNGNG
>>427
それはウソ。

リフレクションを使わざるを得ないのは、実行時まで「クラス」「メソッド」を解決できない時だけ。

単に条件分岐で起動するメソッド変えるだけとかなら、デザパタに解決方法がいくつかある。

Class.forName()でクラスロードしてJITコンパイルして実行、つうのは
オーバーヘッドでかすぎなので、なるべくしないほうがいいよ。実行時にいちいち遅くなる
よりは、初期化時だけ遅いほうがナンボかましでしょ?
0435デフォルトの名無しさんNGNG
>あるクラスのインスタンスと、そのクラスから導出されたクラスのインスタンスをバインドできるのは
ゴメン、もうちょっとわかりやすく書いて
意味が良くわからないっす。
0436デフォルトの名無しさんNGNG
>>434
別にウソではないだろう。引数を持つコンストラクタを持つクラスのインスタンスを
動的に生成したい場合はどーする。リフレクションでやるしかないだろ。

>Class.forName()でクラスロードしてJITコンパイルして実行、つうのは
>オーバーヘッドでかすぎなので、なるべくしないほうがいいよ。実行時にいちいち遅くなる
>よりは、初期化時だけ遅いほうがナンボかましでしょ?
ま、よーするにコードの見易さを取るか、速さを取るかだわな。
0437デフォルトの名無しさんNGNG
>>436
引数つきのコンストラクタの起動方法って、結構みんな知らないのね。
Constracterクラスのドキュメント見て味噌。
0438デフォルトの名無しさんNGNG
>ところでファイルフォーマットの解析って、
>俺はバイナリーエディター使うんだけどさ、

話がかみ合わないわけだこりゃ。
0439デフォルトの名無しさんNGNG
というか、ヒープ上のメモリにオブジェクトを生成すること
つまりはnewを使うことを動的にオブジェクトを生成すると
一般的には言うんだが、
どういう意味で使っているのか教えてくれないかな?
0440デフォルトの名無しさんNGNG
>>434
それもやっぱりウソ。ある特定のインスタンスのフィールドをダイナミックに
初期化したい場合にはリフレクションを使う。
それから、単体テストをする場合になんかも使う。setAccessible(true)でフィールドの
中身を取り出す。
0441デフォルトの名無しさんNGNG
>>436
すまん。何言ってるのかワカラン。
動的に生成するって、何をさしていってるの?
JVMが目的のクラスを解決できていれば、単にそのコンストラクタで
newするだけだよね?
0442デフォルトの名無しさんNGNG
>>437
それもリフレクションの一種じゃない?
0443デフォルトの名無しさんNGNG
438はフォーマット判別といいたかったんだと思われ。
と書き込んでみるテスト。
0444デフォルトの名無しさんNGNG
>>440
そういう隠蔽を破壊するようなことをなんでする必要があるの?
単体テストならわかるけど。
0445432NGNG
>>435
強い型付けの言語で、あるクラスの変数を宣言して、そのサブクラスのオブジェクトを代入する、っていうのは、
動的バインドとはいわないだろう、っていうことだ。
って、なんか、解かりやすくなった自身無いなぁ…
0446デフォルトの名無しさんNGNG
>>441
うーむ、言い方が悪かった。
条件によって生成するサブクラスが違う場合(ただし同じインターフェースを
実装しているか、同じ抽象クラスを継承していることが前提)に、getConstructor()
とかやるじゃない。
0447デフォルトの名無しさんNGNG
>>444
アサーションだよ。アサーション用のメソッドが無い場合は
そうやってクラス内の値を取り出すしかない。
0448親切な人NGNG

ネットサーフィン中に、凄い人気掲示板、発見!!!

「はにちゃんねる」↓
http://www.isn.ne.jp/~honey/hc/

ネット内では、現在、この掲示板の話題で、持ちきりです。
0449デフォルトの名無しさんNGNG
>>446
あーわかりました。そういう時は、なるべくFactoryMethodとかで
やったほうがいいよ。(かのヒロミチュ先生もご推薦(藁))
0450デフォルトの名無しさんNGNG
>>445
Javaの場合、その変数(C++だと派生クラスポインタ)に対して
メソッド呼び出しをした時必ず動的バインドが行われる。
過去レスを読んでみると良い。
0451デフォルトの名無しさんNGNG
>>449
そう、だからFactoryMethodとかAbstractFactoryとかその辺のことを言ってるんだよ。
0452デフォルトの名無しさんNGNG
>やったほうがいいよ。(かのヒロミチュ先生もご推薦(藁))
誰?
0453デフォルトの名無しさんNGNG
451の発言を見て
>そういう時は、なるべくFactoryMethodとかでやったほうがいいよ。
という意味がいまだにわかっていないじゃん(w
と書いてみるテスト
0454デフォルトの名無しさんNGNG
>>451
本当に、そのあたりを記述するのにリフレクション使う必要が
あるのかな???C++/Java両刀の人間には不思議なんだけど。
使ってもできるけど、避けたほうがいいんじゃない?という話
ですが、どないでしょ?
0455デフォルトの名無しさんNGNG
そういえば、高木先生スレッドなくなったね。
高木先生はすげーって。
0456デフォルトの名無しさんNGNG
>>454
もうほっといてあげなって。
これだけ説明してもわかってないし、
ヒープとスタックの区別もついて無さそうだよ。
0457デフォルトの名無しさんNGNG
そういうわけで、ポリモーフィズムもわかってない。
きっとOOもわかってない。
あー、哀れ・・・
0458445>450NGNG
>>429のことですか?過去レスって。
0459デフォルトの名無しさんNGNG
という具合になげくお前らももっとわかってなさそう・・
0460スレと全然関係無いけどNGNG
攻撃に弱い人は、たいてい冬厨ですな。
第三者装って揚げ足取るのが得意技。
0461デフォルトの名無しさんNGNG
>>454
Classクラスのfactoryメソッド使うだろ?
まさにそれがリフレクションの機能使ってるやんけ。
0462デフォルトの名無しさんNGNG
なんかずいぶんいろんな意味の「動的バインド」が出てきてる気がする…
0463デフォルトの名無しさんNGNG
>>454
>使ってもできるけど、避けたほうがいいんじゃない?という話
>ですが、どないでしょ?
というのは何故??
0464デフォルトの名無しさんNGNG
FactoryMethod適用時に、switch文を使ってもクラスの動的生成を見かけ上はできる
けど、美しくないよね。
0465この人大丈夫か?NGNG
>>461
なんででしょ?普通にnewで対象クラスのコンストラクタ起動するだけでいいじゃない。
仮にそれでないとFactoryMethodが実現できないなら、C++の時どうするの?
0466デフォルトの名無しさんNGNG
>>443
君らの書くプログラムはファイルreadすると
勝手にフォーマットがわかるですか?
ずいぶん便利ですね。
0467デフォルトの名無しさんNGNG
>>466
「解析」をそんなに責めなくても…
0468デフォルトの名無しさんNGNG
>>465
getConstructorメソッドちゅうのを使うことはリフレクションの機能を使っているということです。
ちなみにこの場合は対象クラスをnew演算子でインスタンス化しません。
0469デフォルトの名無しさんNGNG
>>465
あ、そうそう、Constructorクラスていうのがあるからね。
Java2のAPIガイドみてみ。
0470この人大丈夫か?NGNG
あーそういうことか。
switch分岐よりClass.forName().newInstance();
とかで一行で済ますほうが「ソースが美しい」って話ね。

ここから先は宗教戦争ですので、結論はでませんな。

インスタンス生成メソッドでさえswitchを嫌うことで失う実行時
コストととの相談というあたりを落としどころにしませう。でない
と終わらんよ。
0471デフォルトの名無しさんNGNG
>>465は、lava.lang.refrect をまず読んでからだろうな。
0472デフォルトの名無しさんNGNG
>なんででしょ?普通にnewで対象クラスのコンストラクタ起動するだけでいいじゃない。
newする対象のクラスが動的に変わる場合はハードコーディングしないでしょ?
クラス名をひっぱってきて、Constructorオブジェクトを取得してからインスタンスを
取得する。まあ一度やってみてください。やらんとわからんと思う。
0473デフォルトの名無しさんNGNG
java.lang.refrectだ・・・
0474この人大丈夫か?NGNG
しかし、コレクションあたりと同じ感覚でリフレクション使う人って、
以外と多いんだね。知らんかった。気をつけよう。
0475デフォルトの名無しさんNGNG
>>470
アンタも大丈夫??
0476デフォルトの名無しさんNGNG
>>474
そうそう、そのへんから宗教戦争になるんだよ、たぶん…
0477デフォルトの名無しさんNGNG
>>474
コレクションとリフレクションを同じ感覚で捕らえられる感覚が
おれにはさっぱりわからん。まったく別物じゃん。説明してくれ。
0478デフォルトの名無しさんNGNG
異なるクラスが20個あったら20個の分岐を作るんか?
そりゃアンタ、アフォですよ。
0479この人大丈夫か?NGNG
>>472
あーそうか。サブクラスを実行時まで解決できないパターンでの
ファクトリの話ね。了解です。

はうー、どんなシステムでそんなもんが必要になるのでせうか。
後学の為に教えてチョ。
0480デフォルトの名無しさんNGNG
>>478
3個ぐらいだったら分岐しちゃうような…
0481デフォルトの名無しさんNGNG
実行時に20のうちから1つ選んでインスタンスを作るような場面が、コレクションを使う場面と同じ位あったら、やっぱ考え直すな、おれなら。
0482デフォルトの名無しさんNGNG
>>479
結構いろんなところで遭遇するよ。
例えばA/B/Cというシステムにメッセージを送りたくて、出口が一つしかない場合とか。
メッセージのあて先決定メソッドなんかはabstructにしておくんだよ。
0483デフォルトの名無しさんNGNG
>>480
3個程度しか増えないことがわかっているならそれでも良いんじゃない?
んで、将来も変わらないことがわかっているんならわざわざリフレクション
使うまでもないかもね。
0484デフォルトの名無しさんNGNG
というか、リフレクションって呼ぶとかなり誤解招くな・・・
そんなリフレクションAPIの末端使ってて、リフレクションとか言ってるんだもんな。
解析と判別も笑えたけど。
おめーのバグだろ・・・スレに登録済みですか?(笑)

>Class.forName().newInstance();とかで一行で
一行じゃかけないよ。
横に長くて(笑)
それは冗談にしろ、2つのメソッドは両方引数がくっついてくるわけで
そこら辺もとか考えると、
switchの方が、メンテするとき明らかに楽だと思うけど。

で、リフレクションおじさんは結局のところ
変なデザパタの本をそのまんま丸暗記してたって事なのかな?
さすがにスタックとヒープの違いはわかってると思うけど・・・
そう願いたいよ。
0485デフォルトの名無しさんNGNG
484も、えらそうなこと言ってるけどおそらく実務は皆無だと思われる・・
0486デフォルトの名無しさんNGNG
まぁ、ここでわかってないやつが1000人いても、仕事の現場のわかってないやつ1人にくらべれば、俺の生活への影響は微々たるものだ。
0487デフォルトの名無しさんNGNG
ファクトリーメソッドは便利だから、よく使うよね。
20個分岐するswitchって言うけどさ
20個クラスつくったり、ファクトリーメソッド呼び出す側とか
いろいろ考えてみると別にどうってことないと思うけど。
0488デフォルトの名無しさんNGNG
>>484
>というか、リフレクションって呼ぶとかなり誤解招くな・・・
>そんなリフレクションAPIの末端使ってて、リフレクションとか言ってるんだもんな。
えらそーなことをのたまうオメーが説明してみー。
0489デフォルトの名無しさんNGNG
>switchの方が、メンテするとき明らかに楽だと思うけど。
バカかお前は?
クラスが増えるたびにいちいちソース直してコンパイルかけんのかよ??
そーゆーのはプロパティファイルに外だしするんだよヴォケが。
0490デフォルトの名無しさんNGNG
>>488
というかリフレクションクラス全部挙げたりしたんですが・・・
今日は70メッセージくらい書いたと思うけど。
今日も厨房が一人減って満足だ。
では、おやすみ。
0491デフォルトの名無しさんNGNG
489はmakeツールを知らないらしい・・・
0492デフォルトの名無しさんNGNG
>というかリフレクションクラス全部挙げたりしたんですが・・・
それは説明したことにはならんと思うぞ。
0493デフォルトの名無しさんNGNG
20個分岐のswitchが1箇所ですむなら、べつにいいと思うんだが、このテの話は、
20個の分岐が、あっちこっちに散らばるようなら、ポリモルフィズムつかえっていう時に出てくるなぁ。
でも、20個のcaseのswitchが1つあって、そこで作るオブジェクトを切りかえるような使い方なら、
おれはまよわずそれを使うな。
リフレクション(?)なんぞ使わずに。
0494デフォルトの名無しさんNGNG
491はIDEを使ったことがないらしい・・
ついでにJavaで仕事をしたこともないらしい・・
0495デフォルトの名無しさんNGNG
窓の中の蛙ハケーン
0496493NGNG
あ、もちろん、実行時まで知り得ないクラスのインスタンス作るような場合は、リフレクションでしょうね。
0497デフォルトの名無しさんNGNG
>>493
というかですね、あるシステムの汎用フレームワーク的な部分を構築する
場合は、スーパークラスやインターフェースのかたまりを作って
それをベースにいろんなシステムを開発していくわけです。

そのフレームワークからユーザーパッケージのクラスを、ソースに
ベタ書きで呼び出すわけにはいかんだろ、というワケです。
0498デフォルトの名無しさんNGNG
ファクトリーメソッドにプロパティー使うバカもいるのか。
名スレだな。
0499デフォルトの名無しさんNGNG
普通はどうやるの?? > 498
0500デフォルトの名無しさんNGNG
MS の JVIEW上でも File.setLastModified() だっけ?
出来るメソッド書くとき java.lang.reflect にお世話に
なりました。
0501デフォルトの名無しさんNGNG
>>497
ストリングクラスのオブジェクト渡すのと、
派生クラスのオブジェクト渡すのと何が違うの?
それってファクトリーメソッドの話とは違うよね?
0502デフォルトの名無しさんNGNG
>>500
C#はうざいので消えてください。
0503デフォルトの名無しさんNGNG
>>501
なんか話がズレてるぞ。
汎用なんだから、ある特定のユーザーパッケージもしくはクラスを
importしたりベタ書きしたら、ぜんぜん汎用じゃなくなるじゃんか。
0504デフォルトの名無しさんNGNG
Cの良いとこと悪いとこスレだったはずなのに (ほのぼの〜)
0505503NGNG
汎用パッケージ内のクラス内に、ユーザーパッケージのクラスを
ハードコードすると、汎用パッケージとして意味をなさなくなってしまう
という意味です。
0506503NGNG
それを解決するのに有用なのが上の方にあったリフレクションだ。
0507デフォルトの名無しさんNGNG
>>503
だから、外部から派生クラスを受け取ればいいでしょ?
0508デフォルトの名無しさんNGNG
リフレクション使うにしろ、文字列を受け取るわけでしょ?
ファクトリーメソッドの話はもう終わったのかな。
0509デフォルトの名無しさんNGNG
>>507
スマソ。意味がわからん。
「外部から派生クラスを受け取る」ってどういう意味?
0510ジーンズもケイタイも503が好きNGNG
>>503
汎用パッケージとユーザーパッケージが同時に存在してるなら、どういうことになるんだろうね。
0511510NGNG
どういう→そういう
0512デフォルトの名無しさんNGNG
>>508
ずっと続いてます。
0513デフォルトの名無しさんNGNG
>>509
つまり Class.forName() で得られるような
クラスオブジェクトを渡すって事では?
0514デフォルトの名無しさんNGNG
外部って言うのは、フレームワーク上のアプリケーション
つまりは、ユーザーパッケージの事。
0515513NGNG
やば、ヘンな造語使ってしまった
0516デフォルトの名無しさんNGNG
>>510
汎用パッケージは、いろんなところに横展開が可能だ。
A社で使ったり、B社で使ったり・・。業界が同じなら流用しやすいだろ。
だけど中身の業務は違うから、そういう部分はユーザーパッケージのクラス
で実装するんだよ。汎用パッケージが提供するのは主にインターフェース
もしくは抽象クラスの部分。
0517デフォルトの名無しさんNGNG
>>514
だから、ユーザーパッケージのクラス名は外だしにするってことだ。
switch文を使ったら、クラス名をハードコーディングせんといかんだろが。
0518デフォルトの名無しさんNGNG
>>517
ちょっと待て、switchはファクトリーメソッドの話。

ユーザーパッケージの中でnewされたオブジェクト(抽象クラスを継承した物
またはインターフェースをインプリメントしたもの)を受け取る関数を
汎用パッケージに持たせるのが普通では?
つまり、何らかの入力に対して何らかの出力をしたければ、
(例えばの話として)汎用パッケージでは、
constructor(InputStream is,OutputStream os)
というのを用意して、
ユーザーパッケージでは、相応のInputStreamとOutputStreamの派生クラスを
newして
コンストラクタに渡してあげればよい。
0519デフォルトの名無しさんNGNG
>>518
俺の構想とはアンタとちょっとずれているとは思うのだが・・

汎用パッケージからAというインターフェースを実装したクラスを
使いたい場合、ユーザーパッケージにはAを実装したクラスを作るよね。
だけど汎用パッケージ側はユーザークラスを知らないわけだ。
だけどインターフェース名で呼び出せば良いから、条件によって
クラス名だけフレームワーク側にあたえてやって、ユーザークラスの
インスタンスを取得すればよい。

こんな風に。

A a = Factory.getA(クラス名);

どうでしょうかね?
0520519NGNG
取得したいユーザークラスが引数を持つコンストラクタをもっている
場合も、インスタンスの取得の仕方が違うだけで考え方は同じだよ。
0521デフォルトの名無しさんNGNG
結局のところ、Javaのリフレクションって俗に言うプラグインを組み込むための仕掛け
と理解してるんだけど良いのかな。JavaBeanってプラグインだと決め付けてるけど。
0522デフォルトの名無しさんNGNG
ttp://www.tetras.co.jp/yada/j_java_ref_r.htm

リフレクションの応用範囲は広い。いろんな場面で活用されるということだ。
0523デフォルトの名無しさんNGNG
>>521
それはリフレクションの一部の機能ね。

>>519
言いたい事はわかるけど、それだと
ユーザーが作ったAの派生クラスを外部で利用するには、
キャストをしなきゃならない事は理解できるかな?
Aがインターフェースである場合はそんする部分も大きいよ。
0524デフォルトの名無しさんNGNG
そのURLのページから、リフレクションは情報隠蔽を破壊しやすいので
使わないこと。
まあ、ファクトリーメソッドとしては問題ないけどね。
0525デフォルトの名無しさんNGNG
>>523
そのユーザーが作ったAの派生クラスは、汎用パッケージがあることが
前提なんだから、他では使い道が無いよね?
万が一、外部で(外部とはどういう意味かよくわからんが)使いたい場合は
そのクラスをそのまま使えばいいんじゃないの?

例えばそのユーザークラスに独自のメソッドが実装されていた場合
(つまりスーパークラスにはないメソッドが定義されている)に
そのメソッドを使いたい場合は、Aというインターフェースで受けては
いけないよね。もしくはダウンキャストしなけりゃならない。

Java2における、Vectorクラスなんかそうだよな。Listで受けるときは
Listに定義されてるメソッドしか使えないけど、汎用的に使えるよね。
0526デフォルトの名無しさんNGNG
>Aがインターフェースである場合はそんする部分も大きいよ。
どういう場合か簡潔に説明してください。
0527デフォルトの名無しさんNGNG
>>523
後付けの部品を組み込む時以外の既知のクラス情報を参照するのに意味あるの?
クラス設計の不手際をコーディング時に辻褄あわせて再設計の工数とトレードオフ
するためには使えるけど、それって裏技の類だよね。

・・・設計に自信があっても障害検知時に利用するというのには大いに意味があるか。
0528デフォルトの名無しさんNGNG
なんで誰も>>494のバカっぷりに突っ込んでやらないの?
0529デフォルトの名無しさんNGNG
528=491
0530デフォルトの名無しさんNGNG
C 使いってもういないのだろうか。
嘆かわしい世の中だ。
0531デフォルトの名無しさんNGNG
>そのユーザーが作ったAの派生クラスは、汎用パッケージがあることが
逆です。
フレームワークをユーザーが使うの。

>もしくはダウンキャストしなけりゃならない。
既に書いたけど、
汎用フレームワークの外側でnewされてれば、ダウンキャストは起こらない。
リフレクション使うと、コンパイル時の型チェックもできないしさ。

>どういう場合か簡潔に説明してください。
ファクトリーメソッドで必ずオブジェクトを作るって事は、
複数のインターフェースをインプリメントできない。
つまりはインターフェースの意味が無い。
constructor(A a,B b)
というのがあったとき、
A,BをインプリメントしたクラスCがあると、
constructor(c,c)でOK。
これでいい?
0532デフォルトの名無しさんNGNG
とりあえず BeansScriptingFramework は便利だ。
0533デフォルトの名無しさんNGNG
>>530
きょうび Cだけしかできないなんてヴァカがいたらみてみたいものだ(w
0534デフォルトの名無しさんNGNG
>>533
Javaをわけもわからず無理やり使って、勝手に惨めな思いしている
Cプログラマなら、掃いて捨てるほどいるなあ。
0535デフォルトの名無しさんNGNG
>>534

年末に使われてないJava使いを集めて捨てました。
すっきりきれいになりました。GCって便利ですね。
0536デフォルトの名無しさんNGNG
JAVAで全てできると思っている奴は見ていてマヌケだ。
0537デフォルトの名無しさんNGNG
JAVAと表記するやつは間違いなくマヌケさん(稿
0538デフォルトの名無しさんNGNG
>>536
>>JAVAで全てできると思っている奴は見ていてマヌケだ。
そんな人いないと思いますけど…
ひょっとして、過去の536ご自身ですか?
0539デフォルトの名無しさんNGNG
>>537
>JAVAと表記するやつは間違いなくマヌケさん(稿

おまえは些細なことにこだわって自滅するタイプ
0540デフォルトの名無しさんNGNG
Javaってなんでヲタを集めるんだろうか?
0541デフォルトの名無しさんNGNG
ヲタというほど知ってるやつ、少なさそうだけど…
0542デフォルトの名無しさんNGNG
ヲタとは知識をひけらかして人を見下す人の事を言ったのが語源ですだ。
0543あたまの容量が少ないひとっているんだねNGNG
>>539
きみってヴァカそう、僕のまわりには決していないタイプ(w
0544デフォルトの名無しさんNGNG
>>542
>>ヲタとは知識をひけらかして人を見下す人の事を言ったのが語源ですだ。
それって 542ご自身がヲタだという告白とみなしますが、
よろしいですか?
0545デフォルトの名無しさんNGNG
>>543
>>>539
> きみってヴァカそう、僕のまわりには決していないタイプ(w

おまえ、いつも一人ぼっち。周りにだれもいないタイプ(ヒ
0546デフォルトの名無しさんNGNG
Java使ってる奴は所詮ローカルな知識だけで、
不変的な仕様を理解できない。
0547デフォルトの名無しさんNGNG
>>546
はいはい、昔のキミがそーだったのね。
0548デフォルトの名無しさんNGNG
くだらん事で争うな
0549デフォルトの名無しさんNGNG
「不変的な仕様」ってなんのことだろう?
0550デフォルトの名無しさんNGNG
>>549
「普遍的な仕様」でない事だけは確かみたいです。
(それにしたって良く意味わからないけど)
0551デフォルトの名無しさんNGNG
ヲタとは知識だけをひけらかして人を見下す人が、あいてを「お宅」と呼ぶのが語源ですだ。
0552デフォルトの名無しさんNGNG
>>550
> 「普遍的な仕様」でない事だけは確かみたいです。
> (それにしたって良く意味わからないけど)

「不偏的な仕様」かな?
惨に依存しないってことで。
0553デフォルトの名無しさんNGNG
C厨半泣き状態
0554デフォルトの名無しさんNGNG
>>551
>ヲタとは知識だけをひけらかして人を見下す人が、あいてを「お宅」と呼ぶのが語源ですだ。

そんな知識ひけらかしてどうするんだい?
0555デフォルトの名無しさんNGNG
>>553
>C厨半泣き状態

Java厨号泣。アイゴー。アイゴー。
0556デフォルトの名無しさんNGNG
>>555
愛子様ご生誕を 未だに祝ってらっしゃるのですね?
0557デフォルトの名無しさんNGNG
>>554
お宅、>>551程度で、「ひけらかされた」と感じるとでも?
0558デフォルトの名無しさんNGNG
よせよ、Kusakabeが来るぞ。
0559デフォルトの名無しさんNGNG
Javaは煽動と洗脳によって支えられています。
人を見下したいという願望を持つ若いアフォを、
「Javaが現れるまで従来は・・・でした。」式の、
[決まった答えが出てくる嘘の知識]で誘導します。
その手のJavaの解説本を読んだアフォは
「旧世代を打倒してプログラミングの世界を革新しなければならない」
といったような「使命感」を植え付けられます。
騙されやすい若者を騙して使う汚いやり口だと思います。
ヒトラー・ユーゲントしかり、紅衛兵しかり、
これは全てJavaの仕掛け人サイドの計算通り。
いいかげん、目を覚ましましょう。
0560デフォルトの名無しさんNGNG
俺はあの書き方みて笑ってしまったよ。
0561デフォルトの名無しさんNGNG
なんてアンチJavaは、Java使いがJavaしかやってないと思ってんだろうね。
Java使いも昔はC使いだったんだが(Servlet&JSPが初めてのプログラミング
と言う真性厨房サラリーマンプログラマをのぞいて)。

仕事によってはCを選択することもあるというのは、言われなくてもわかって
るって。
0562デフォルトの名無しさんNGNG
ってか、この類のスレに書き込んでる奴は漏れなくヴァカ
560も含めてね。でも俺は例外(笑
0563デフォルトの名無しさんNGNG
>>561

前半と後半の文章矛盾してない?
0564 NGNG
>>561
インターフェースのような後決めライブラリ構造がJava以前は無かったような
事を言うから。
再利用も同じ。
0565デフォルトの名無しさんNGNG
try{
 >>562
}
catch(例外 俺){
 俺.氏ね;
}
finaly{
 すっきり;
}
0566デフォルトの名無しさんNGNG
>>565
それだと全員すっきりしてしまうが?
0567デフォルトの名無しさんNGNG
>>518
>>constructor(InputStream is,OutputStream os)
っつーか これ isのデータを osに出力するだけだったら
クラスメソッド(っつーか関数)でやるべきなんでは?
0568デフォルトの名無しさんNGNG
JAVAってビット演算も当たり前のようにできますよね?
初心者でスマソ
0569デフォルトの名無しさんNGNG
>>568
はい。
0570デフォルトの名無しさんNGNG
ビット演算はハードウェアを直接使う際には必要だが、
アプリケーションを作るレベルでは使うべきでないと思うがどうか?
0571デフォルトの名無しさんNGNG
>>570
通信や画像処理では必須かと思われ。
ライブラリに隠蔽すればいいけども。
■ このスレッドは過去ログ倉庫に格納されています