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

C++ってなんであんなに肥大化しちゃったの?

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2008/08/28(木) 14:48:15
仕様が大きすぎるくせに、
実用的なライブラリが未整備。

なんかいらいらしない?
こんなこともできないくせに、
なんでこんな仕様ばっかり作るんだよって。
C++ってなんであんなに肥大化しちゃったの?
名前: 仕様書無しさん
E-mail:
内容:
仕様が大きすぎるくせに、
実用的なライブラリが未整備。

なんかいらいらしない?
こんなこともできないくせに、
なんでこんな仕様ばっかり作るんだよって。

C++はなんでもできます。でもなんにもできてないので
つくってね。的な。
0002デフォルトの名無しさん2008/08/28(木) 14:49:56
C++0xに期待っ(決めっ!)
0003デフォルトの名無しさん2008/08/28(木) 14:51:00
あぁ。なんか変なコピペが入っちゃったw
0004デフォルトの名無しさん2008/08/28(木) 15:01:31
wikipediaのC++0xのページ読んで
吐き気がしてきたw

最近、実践用の言語と勉強用の言語の違いが
わかってきたな。勉強用言語って言語仕様の説明に
内部実装の説明が頻繁に出てくるんだよ。

C++というPerlといい。
0005デフォルトの名無しさん2008/08/28(木) 16:40:39
必要とされるものを追加した結果だろ。
未踏叩き厨によればw
0006デフォルトの名無しさん2008/08/28(木) 21:52:09
読んだことないならC++の設計と進化をぜひ。
そういう仕様になった理由がいろいろ書いてあって、同情できる。
だからと言って、C++が良くなるわけではないけれど。
0007デフォルトの名無しさん2008/08/28(木) 21:55:36
Unix原典とかねw
役には立たないけど怒りを抑える効果はある
0008デフォルトの名無しさん2008/08/29(金) 06:07:18
MS-DOSのTurbo C++ 3.0のころが
一番素直だった。

