【肥大化】C++ を見捨てたヤシ 2人目【複雑化】

■ このスレッドは過去ログ倉庫に格納されています
2008/05/17(土) 21:07:51
前スレ
http://pc11.2ch.net/test/read.cgi/tech/1201567967/
215デフォルトの名無しさん
垢版 |
2008/05/26(月) 21:05:46
>>213
知らないことを知らないというのは恥ずかしいことじゃない
2008/05/26(月) 21:11:43
>>214
アプリケーションが対応していなくても、OSは対応してるだろ
OSが対応していれば、アプリケーションを適切なプロセッサに割り当てることが出来るということだ
すなわち、VirtualPCの様なソフトでも、プロセッサ(コア)数が増えれば、その分、沢山の仮想PCを起動することが出来るということだ
2008/05/26(月) 21:17:25
なんだ、スレッド一本のアプリを並列に分散させるOSがあるというのかと思ったら、アプリを複数立ち上げる話か。
2008/05/26(月) 21:17:44
>>216
皆さん、その程度のことは分かった上で話されてる様でしたが。
2008/05/26(月) 21:28:17
>>218
そっか?
2008/05/26(月) 21:29:38
>>215
そっか?
2008/05/26(月) 21:32:11
タスクマネージャ見たら200くらいスレッド立ってるんだが。
2008/05/26(月) 21:33:02
SMPは速いんじゃなく重くならないって昔から言うだろ。
2008/05/26(月) 21:33:58
>>219
そうです。

一例としてですが、
「マルチコア ゲーム」でググってみると良いかと。
2008/05/26(月) 21:35:32
問題分けて考えなさい
マルチタスク、マルチスレッドのOSの場合、kernelがスレッドを適切に
コアに割りふる限り、「ユーザは」マルチコアの恩恵を受けられるよ

ただ、「あんたのプログラム」をコア数に応じてスケールさせたければ、
「あんたのプログラム」がシングルスレッドじゃダメなの
「あんたのプログラム」のためにコア一個しか使われないからね

わかったかな
2008/05/26(月) 21:42:12
>>224
難しい話をしても、理解できないやつが居るからだめだよ
最低限>>216の話を理解してからじゃないと、その話は理解されないよ

そもそも、クラスとインスタンスの差すら分かってないやつがいるんだし
2008/05/26(月) 21:44:26
>>225
いや多分分かってないのは君だけじゃないかな
2008/05/26(月) 21:48:09
>>224
バカだなぁ、プロセッサ数が増えれば、その分、相対的にライバルが減るから
「俺のプログラム」がプロセッサを占有できる確率が増えるじゃないか
2008/05/26(月) 21:49:17
レンタカーが二台
2008/05/26(月) 21:52:40
一人を切断して乗せたら二倍の速さで運べるのね
2008/05/26(月) 21:54:07
>>227
それだけだと、コア数の分だけ綺麗にスケールしないの
コア一個100%占有しちゃったら、それが限界なわけだから

重い計算をやってるプログラムが、瞬間的にCPU99%とか使うケースはよくあるでしょ?
そういうプログラムがシングルスレッドである限りは、コア数増やしても
ちっとも軽くならんわけだ
231230
垢版 |
2008/05/26(月) 21:55:51
ちょっと言い方に語弊があったか
>ちっとも軽くならんわけだ

他のコアは空いてるから、ユーザにとっての快適さは勿論違う
が、そのプログラムの実行速度は全く改善されない、という話ね

つうか、何でこんなド素人向けの解説せにゃならんのだ
2008/05/26(月) 22:02:30

おかえり

自演乙

