トップページ⇒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しかありませんが、なにか?
■ このスレッドは過去ログ倉庫に格納されています