あるのはクラスと継承とカプセル化程度。
例外はない。STLはない。当然Boostなんてものもない。
きわめてシンプルなオブジェクト指向言語だった。
0009デフォルトの名無しさん2008/08/29(金) 08:34:48
C++が無かったら他の言語のコンパイラやインタプリタの作成も不可能になる
0010デフォルトの名無しさん2008/08/29(金) 09:33:50
>>9
Cがあるって言い返されちゃう。
0011デフォルトの名無しさん2008/08/29(金) 10:17:32
>>4
C++は勉強用の言語じゃない。超実務用。職人用の道具みたいなもん。
Stroustrup氏がはっきりそう言い切ってる。
0012デフォルトの名無しさん2008/08/29(金) 13:15:28
C++が無かったらWindowsも無くなっちゃうな。
0013デフォルトの名無しさん2008/08/29(金) 21:07:39
巨大なクラスライブラリがくっついてくるJavaとかC#に比べると
むしろ機能が足りなさすぎるんだが。
この程度でどこが肥大化って感じるんだ?
0014デフォルトの名無しさん2008/08/29(金) 22:54:11
そしてJavaもC#も結局C++で書かれてるんだよね。
0015デフォルトの名無しさん2008/08/31(日) 03:20:29
まともな C++ の参考書の厚さは異常。
逆に言うと、薄い参考書は当てにならない。
0016デフォルトの名無しさん2008/09/08(月) 06:16:18
コーヒーブレーク
http://www.youtube.com/v/8GaivisdRqo, 01:33,[KORG DS-10]はじめてのシンセサイザー第1日目「PITCH(ピッチ)」
http://www.youtube.com/v/dmmriw96UHU, 03:02,[KORG DS-10]はじめてのシンセサイザー第2日目「VCO」
http://www.youtube.com/v/uy--pllBniQ, 03:02,[KORG DS-10]はじめてのシンセサイザー第2日目「VCO」(修整版)
http://www.youtube.com/v/3nowLPRgoTI, 02:23,[KORG DS-10]はじめてのシンセサイザー第3日目「VCF」
http://www.youtube.com/v/pANHFXO2Ll0, 02:23,[KORG DS-10]はじめてのシンセサイザー第3日目「VCF」(修整版)
http://www.youtube.com/v/ldtIbmQvzyU, 03:43,[KORG DS-10]はじめてのシンセサイザー第4日目「EG(エンベロープジェネレータ)」
http://www.youtube.com/v/ofG_DTCp434, 04:27,[KORG DS-10]はじめてのシンセサイザー第5日目「EGエピソード2」
http://www.youtube.com/v/atpRE1xmdS8, 07:09,[KORG DS-10]はじめてのシンセサイザー第6日目「VCA」
http://www.youtube.com/v/Znn0_DyAmt4, 03:58,[KORG DS-10]はじめてじゃないシンセサイザー第1日目「PATCH(パッチ)」
http://www.youtube.com/v/q-Uu8_rU2XE, 04:24,[KORG DS-10]はじめてじゃないシンセサイザー第2日目「PATCH その2」
http://www.youtube.com/v/2bJYmIDWrqY, 05:16,[KORG DS-10]はじめてのシーケンサー
http://www.youtube.com/v/Usjy626gQYQ, 05:21,[KORG DS-10]はじめてのシーケンサー(修正版)
0017デフォルトの名無しさん2008/09/08(月) 06:19:17
修正コーヒーブレーク
http://www.youtube.com/v/8GaivisdRqo ,01:33,[KORG DS-10]はじめてのシンセサイザー第1日目「PITCH(ピッチ)」
http://www.youtube.com/v/dmmriw96UHU ,03:02,[KORG DS-10]はじめてのシンセサイザー第2日目「VCO」
http://www.youtube.com/v/uy--pllBniQ ,03:02,[KORG DS-10]はじめてのシンセサイザー第2日目「VCO」(修整版)
http://www.youtube.com/v/3nowLPRgoTI ,02:23,[KORG DS-10]はじめてのシンセサイザー第3日目「VCF」
http://www.youtube.com/v/pANHFXO2Ll0 ,02:23,[KORG DS-10]はじめてのシンセサイザー第3日目「VCF」(修整版)
http://www.youtube.com/v/ldtIbmQvzyU ,03:43,[KORG DS-10]はじめてのシンセサイザー第4日目「EG(エンベロープジェネレータ)」
http://www.youtube.com/v/ofG_DTCp434 ,04:27,[KORG DS-10]はじめてのシンセサイザー第5日目「EGエピソード2」
http://www.youtube.com/v/atpRE1xmdS8 ,07:09,[KORG DS-10]はじめてのシンセサイザー第6日目「VCA」
http://www.youtube.com/v/Znn0_DyAmt4 ,03:58,[KORG DS-10]はじめてじゃないシンセサイザー第1日目「PATCH(パッチ)」
http://www.youtube.com/v/q-Uu8_rU2XE ,04:24,[KORG DS-10]はじめてじゃないシンセサイザー第2日目「PATCH その2」
http://www.youtube.com/v/2bJYmIDWrqY ,05:16,[KORG DS-10]はじめてのシーケンサー
http://www.youtube.com/v/Usjy626gQYQ ,05:21,[KORG DS-10]はじめてのシーケンサー(修正版)
0018デフォルトの名無しさん2008/09/08(月) 09:29:21
>実用的なライブラリが未整備。

独自仕様で90%のパソコンで動くライブラリと、その後から出来た
標準規格で誰も使いたくないクソ設計のライブラリがある。
0019デフォルトの名無しさん2008/09/08(月) 11:28:58
>>18
実用的なライブラリが未整備って事じゃん
0020デフォルトの名無しさん2008/09/08(月) 15:07:06
でも C++ を使うのは面白いよー。
BASIC から C 飛ばしていきなり C++ に行ったけど
こんな面白い言語は他にないよー。ひゃっはー。
0021デフォルトの名無しさん2008/09/08(月) 17:34:03
boostのmplやマクロを多用して何言語がよくわからない事をするのが楽しそうですね
0022デフォルトの名無しさん2008/09/08(月) 21:43:19
C++の実用ライブラリなんていくらでもあるじゃん。
たんに知らないだけだろ。
0023デフォルトの名無しさん2008/09/09(火) 11:31:48
javaだのC#みたく標準ライブラリじゃなきゃわかりません><
てことだろ。
0024デフォルトの名無しさん2008/09/09(火) 13:40:20
javaもGUIは標準じゃないだろ。いや、標準じゃないものを使うのが当たり前になっているのかも知らんが。
0025デフォルトの名無しさん2008/09/09(火) 14:22:15
AWTって標準じゃないの?
0026デフォルトの名無しさん2008/09/09(火) 16:59:15
iostreamの気持ち悪さは以上
0027デフォルトの名無しさん2008/09/09(火) 18:57:54
>>22
実用的なライブラリが未整備って事じゃん
0028デフォルトの名無しさん2008/09/09(火) 19:06:29
例えば、どんなライブラリが欲しいのかしら?
0029デフォルトの名無しさん2008/09/09(火) 19:20:22
メモリリークせず、バッファオーバーランせず、スレッドセーフで、ドキュメントが充実していて
3ステップ以内で大抵のやりたい事ができて、高速で、導入の手間が掛からず
移植性に優れていて、十分に枯れている