2008/05/26(月) 22:05:54
>>231
シングルプロセッサシステムとマルチプロセッサシステムで、バックで走るタスク数が違うならともかく
同じOSであれば、同程度のタスク数になるから、プロセッサの性能が同程度である場合、マルチプロセッサシステムの方が少しだけ実行速度が速くなる
2008/05/26(月) 22:36:08
少しだけね。でも効果はあっても2コアまでで、3コア以上ではほとんど差はでないだろう。
2008/05/26(月) 23:37:38
>>234
バックグランドタスクの数は、プロセッサ数で変わるわけじゃないよ
バックグランドタスクの数は、コンピューター利用者が決めるんだよ
プロセッサあたりのタスク数は、「タスク数/プロセッサ数」になるから、プロセッサ数が多くなれば
1コアを利用するだけのプログラムは、その分速くなるよ
その差が大きいとは言わないけどな

3万円のプロセッサを2個使わないといけない時代の考え方なんて捨てちゃいなよ
今じゃ、3万円のプロセッサ1個で、プロセッサ4個分の活躍するんだぞ、もっと気軽に考えなよ
2008/05/27(火) 00:02:40
OSのバックグランド分なんか数%にも満たないのにな。
1スレッドのアプリなんか1コアでも4コアで処理時間一緒なのに4個分の活躍といわれてもなぁ
2008/05/27(火) 08:19:36
動画エンコしながらゲームすればOK
2008/05/27(火) 08:28:41
軽さの面では脳トン隔離できるだけでぜんぜん違うだろ
2008/05/27(火) 18:50:42
>>236
コアが4個あったら、てめーの作った糞プログラムが3つコアを占有しても、まだゲームできるんだぜ
逆にてめーが、気を使って、マルチプロセッサ対応にした糞プログラムでコアをあるだけ占有したら、後は何にも出来ないんだぜ
2008/05/27(火) 19:09:55
>>239
占有することの是非はともかく、
マルチコアは占有させないために有るわけじゃないから。

コア数に関係無く、CPUリソースを過剰に使うバックグラウンドプロセスは迷惑だし、
4コアのときに他のゲームの1/4しかパフォーマンスが出ないゲームも困る。

このスレの初めの方から出てる話題は高効率の話。
2008/05/27(火) 19:49:28
>>240
マルチプロセッサは、CPUを占有させないための技術ですから
2008/05/27(火) 19:57:45
え!?
単にクロックアップが限界に近づいたから、数で稼ごうとしてるだけでは。
2008/05/27(火) 20:09:14
>>241
違う。
ハイエンドのサーバや、
リアルタイム性を必要とする組み込みで、
そういう問題はスケジューラで解決すべき問題。

一般のPCでは、単にクロックを上げるコスト&リーク電流の問題で、
マルチコアに移行してるだけ。
2008/05/27(火) 20:12:39
文脈が繋がってない。
2008/05/27(火) 20:13:27
具体的にどうぞ。
2008/05/27(火) 20:16:26
>>243
ばーかちげーよ
ピーク速度を上げるアプローチは、すでに限界だから、平均速度を上げるアプローチに切り替えたんだよ
プログラムをマルチスレッドに対応させたからって、2コアのCPUで2倍の速度を得られるわけじゃない
コンビニのレジが2つあるからといって、1人の買い物を2つのレジで会計したからといって2倍の速度で終わるわけじゃないのと同じこと

2008/05/27(火) 20:19:20
>>246
二人組の客で買いに行って、
2つのレジを使って半分ずつ会計したら早いんじゃね?
2008/05/27(火) 20:24:13
>>246
単純に2倍にならないのは当然。
CPUの平均速度とか聞いたこと無いのでソース下さい。
2008/05/27(火) 20:54:41
>>248
つおたふくソース
2008/05/27(火) 21:01:43
>>248
つ碇
2008/05/27(火) 21:11:45
>>248
つSony
2008/05/27(火) 21:43:45
っ 李錦記
2008/05/29(木) 18:11:45
>>241 現実はあなたの言うとおり、しかしそんなことがあってはいけない。本来OSの仕事だ。
2008/05/29(木) 21:57:24
>>253
ちげーよ
CPUを効率よく運用するのがOSの仕事だよ
2008/05/29(木) 22:03:56
いつまで脳内ソースをばら撒くつもりだろうか・・・
2008/05/29(木) 22:08:03
>>254 そういっているじゃねーかバーカ
2008/05/29(木) 23:13:51
>>241
違うな。
マルチプロセッサは計算能力を上げるための技術。
ただ、世の中にはマルチプロセッサを活用できないソフトであふれてるだけ。占有させないのではなく占有させられないだけ。
2008/05/30(金) 00:58:45
例えスレ違いとわかっていても書き込み続ける。その心意気よくわかります
2008/05/30(金) 00:59:30
>>257
プロセッサ分、マルチプロセッサを活用できないソフトを集めれば良いんじゃないのか?
少なくとも、OSは適切にタスクを振り分けるんだしな

