トップページ⇒tech
1001コメント314KB

JavaやったらC++はきもく感じる

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2007/01/10(水) 19:07:35
なにこれ。
int(100)とかだっさー(笑)int&なんてきんもーっ★って感じなんだけど。
標準で使えるスレッドもないしさ。バッドノウハウだらけの
使えない気持ち悪い言語だよなこれ。前時代の人たちはほんとにこんなモノで開発してたのか。
マジご愁傷様です。
C99のほうがまだ拡張性が高くていい感じになってるのが皮肉だね。
0008デフォルトの名無しさん2007/01/11(木) 03:08:46
だからこそOSやマシンを効率よく且つフルに使いこなせるわけだけどな。
まぁ、その辺はトレードオフでどっちを取るかって話だ。
0009デフォルトの名無しさん2007/01/11(木) 07:29:25
>>1
初期化については、組込型では間抜けな表記になるが、クラスだとそれなり。
スレッドは言語とは関係なく、OSの機能だから。
参照は、テンプレートのためにある。ヘタに使うと可読性を損なうので、ポインタを使うことのほうが多い。
0010デフォルトの名無しさん2007/01/11(木) 07:35:15
Javaを使ってみて、C++で不満に思ったことが3つ。

・例外は柔軟過ぎてチェックが大変。
・多重継承の仕様は、もうすこし何とかならなかったのか。
・スレッド同期を言語がサポートしてくれないので、コードが読みにくくなる。