そんな実用的なライブラリが欲しいです
0030デフォルトの名無しさん2008/09/09(火) 19:24:20
スレッドセーフじゃないのはもうあきらめるしか。
C#でどうですか?
0031デフォルトの名無しさん2008/09/09(火) 20:24:54
しーぷらぷらしーえるあい
0032デフォルトの名無しさん2008/09/09(火) 20:29:29
>>26
あれでも、昔の仕様よりゃかなりマシになってんだぞw
0033デフォルトの名無しさん2008/09/09(火) 20:54:55
iostreamはC++の"入門書"で真っ先に出てくるのが
今思い返すとウザかったなぁ・・・・。
<<演算子のオーバーロードとか、「C++自体がそういう文法」だと錯覚させられた。
0034デフォルトの名無しさん2008/09/09(火) 22:12:18
C#なんかは言語よりもランタイムのリフレクションやコード動的生成の機能に頼る方向だよね
0035デフォルトの名無しさん2008/09/10(水) 17:26:47
びよ〜んすとらうすとらっぷ
0036デフォルトの名無しさん2008/09/10(水) 17:55:18
>>34
だってJavaモドキだもん
0037デフォルトの名無しさん2008/09/10(水) 19:01:35
>>29
ライブラリの範疇超えた要求だしなぁ。
0038デフォルトの名無しさん2008/09/10(水) 19:46:56
>>37の定義するライブラリの範疇って何よ
0039デフォルトの名無しさん2008/09/13(土) 11:37:20
クラスとSTLの相性の悪さが・・・

クラスの中でSTLを使うってだけならいいんだが、
設計そのものに適用しようとするともうぐちゃぐちゃ
0040デフォルトの名無しさん2008/09/13(土) 11:57:25
んなことねーべ
STLの根幹であるコンセプトってのはオブジェクト指向の根底にもあるもんだし
0041デフォルトの名無しさん2008/09/13(土) 12:20:50
>>39
あんたがSTLを使い慣れてないだけ
0042デフォルトの名無しさん2008/09/13(土) 17:59:59
信者がこんなんだから進歩しないのよ
0043デフォルトの名無しさん2008/09/13(土) 18:28:32
で、C++は難しいからPHPでも使うかって?
0044デフォルトの名無しさん2008/09/13(土) 18:35:32
>>42
違う
原因は互換性っていう過去の柵が8割以上を占めてると思う
0045デフォルトの名無しさん2008/09/13(土) 19:26:18
互換性ない俺様言語作るのは簡単だからね
0046デフォルトの名無しさん2008/09/13(土) 19:34:01
D言語にとって変わられればいいじゃん。
とか思ってたけどD言語迷走しすぎ。
0047デフォルトの名無しさん2008/09/13(土) 20:13:12
Cと互換性のない言語はかわりにはならんし別物になっちゃうんだよなあ。
0048デフォルトの名無しさん2008/09/13(土) 20:15:26
Objective-Cの方が良かったんだけどね
0049デフォルトの名無しさん2008/09/13(土) 21:31:12
STLってゆうか、テンプレートなんだけど、
テンプレート化したクラスにおいて、別の種類の柔軟性を持たせたくなって仮想関数を
作りたくなるときってないですか? それって無理ですよね?
そんなこと思う事自体が何か間違ってるんでしょうか。
0050デフォルトの名無しさん2008/09/13(土) 22:18:14
>>49
クラステンプレートに仮想関数を持たせることはできるよ。
メンバテンプレートで仮想関数は無理だけど。
0051デフォルトの名無しさん2008/09/14(日) 10:42:46
世の中の天才PGみてるとC++なんて使わずC使ってるからなぁ
0052デフォルトの名無しさん2008/09/14(日) 10:46:01
天才だからCとかアセンブラで十分なんだよ
その人達みたいにCを使いこなすよりはC++をそれなりに使えるようになる方がまだ簡単
0053デフォルトの名無しさん2008/09/14(日) 11:28:46
天才は1人でシステム開発するでしょ。だからCで十分なんだよ。
0054デフォルトの名無しさん2008/09/14(日) 11:55:23
少人数の開発に向いてるのはLisp
0055デフォルトの名無しさん2008/09/14(日) 12:13:14
ほとんどの場合、Cでいいよね
C++とかJavaとかって、無駄にクラスを作ったり無駄にソースコードを
増やして、開発量水増しするために使うもんだと思ってる。
0056デフォルトの名無しさん2008/09/14(日) 12:21:26
本気で言ってるのかマジレスなのか非常に気になるが・・・・
オブジェクト指向の言語の必要性を感じてないんか?