>>256
バカはお前だバーカ
2008/05/30(金) 07:41:46
VSのコンパイラはコアの数だけスレ立てるよ
2008/06/02(月) 13:16:41
質の低いレスに反応してもいいことはありませんよ。
2008/06/02(月) 23:45:56
「cout <<〜<<endl」って、何をインクルードすれば使える?
2008/06/02(月) 23:48:35
iostream
2008/06/02(月) 23:55:42
#include <stdio.h>
#include <iostream>

int main(void){
cout <<"Hello,world!"<<endl;
return 0;
}

これでcoutとendlが定義されてないって言われるのはなぜ?
2008/06/02(月) 23:57:53
本当は
std::cout
std::endl
だから

std::を省略したいなら
using namespace std;
をソースに足さなきゃならないよ
2008/06/03(火) 00:03:35
何でこのスレで聞くんだよw
相談室とかあるだろw
2008/06/03(火) 00:19:01
俺の見てた一覧でC++の単語が入ってたのでつい聞いてしまった
親切にありがとう。おかげで解決しました
2008/06/03(火) 10:21:43
拡張子が.cでした。
2008/06/03(火) 12:40:56
ワラタwwwww
2008/06/06(金) 22:27:03
肥大化しても、必要な部分(機能)だけ使ってればいいじゃないの?
2008/06/06(金) 22:31:41
いいじゃないから皆困ってる
2008/06/06(金) 23:44:16
確かにC++の複雑さに困っている人はいるのだろう
でもその人たちは他の言語では困らないの?
どの辺が境界なんだろう?
分母の差か?
2008/06/06(金) 23:59:41
一つだけ突出してるから境界もクソも無いわな
2008/06/07(土) 00:03:57
でもケーニッヒルックアップだけでしょう?
2008/06/07(土) 00:07:16
俺はすべての元凶はC++そのものじゃなくてプリプロセッサだと思ってる
2008/06/07(土) 00:48:19
>>272
肥大化するのは別にかまわないんだが、その都度「変態的」な
構文が追加されていってるのが問題なんじゃあるまいか?

lisp あたりはどんなに言語拡張しても基本は S 式で何とか
なってるじゃん
2008/06/07(土) 06:19:37
>>272
少なくとも、言語仕様レベルで
深入りしないようにしようという判断をした(テンプレート周りだが)のはC++が初めてだ。

普通にコードを書くのにEffectiveほにゃららの通読必須ってあたりで何か狂ってるんですよ。
ゲーム屋だけど、本当に代わりがないから使ってるに過ぎない。
2008/06/07(土) 10:07:44
>少なくとも、言語仕様レベルで
>深入りしないようにしようという判断を
>
>ゲーム屋だけど、本当に代わりがないから

深入りしなかったおかげでC++も使えるんだろ。
言語が今以上に複雑でコンパイラの実装が困難だったら
まともなサポートが得られず、
単に、C言語だけが選択肢になる。


言語の複雑さが仇になるのは、
主にアホが書いたソースをメンテするケース。
まともなメンバーで作る分には問題無い。
2008/06/07(土) 10:27:03
そして、そこでいう「アホ」程度ならそこら中にいるので、
つまりC++の複雑さはそこら中で「仇になる」わけだ。
2008/06/07(土) 10:29:22
>>272
分母の差かどうか知らんが、色々と選択してC++が最適だと思うケースに
C++を使う言うだけだと思うが。困ると言うよりかは要求に答えてくれるか?ってのが
重要だろうに。

