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

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2007/01/10(水) 19:07:35
なにこれ。
int(100)とかだっさー(笑)int&なんてきんもーっ★って感じなんだけど。
標準で使えるスレッドもないしさ。バッドノウハウだらけの
使えない気持ち悪い言語だよなこれ。前時代の人たちはほんとにこんなモノで開発してたのか。
マジご愁傷様です。
C99のほうがまだ拡張性が高くていい感じになってるのが皮肉だね。
0002デフォルトの名無しさん2007/01/10(水) 19:25:25
2
0003デフォルトの名無しさん2007/01/10(水) 20:53:38
理解できないなら素直に聞けるようになった方がいいと思うよ。
0004デフォルトの名無しさん2007/01/10(水) 21:00:31
パラダイムシフトに飲み込まれないための言語というものもある
C++もそうだしSQLだってその手のものだ、
汚く拡張されても使い続けられるという恩恵はデカイ。
0005デフォルトの名無しさん2007/01/10(水) 21:54:42
int&なんてテンプレートやマクロに比べればなんともない。
0006デフォルトの名無しさん2007/01/11(木) 00:19:18
C++先にやった人間としてはクラス型かプリミティブ型かで参照渡しか実体渡しか変わるほうがよっぽどキモいけどな。
>>1もC++である程度の規模のアプリを実際に書いてみるとC++のほうが余程直感的なことに気づくんじゃないかね。

まあABI互換性とかでウザいのは同意だがね。
0007デフォルトの名無しさん2007/01/11(木) 02:04:45
OSの都合とかコンパイラの実装仕様まで面倒みてやるのは確かにウザいな
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
># 理由書かないで、言語けなしてる奴はその言語使えて 
># ない奴だと思って間違いない。 

理由書かないで、言語を持ち上げている奴は?
■ このスレッドは過去ログ倉庫に格納されています