それからC++はマルチパラダイム言語と呼ばれるように
非常に懐の広い言語なんだが
0057デフォルトの名無しさん2008/09/14(日) 12:34:59
tmpによる静的モデル検証とか使い熟せれば便利だと思う
言語内DSLなんていまじゃ別に奇なものでないしね
あと名前空間とか激しく便利だね、XXX_YYY_ZZZとか書かなくてすむし

でもSTL, boost, TMPとか使わずにC++使うぐらいならC99の方が100倍マシだ
0058デフォルトの名無しさん2008/09/14(日) 17:29:57
そもそもC++が幅利かせてるのってwindowsくらいだろ。
UNIXの世界じゃたんなる一選択肢的な感じだし。
0059デフォルトの名無しさん2008/09/14(日) 17:37:00
>>56
単にオブジェクト指向っぽくすることだけが目的になってない?
なんのためのオブジェクト指向か分ってる?
0060デフォルトの名無しさん2008/09/14(日) 17:41:46
マルチパラダイムと称して
いきあたりばったりに機能拡張した感が否めない
0061デフォルトの名無しさん2008/09/14(日) 18:49:18
>>56
C++は書く人がOOPを意識して書けばOOPになるってだけで
実際には>>55のような工数の水増しのネタにされているんだろうなぁ
0062デフォルトの名無しさん2008/09/14(日) 19:27:14
なんにでも使えるものはなんの役にも立たないってやつ?
0063デフォルトの名無しさん2008/09/14(日) 19:28:35
Javaほど急速じゃないけどCOBOL化が着々と進んでる気がする。
0064デフォルトの名無しさん2008/09/14(日) 20:17:42
むしろC++がノロノロと次世代の仕様を作成している間にJavaがここまで肥えるとは思わなかった
0065デフォルトの名無しさん2008/09/14(日) 20:43:25
まぁあんだけ群がればピザりまくるに決まってる
0066デフォルトの名無しさん2008/09/14(日) 21:47:41
>>62
その状態になっていると思う
0067デフォルトの名無しさん2008/09/14(日) 22:02:54
塩は料理から凍結防止ガラス作りまでなんにでも使えるよ。
0068デフォルトの名無しさん2008/09/14(日) 22:34:49
Objective-C > C++
0069デフォルトの名無しさん2008/09/14(日) 22:37:32
まっかさんはどっかいってね
0070デフォルトの名無しさん2008/09/14(日) 22:50:00
オブジェクト指向度マップ