漏れの職場だと自分だけの書きなぐり使い捨て速度はそれほど必要ないケースだと
Python使うし、ある程度みんなが使ったりメンテが重要だったりするケースはJavaで、
変態的(?)かつ、動作環境べったりでパフォーマンスが要求されるときにC++って
使い分けてる。
2008/06/07(土) 10:30:16
アホばかりの会社の問題を言語の問題にしたいわけですね、わかります。
282281
垢版 |
2008/06/07(土) 10:31:38
>>279
2008/06/07(土) 10:44:29
>>282
現実にそこら中にいるのだから、
「会社の問題であって言語の問題ではないんだァ!」
とか押してもね。

1万人に1人が怪我をする道具で怪我をしたなら、流れ的にそいつの不注意とか不運の問題になるけど、
これがたとえば3人に1人が怪我をするとなると、この道具危ないよねっていう問題になってくる。

君個人が有能だったり、とても優れた職場しか知らずその辺りが当たり前だと思って生きてるなら、
それは素晴らしいことだし、ずっと続くことを祈るけど、その場合残念ながら、君は
「現実を全般的に捉えた話のできない人」ということになる。恵まれすぎている。
2008/06/07(土) 10:57:04
>3人に1人が
IT土方乙w
2008/06/07(土) 11:15:01
いや、たとえの数字に食いつかれてもなぁ・・・。
ていうかなんでそんな目ぇ血走らせてるの? 休日の朝から。
2008/06/07(土) 11:16:03
>>283
教習所にも行かせずに自動車使わせているようなものだな。
教育も何もせず、新人をいきなり実務に入れてそうだ。客も可哀想だ。

それにC++に向いてない奴は他の言語の仕事に、
プログラムに向いてない奴は資料作成/客先対応/
テスト/サポートデスクなどの仕事に回すことも考えるべき。

単にお前さんが悲惨職場しか知らないんだろう。
そんなに問題のある言語なら、これほど広まることもない。
2008/06/07(土) 11:16:19
今時(?)C++を使うのは「神に選ばれた戦士」的な思い込みがあるのかもしれんが、
現場のPGなんてほとんどドカタだからなぁ。

まあ、とは言え言語の性にするのは美しくないけどな。
やっぱりアホが書いたソースならVBだろうがCOBOLだろうがイヤなモンはイヤだし。
2008/06/07(土) 11:17:14
>>285
>ていうかなんでそんな目ぇ血走らせてるの? 休日の朝から。
自分がそうだからといって、相手もそうだと思わない方がいいぞw
2008/06/07(土) 11:19:06
>そんなに問題のある言語なら、これほど広まることもない。

広まっていないと思うが。
2008/06/07(土) 11:27:35
>>285
察してやれよ。休日の広いフロアーに一人は寂しいぞ。
2008/06/07(土) 11:29:36
Joelの言ってる「5つの世界」でソフトウェアに対する要求も
プログラマの質も随分違うと思う
ttp://japanese.joelonsoftware.com/Articles/FiveWorlds.html

日本だと一番C++が使われてるのって何だ。フリーソフトとゲームか?

昔ならCOBOLやVB、今ならWebやってるような
土方の現場には、そりゃC++なんて要らないでしょ
2008/06/07(土) 11:45:40
数で言うならC++はフリーソフトとかゲームだろうなぁ。

デバドラとかハードべったりの専用ソフトの現場もC++が普及しているけど、
これもドカタじゃないとか言うのは違うと思うが。
2008/06/07(土) 11:52:11
むしろハード屋さんはCかと思ってた

ゲームみたいに抽象度と複雑性が高い上に性能要求も高い分野で
他に適当な選択が無いからC++なのかな、と