自由度が高いというのは、良い面もあり、悪い面もある。
Javaは意図的に自由度を下げることでトラブルを防止してはいるものの、
それゆえに、C++よりもトリッキーで変なコードを書かないといけない場面もあり、
なんだかなぁ、と。
0011デフォルトの名無しさん2007/01/11(木) 13:11:11
>>4
飲み込まれないんじゃなくて、飲み込んでるんじゃ?
0012デフォルトの名無しさん2007/01/11(木) 13:21:45
純粋仮想関数の =0; にワロタ。
いかにも後付けで入れた文法って感じ。
0013デフォルトの名無しさん2007/01/11(木) 16:41:56
移植性を考えたら、テンプレート、例外処理、RTTI、名前空間は使わないほうがいい。
C++はTMP言語じゃなくて、クラス付きのCと捉えるのが一番いい。
0014デフォルトの名無しさん2007/01/11(木) 17:18:35
Boost.Preprocessor最強説
0015デフォルトの名無しさん2007/01/11(木) 17:43:03
やっぱC言語との互換性がネックだよな。
コンパイラベンダがD言語に本腰入れたらC++の新規案件なんて絶滅するんじゃね?
0016デフォルトの名無しさん2007/01/11(木) 17:50:47
>>13
でもそうするとおいしいところが無くなって、C++にする必要性すらなくなる。
0017デフォルトの名無しさん2007/01/11(木) 18:27:35
>>16
Mozillaはそうしてるな。必要性がなくなるってことはないんじゃね。
俺はnamespaceぐらいはあったほうがいいと思うがBoostとか使うぐらいならPythonで書いてコンパイルするよ('A`)
0018デフォルトの名無しさん2007/01/11(木) 18:31:41
いやだってさ、13のとおりにするならDでもなんでもいいだろと思う。
0019デフォルトの名無しさん2007/01/11(木) 19:29:21
Dはまだ時期尚早。あとVM系言語は逆アセンブルが怖い・・・コンパイル言語でもするやつはするけどね。
0020デフォルトの名無しさん2007/01/11(木) 19:34:28
Boost.MPLはPythonでCプリプロセッサを書いて生成している
言ってる意味が分からないかもしれないが本当だ
0021デフォルトの名無しさん2007/01/11(木) 19:50:35
DはC言語のソースをコンパイルできないから論外。
0022デフォルトの名無しさん2007/01/11(木) 19:53:06
>>13
待て、それはObjective-Cのことじゃないか
0023デフォルトの名無しさん2007/01/11(木) 22:05:57
          ヽ / /⌒\
         /ヽヽ|/⌒\ii|\
       / /ヾゞ///\\|
       |/   |;;;;;;|/ハ \|
             |;;;;//⌒ヽ
             |;/( ^ω^) >>1おっおっおっ乙枯ー
.           |{ ∪  ∪
             |;;ヾ.,____,ノ
             |;;; |
             |;;;;;|
             |;;;;;|
0024デフォルトの名無しさん2007/01/12(金) 22:16:32
>>1もC++テンプレートメタプログラミングに嵌ってみなさいよ
そうすればえげつなさがもっと理解できるよ
0025デフォルトの名無しさん2007/01/12(金) 22:27:10
JAVAの方が難しいだろ
はっきりいってきもい
フレームワーク多すぎ
0026デフォルトの名無しさん2007/01/12(金) 22:30:13
>>24
テンプレートってあれだろ、HaskellやらMLの多相型をショボくして更に使いにくくしたやつだろ
0027デフォルトの名無しさん2007/01/12(金) 22:32:19
ヌルポ
0028デフォルトの名無しさん2007/01/12(金) 22:35:21
まあそんな感じ。
このスレも、そこらへんを攻めてくれればぐうの音も出なかったのにと思う。
0029デフォルトの名無しさん2007/01/12(金) 22:36:13
>>6
初心者?
0030デフォルトの名無しさんNGNG?2BP(294)
モダンC++デザインとかいう本をよんでまったく理解できなくて、C++はあきらめた。
0031252007/01/12(金) 22:59:11
初心者の俺でもJAVA辛いのは分かる
その割りに遅いのに
0032デフォルトの名無しさん2007/01/12(金) 23:05:16
実際渡しは変わっていない。
オブジェクトのばやいポインタのコピーが渡されている。

>>31
MFC使ってみたら?
地獄はそこにある。
0033デフォルトの名無しさん2007/01/12(金) 23:13:33
このスレは「C++の真の地獄とは何か」を語るスレになりました。

C++0xになったらどうなってしまうのか
0034デフォルトの名無しさん2007/01/12(金) 23:16:54
きもさで語ったらC++の右に出る言語はない気がするんだが
0035252007/01/12(金) 23:20:38
>>32
それでも、MFCだけじゃん
0036デフォルトの名無しさん2007/01/12(金) 23:21:42
perlの芸術的変態コードは?
0037デフォルトの名無しさん2007/01/12(金) 23:22:37
CLIが一番きもいだろ
0038デフォルトの名無しさん2007/01/12(金) 23:31:09
Cはきもくない。
C++もあんまり。
きもいのはプリプロセッサだ。
0039デフォルトの名無しさん2007/01/12(金) 23:47:32
モヂラとか、
マルチプラットフォームをうたっているオプソのコードを見ると
やるせなさで一杯になる
0040デフォルトの名無しさん2007/01/12(金) 23:50:53
Javaは先頭にJのつく略語が多すぎる。
それだけでいやになる。
0041デフォルトの名無しさん2007/01/12(金) 23:55:42
だったら J やめて I にしたらいいじゃない。
0042デフォルトの名無しさん2007/01/13(土) 00:24:06
はきもく
0043デフォルトの名無しさん2007/01/13(土) 01:00:00
>>34
>きもさで語ったらC++の右に出る言語はない気がするんだが

それにも関わらず、大量に採用され使われ続けるだけの他の言語にはないパワーがC++には
あるわけだが。てか、C++マンセーな俺が言うのもなんなんだが、他にC++の代わりとなり
得るようなより良い言語があったらこんな言語とは一日も早く縁を切りたい。
0044デフォルトの名無しさん2007/01/13(土) 04:29:43
D
0045デフォルトの名無しさん2007/01/13(土) 07:14:25
C++はブサメンエリート
0046デフォルトの名無しさんNGNG?2BP(294)
>>43
俺の印象だと、それほど使われてない気がするが > C++
0047デフォルトの名無しさん2007/01/13(土) 11:04:23
惰性で使われているだけだろ。
かつてメインフレームでCOBOLが幅を利かせていたのと同じ。
別にCOBOLが他の言語にはない特別なパワーを秘めていたわけではない。
0048デフォルトの名無しさん2007/01/13(土) 12:13:28
どっちにしろC++人口が増えていくとは思えない。
PGは34歳が寿命らしいし。
0049デフォルトの名無しさん2007/01/13(土) 12:16:17
Javaは使ってるやつらがキモい
0050デフォルトの名無しさん2007/01/13(土) 12:21:08
Java使用者の増加はVBから流れ込んで来てるのか?
0051デフォルトの名無しさん2007/01/13(土) 12:22:10
>>48
やっぱり2038年問題大きくなりそうだよなぁ
0052デフォルトの名無しさん2007/01/13(土) 12:36:06
c#やったらJAVA使いたくない。
0053252007/01/13(土) 14:36:00
JAVA使いこなそうと思ったら時間かかり過ぎ
まあ、やるつもりだけど
周辺の機能(通信、データベース)を覚えるのが辛すぎ
0054デフォルトの名無しさん2007/01/13(土) 14:45:22
>>53
誤解しているようだが、テストじゃないから覚える必要ない。
使いたいとき使いたいところだけ調べるものだよ。

つかいこなすとはそういうこと。
0055252007/01/13(土) 15:26:07
でも、Webで通信するアプリ作ろうと思ったら必要だろ
0056デフォルトの名無しさん2007/01/13(土) 15:33:32
>>周辺の機能(通信、データベース)を覚えるのが辛すぎ
それいったら、どれも一緒じゃん。
俺的にはC++/CLI最強なんだが、駄目か?

0057デフォルトの名無しさん2007/01/13(土) 16:01:26
>>52
最初は天国だと思っていたけど、実際は.NETオワタレベル。

VS2005が糞な上、CLRの仮想関数呼び出しが遅すぎ。
C#は無駄な言語仕様でもっさり、所詮ゲイツ言語。
.NETなんて時間の無駄だったな。
0058デフォルトの名無しさん2007/01/13(土) 16:21:12
yutorisedai
0059デフォルトの名無しさん2007/01/13(土) 17:34:48
正直言ってC++やJavaから見ると、C#の匿名メソッドやコルーチンは羨ましい機能だ。
0060デフォルトの名無しさん2007/01/13(土) 18:41:40
C#イラネ
ジェネリックスもイラネ

Java1.5のころが一番楽しかった。
0061252007/01/13(土) 19:56:27
>>48
もしかして狙い目?
0062デフォルトの名無しさん2007/01/13(土) 20:12:09
>>59
>正直言ってC++やJavaから見ると、
>C#の匿名メソッドやコルーチンは羨ましい機能だ。 

たしか匿名メソッドって、
「こんな高度な機能は Java 厨には使いこなせないだろう」
ということで Java の言語仕様から外されたんだろ?w
0063デフォルトの名無しさん2007/01/13(土) 20:32:03
>>62
>「こんな高度な機能はJava厨には使いこなせないだろう」
>ということでJavaの言語仕様から外されたんだろ?w

Java って、そういうの多いよね。
0064デフォルトの名無しさん2007/01/13(土) 21:36:49
コルーチンって何?
0065デフォルトの名無しさん2007/01/13(土) 21:44:18
http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%AB%E3%83%BC%E3%83%81%E3%83%B3

まあ、この説明でわかる奴はもともと知ってるやつな気がするが...。
0066デフォルトの名無しさん2007/01/13(土) 21:49:44
Javaのばあいコルーチンとマルチスレッドはどういうふうに絡んでくるんだ?
想像しただけでキモ
0067デフォルトの名無しさん2007/01/13(土) 22:00:20
class::method()の::とstruct->paramの->に抵抗あり
0068デフォルトの名無しさん2007/01/13(土) 22:06:52
http://wisdom.sakura.ne.jp/programming/cs/cs2_8.html

クラス作るだけで十分じゃないのか?
0069デフォルトの名無しさん2007/01/13(土) 22:20:21
>>65
サンクス。
マルチスレッドみたいなものか。
0070デフォルトの名無しさん2007/01/13(土) 22:23:36
>>64
要するに、アプリが自力で
スレッドの切り替えをやる仕組み

OS がスレッドをサポートしない MS-DOS とかでは
よく使われていた。
0071デフォルトの名無しさん2007/01/13(土) 22:26:16
タスクシステムっぽい言い回しだな
0072デフォルトの名無しさん2007/01/13(土) 22:35:41
ちょっとまて。
Javaがコルーチンを導入しようとする理由は、なんちゃってマルチスレッドじゃなくて、
スクリプト言語で大流行のジェネレータを書きやすくするためじゃないの?
0073デフォルトの名無しさん2007/01/13(土) 22:40:28
なんか勘違いしてる奴がいるから例を出すと、コルーチンがあると無限の長さをもつフィボナッチ数列が
↓みたいな感じで分かりやすく書けたりするんだよ。

coroutine make_fibs()
{
 int n1, n2, tmp;
 yield n1 = 1;
 yield n2 = 1;
 while (true)
 {
  tmp = n1;
  n1 = n1 + n2;
  n2 = t;
  yield n1;
 }
}


fibs = make_fibs();
// nextは次の要素を取得するメソッド
fibs.next(); // 1
fibs.next(); // 1
fibs.next(); // 2
fibs.next(); // 3
fibs.next(); // 5
…
0074デフォルトの名無しさん2007/01/13(土) 22:51:17
あれば便利かもしれんがストラテジーパターンで十分だな
0075デフォルトの名無しさん2007/01/13(土) 22:53:24
>>73
>なんか勘違いしてる奴がいるから

勘違いしているのはお前だろ?
0076デフォルトの名無しさん2007/01/13(土) 23:05:03
>72
スクリプト言語で大流行のジェネレータを書きやすくするためじゃないの? 

え? Java がコルーチンを導入するのか?
俺が思うに、Java の設計者は、そんな "上っ面" だけの事情で
言語機能の根幹を揺るがすような変更はしないと思うが?
(漏れは Java 厨は嫌いだが、Java の設計者は尊敬している。
「どんな馬鹿でも使えるような言語」を作るのは
非常に意義のある高度な仕事だ)

逆に MS の中の人ならば、間違いなくやるだろうな(w
0077デフォルトの名無しさん2007/01/13(土) 23:13:13
コルーチンじゃなくてクロージャならse7で導入されることになっている
0078デフォルトの名無しさん2007/01/14(日) 00:58:36
いま Perl 6 の悪夢を思い出した
0079デフォルトの名無しさん2007/01/14(日) 03:31:49
まあ、確かにC++使ってるとどうしてもコード汚くなってイライラしてくるな。
0080デフォルトの名無しさん2007/01/14(日) 04:32:27
JAVAなんてキモいシープラシプラシでちゃんと書けないやつはうんこだ
0081デフォルトの名無しさん2007/01/14(日) 04:35:12
10年もやってるからPerlよりもきれいで短く書けるよ俺は
0082デフォルトの名無しさん2007/01/14(日) 10:51:44
>>81
Perl より汚く書くのは難しいんじゃないか?
0083デフォルトの名無しさん2007/01/14(日) 11:15:11
おれの知ってるPerl使いは、
「保守?ナニソレ?」みたいな、
ワンライナーばっかりだったけどな。
0084デフォルトの名無しさん2007/01/14(日) 12:03:18
簡単にJavaやってからC++やったら、
最初はとまどったけどテンプレートに感激した。
しばらくしたらJavaが子供用のおもちゃに見えた。
まあ初級者の戯言ですがね
0085デフォルトの名無しさん2007/01/14(日) 12:49:09
まあ、マクロとかテンプレとかってかぶれやすいからな。

Java は、危ないものを排除する方向で設計されてるから、
子供のおもちゃ (=安全設計) って言うのはあながち間
違ってない。

でも、要は使い方次第だと思う。ニンテンドー DS だって、
子供のおもちゃだったけど、今や立派な学習機器だった
りするし。(w

Java でも十分と言う仕事はいくらでもあるよ。

# 理由書かないで、言語けなしてる奴はその言語使えて
# ない奴だと思って間違いない。
0086デフォルトの名無しさん2007/01/14(日) 13:15:29
>>85
># 理由書かないで、言語けなしてる奴はその言語使えて 
># ない奴だと思って間違いない。 

理由書かないで、言語を持ち上げている奴は?
0087デフォルトの名無しさん2007/01/14(日) 15:12:17
JavaほどUML表記と一対一対応する言語はないと思うんだけどなぁ。
詳細設計を与えれば、どんな馬鹿でも対応するコードを記述できる点が評価できる。

C++、特に歴史の浅いC#は、まともな設計を行えないコーダーでしかない人が多いぞ。
ただ、C++はコードの記述次第で低レベルな所まで最適化が出来るお陰で、
実行効率を特に重視する分野での需要があることが幸いだが、C#は...
0088デフォルトの名無しさん2007/01/14(日) 16:35:05

>>84
>Javaが子供用のおもちゃに見えた。

その認識でいいと思うよ

料理人が自分で砥いだ包丁使うのと
主婦が気軽にフードプロセッサ使うのとの違い


>>86
> >>85
> ># 理由書かないで、言語けなしてる奴はその言語使えて
> ># ない奴だと思って間違いない。
>
>理由書かないで、言語を持ち上げている奴は?

その言語しか使えない香具師


>>87

それはVBからの乗り換え組が多いからでは

0089デフォルトの名無しさん2007/01/14(日) 16:57:35
>その認識でいいと思うよ
>
>料理人が自分で砥いだ包丁使うのと
>主婦が気軽にフードプロセッサ使うのとの違い

何時になったら、公道(=ほとんどの案件)をレーシングカーで走る無意味さを理解できるのだろうかねぇ。

0090デフォルトの名無しさん2007/01/14(日) 17:16:28
>>89
お前、全然わかってねぇよ。公道もレーシングカーでカッ飛ばすのは当たり前だろうが!
近所のコンビニにレーシングカーで行く、俺、超最高!
0091デフォルトの名無しさん2007/01/14(日) 17:26:24
>>89
>何時になったら、公道(=ほとんどの案件)をレーシングカーで走る無意味さを理解できるのだろうかねぇ。 

そう言って、結局、何時までたってもレーシングカーの運転技術を
身に着けることが出来なかった人を何人も見ているのですが・・・
0092デフォルトの名無しさん2007/01/14(日) 17:28:29
>>90
マジレスすると、30km以上のスピード違反は刑事罰(6ヶ月以下の懲役刑)の対象だぞ
0093デフォルトの名無しさん2007/01/14(日) 17:38:14
>>92
ヘッ、ノロマなポリ公に俺様が捕まるわけねぇだろ!
0094デフォルトの名無しさん2007/01/14(日) 17:40:06
>>86, >>88
別に持ち上げてないけど?

なんか、書いてないことが見える人達なのかな? (w

ちなみにこれは、「事実」だから。
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
> Java でも十分と言う仕事はいくらでもあるよ。
0095デフォルトの名無しさん2007/01/14(日) 17:46:19
>>94
お前、自意識過剰。誰もお前のことなんか言ってないと思うぞ。
0096デフォルトの名無しさん2007/01/14(日) 17:48:45
そのとおり。

皆があげつらっているのは >>94 じゃなくて >>95 のことだ。
安心しろ。
0097デフォルトの名無しさん2007/01/14(日) 17:53:27
言語に宗教持ち込む奴は所詮その程度ということだ。
しかしどの言語にしろassertベースの実装する奴が少ないな
JUnitの類は事後条件しかチェックしないから、品質に信用ならない
0098デフォルトの名無しさん2007/01/14(日) 17:57:58
C++の人なんかカコイイ
0099デフォルトの名無しさん2007/01/14(日) 18:02:50
C++人は感情論だけで論理的な反論も出来ないのか。
落ちぶれたものだな。
0100デフォルトの名無しさん2007/01/14(日) 18:16:10
>>99
いや、いまさら、当たり前のこと(C++の優位性)をうだうだ主張するのはバカじゃん。
0101デフォルトの名無しさん2007/01/14(日) 18:18:08
たしかに100はバカだな、否定はせん
0102デフォルトの名無しさん2007/01/14(日) 18:22:19
>>99
「きもく感じる」に論理的な反論って...、頭大丈夫?
0103デフォルトの名無しさん2007/01/14(日) 18:27:16
サーキットをヴィッツで走るくらい無意味だな
0104デフォルトの名無しさん2007/01/14(日) 18:27:19
C++はchar*とかchar*&とかスタイルが統一されてなくてキモイ
&の場合はNULLチェックは要らないという認識があるせいで、*&みたいな時はしない奴が続出
delete foo; foo = NULL;がセットなってないためそれだけでもバグりまくり

C++使って得たことは、コーディング規約はバカ抑制装置にならないってことだけ。
0105デフォルトの名無しさん2007/01/14(日) 18:42:38
>>102
コレまでの内容理解できてますか?頭大丈夫?
と言いたい所だが、このタイトルでは1に釣られた希ガス。

ただ、コスト面から海外への外注で国内のコーダーは消滅しかけている今、
実装する言語がどうのこうの言う時代は終わったような気がしないでもない。

ただ単に趣味の為だけにやるなら好きな方を選べって感じだしな。
0106デフォルトの名無しさん2007/01/14(日) 18:53:17
>>104
>C++はchar*とかchar*&とかスタイルが統一されてなくてキモイ

お前、それ前者と後者で意味が違うから。それを言うなら const だろ。
const char * でも char const * でも意味が同じって、なにそれ?って感じ。
0107デフォルトの名無しさん2007/01/14(日) 19:02:42
>>106
バカはすっこんでろ
0108デフォルトの名無しさん2007/01/14(日) 19:53:48
>>104みたいな生半可な理解ではC++は使いこなせんだろ。

Javaだって、生の配列の扱いは気持ち悪い。
多次元配列のnewやら、派生型の代入やらで
構文と意味が破たんしてる。
■ このスレッドは過去ログ倉庫に格納されています