<--- 構造化 オブジェクト指向 --->
C C++ Java C# OC Smalltalk
0071デフォルトの名無しさん2008/09/14(日) 22:59:56
スモールトークに需要あるのー
0072デフォルトの名無しさん2008/09/14(日) 23:39:00
えいふぇるはどの辺に位置するの?
0073デフォルトの名無しさん2008/09/15(月) 00:00:54
実際に Smalltalk に需要があるかどうかは関係なく、
・実行時にメッセージスロットを検索に行く
言語の代表として、歴史的な経緯から使われているに過ぎないのだろう。
Self とか Lua とか JavaScript でも文脈としては問題ないが、先輩に応分の敬意を払わないと非難を受けることだろう。
表面の文法の問題ではないということね。
0074デフォルトの名無しさん2008/09/15(月) 00:30:00
>>69
Objective-C >>>>> C++
0075デフォルトの名無しさん2008/09/15(月) 01:05:26
すごいね
0076デフォルトの名無しさん2008/09/15(月) 01:36:54
初心者向け度って意味ね
0077デフォルトの名無しさん2008/09/15(月) 06:21:16
C++0xになったらそろそろ標準の文字列クラスぐらい出てきますよね。
0078デフォルトの名無しさん2008/09/15(月) 07:38:39
完全なコンパイル言語でオブジェクト指向やろうとするとC++が限度ってこと。
OCなんてC+オブジェクト指向インタプリタだし。
0079デフォルトの名無しさん2008/09/15(月) 11:53:25
>>77
相変わらずstd::basic_stringです。
0080デフォルトの名無しさん2008/09/15(月) 13:37:13
>>78
それに加えて C とある程度の互換を持たせるという縛りもきつ過ぎる
0081デフォルトの名無しさん2008/09/15(月) 17:12:29
そもそもSTL理念に必要最低限って書いてあったけど。
JAVAやドトネト並みの網羅されたクラスライブラリがあるだけでぜんぜん違うのに
0082デフォルトの名無しさん2008/09/16(火) 21:41:32
でもでかいランタイムが必要だと選択肢から外れちゃうよ
0083デフォルトの名無しさん2008/09/17(水) 21:43:17
>>82
それは人それぞれなのでは?
0084デフォルトの名無しさん2008/09/17(水) 22:16:09
>>83
当然そうだよ
ターゲットの環境や用途等にもよるし
0085デフォルトの名無しさん2008/09/18(木) 00:18:59
>>82が結局何を言いたいのかが分からない
0086デフォルトの名無しさん2008/09/18(木) 04:11:14
そりゃそのライブラリのために30MBのDLLが必要だったら困るじゃんって話でしょ。
再配布のライセンスとか、インストールが必要なのかとか他のアプリに影響与えないか
とかも重要だし。
0087デフォルトの名無しさん2008/09/18(木) 07:50:55
巨大なライブラリがあればもっと可能性が広がるのにって言ってる相手に
それは使えない可能性もあるって言ってなんか意味あるの?
0088デフォルトの名無しさん2008/09/18(木) 08:07:26
boostも便利なんだけどさ、amazonにSOAPで繋げて商品情報をGUIで一覧表示したいんだけど、
とか思うとまったく機能が足りてないんだよなあ。
0089デフォルトの名無しさん2008/09/18(木) 20:07:10
WTLとか、iostream使ったソケットプログラミングとか、
やろうと思えばいろいろ発展できそうなのにいまいちまとまりがない。
それが++
0090デフォルトの名無しさん2008/09/18(木) 20:11:50
大きくなると、まとまりがなくなるのは
どんな言語にもある。
0091デフォルトの名無しさん2008/09/18(木) 21:37:33
>>87
その大きさが可能性を狭めることもあるって言ってるんでしょ
0092デフォルトの名無しさん2008/09/18(木) 23:30:47
>>91
馬鹿なの?
0093デフォルトの名無しさん2008/09/18(木) 23:38:26
馬鹿はお触り禁止
放置しましょう
0094デフォルトの名無しさん2008/09/18(木) 23:43:34
>>91の何がおかしいかがわからないので教えてください
0095デフォルトの名無しさん2008/09/19(金) 00:02:15
>>81からの流れを例えで表すと

>>81 巨大重機(ライブラリ)があればビル建てるときも楽になるのにね
>>82 でもそんな巨大だと民家建てる時に困るじゃん
>>83 そんなの当たり前じゃないの?
>>84 当たり前だよ
>>85 結局>>82はそんな当たり前の事言いたかったの?
>>86 だから>>82は巨大重機じゃ民家建てる時に困るって言ってるんだよ
>>87 だからそんな当たり前の事言って何の意味があるの?
>>91 だから大きいと困る可能性もあるって言ってるんでしょ
>>92 馬鹿なの?
0096デフォルトの名無しさん2008/09/19(金) 00:13:32
ああなるほど
言語と一体化したようなライブラリでなければ>>95のような話だね

昔のVBや現在のドットネットを選択肢から外す状況を想定してた
0097デフォルトの名無しさん2008/09/19(金) 00:34:44
>>82はクラスライブラリが欲しいって話から
何時の間にか言語仕様上巨大なランタイムが必須ってとこまで飛躍してたのな。
そんなことしたらC++の存在意義が無くなるだけじゃんw
0098デフォルトの名無しさん2008/09/19(金) 02:23:31
C/C++だってランタイムは必要だぜ。
ライブラリモジュールを、配布プログラムに必ず含めなければならないとなれば大きいのは困るけど、
基本モジュールは別途インスコしておいて、アプリはそいつ必要に応じてリンクするのがやっぱりベストな気がするな。
OS以外の基本モジュールはNGなんて環境は相当特殊だろうし。
0099デフォルトの名無しさん2008/09/19(金) 03:23:43
Vista64bit使ってると.NETのありがたみが分かってくる。
一部のプログラム以外、.NETのほうが便利だし、
わざわざ32bit, 64bitとリリースを分けるまでもなく
VMが適当に最適化を行ってくれる。

C:\Program Files (x86)\フォルダに入ることもない。
0100デフォルトの名無しさん2008/09/19(金) 11:31:11
結局C言語と.NETがあれば十分じゃね?
C++はもう休めばいいよ
0101デフォルトの名無しさん2008/09/19(金) 11:42:16
携帯とかゲームとか組み込みとか色々あるから
ちっとも十分じゃない
■ このスレッドは過去ログ倉庫に格納されています