まあ日本にも商用パッケージ一応あるけどな
社内以外で誰も使ってないRDBとかw
2008/06/07(土) 12:19:58
HiRDBだったっけか?
日立に仕事たのむとHP-UXにOracleを納品してくると言うプライドの無さが
ステキだった印象しかないんだが。

伝え聞くところによるとあのドライバの出来の悪さは特筆モノだったようだが。
まあ、これこそドカタが作った見本なのかもしれん。
2008/06/07(土) 15:47:27
3人に1人が怪我をする様な機械なんて、普通にあるじゃん
自動車なんて、その筆頭だろう
2008/06/07(土) 16:06:43
またたとえの数字に物言う馬鹿が出た。
2008/06/07(土) 16:55:15
例えになってないから突っ込まれる

それに、ボケられたら突っ込まなくちゃ、ボケた相手に失礼だし
2008/06/07(土) 17:16:37
の割には、まったく突っ込みになってないからなぁ。
新たなボケのつもりなら超つまらないし。
2008/06/07(土) 17:23:51
自動車のたとえを持ち出すなら、
あっちの自動車(C++)とこっちの自動車(他言語)の事故発生率が
まるで違う、前者の事故多すぎ、というのが、この話への正しい当てはめ方だからな。
>>295が「例えになってないから突っ込まれた」例だよね。
2008/06/07(土) 17:26:48
C++ を仕事で使うのに免許を必要として欲しい。
2008/06/07(土) 17:47:28
>>299
例えがかわっとるw
元の例えに近づけるなら
「四輪車は転ばないから安全、しかし、二輪車は転ぶから危ない」
だろw
2008/06/07(土) 18:23:00
>>301
いいえ。
2008/06/07(土) 18:42:10
>>283
優秀な人材だけが集まる企業なんて無い
ぼんくらを優秀な人材にする企業は有る

優秀な人材をぼんくらにする企業が大多数だけどな
2008/06/07(土) 21:53:46
他の言語というのはJavaなんかを念頭に置いてる?
Javaはきれいですか?肥大してませんか?
D?
Dはまぁ悪くないか
でも小さいとはいえないな
2008/06/07(土) 22:17:01
新しい言語が単純なのは当たり前

C++ は D&E を読めば少しは簡単に感じるようになるよ。
なぜそのように設計をしたかを詳しく説明しているから。
2008/06/07(土) 22:27:30
Javaは型のパラメタ化が不十分だからリフレクションとダウンキャストのカオスが必要なんだよな
2008/06/07(土) 22:53:00
>>305
世の中には良い言語設計者と悪い言語設計者がいるのだよ。
どれだけ後から言い訳の本を出しても埋まらない溝がある。
2008/06/07(土) 22:54:06
そういえば C++ のクロージャの構文ってどんなだったっけ?
2008/06/07(土) 22:57:10
>>307
言い訳とかいってる時点で読んでないのが丸わかり。
あるいは、自分が受け入れたくない理由のことを言い訳と言うんだ、と思ってるお馬鹿さんか。
2008/06/07(土) 23:20:18
どんな本を書いても設計が悪いのが覆るわけじゃないからな
敗者の弁なんて誰も読みたくないだろ
2008/06/07(土) 23:25:35
D&Eが出たのは'94年だしもっと古い文献を引用しているよ。
こんなに古いのにJavaの特徴に否定的なのは面白いな。
2008/06/07(土) 23:26:01
それだから人間また同じ失敗を繰り返す。
失敗談から学ぶのもいいじゃないか。
2008/06/07(土) 23:26:51
>>305
>D&E を読めば

C++ を必死に勧める人間はいつもこう言うね。
攻略本を読まないと面白さが分からないゲーム
みたいでアホらしい。まあこの場合は攻略本を
読んでも全く面白味がない訳だが。
2008/06/07(土) 23:29:21
C++の設計が悪いと言う人が想定している設計が良い言語とはなんなんだ
ほんとはC++のどこが悪いのかもわかってないんでしょ?
多分C++以外の言語も理解できないんでしょ?
■ このスレッドは過去ログ倉庫に格納されています