トップページ⇒tech
66コメント23KB

C++ってそんなに人気ないの?

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2005/07/18(月) 23:47:50
Webの記事でもC++にするとアクセス数が激減し、CとかJavaとか
だとアップ、書籍でもC++はあんまり売れなくてむしろ売れ残り、
Javaとかの方がはるかに売れて笑いが止まらないとかだそうですが、
そんなにC++は人気ないんですか?本当なの???
0002デフォルトの名無しさん2005/07/18(月) 23:49:46
ドカタに人気がないだけ。健全な言語の証し。
0003デフォルトの名無しさん2005/07/18(月) 23:51:34
時代遅れだし。
Javaと比べて、同じことするのに必要なコードの量が多すぎ。
0004デフォルトの名無しさん2005/07/19(火) 00:46:12
…釣り堀か。
0005デフォルトの名無しさん2005/07/19(火) 01:45:50
何が釣れますかな?
0006デフォルトの名無しさん2005/07/19(火) 03:18:52
いつの話だよ
0007デフォルトの名無しさん2005/07/19(火) 06:04:28
リファレンスや各種テクニックなど、
広い意味でのドキュメントが充実し「枯れてきた」という話でしょう。
0008デフォルトの名無しさん2005/07/19(火) 06:48:24
で、プログラム技術は進化してるのについてこれてないという話だね。
0009デフォルトの名無しさん2005/07/19(火) 10:44:11
javaもC#も言語としては洗練(?)されとるけどVM依存だからなあ。
現状、ネイティブ吐けるパワフルな言語ってポジションはC++(Cではなく)が握っていると思うんだけど。
0010デフォルトの名無しさん2005/07/19(火) 10:46:17
Lisp
0011デフォルトの名無しさん2005/07/19(火) 11:07:24
>>9
で、そのネイティブ吐けるっていう価値が低くなってるんだよね。
0012デフォルトの名無しさん2005/07/19(火) 11:27:36
Java が C++ 化してきているという悲しい現実はあるな。
0013デフォルトの名無しさん2005/07/19(火) 12:56:12
D言語って現場ではどうなの
0014デフォルトの名無しさん2005/07/19(火) 12:58:42
>>11-12
(´-`).。oO人はSmallTalkにもどってくるんだよ。
0015デフォルトの名無しさん2005/07/19(火) 13:05:22
>>13
はじまってもいない。
0016デフォルトの名無しさん2005/07/19(火) 15:02:05
CマガジンにJavaはニッチだって書いてたよ
0017デフォルトの名無しさん2005/07/19(火) 18:25:36
VBとかJavaしか使ったことのないプログラマが増えているのは確かだ。
0018デフォルトの名無しさん2005/07/19(火) 22:46:11
ま、結局はLispがすべての言語の上に来るんだけどね。
他の言語を公平にジャッジすることができるのは、
最も上位の言語であるLispをマスターした者のみ。
0019デフォルトの名無しさん2005/07/19(火) 23:13:24
Lispが全ての言語の上に立つと言うのは違うだろ。
Lispをマスターしたらやっぱり、Lispに近い言語を贔屓するだろうし。
0020マイク ◆yrBrqfF1Ew 2005/07/19(火) 23:21:26
Lispなんて学生の時消化する青春の言語に過ぎんさ。
0021デフォルトの名無しさん2005/07/20(水) 01:28:57
現役学生から見ると,古臭い気はするよ
0022デフォルトの名無しさん2005/07/20(水) 04:05:10
で、どれが一番優れてんの?
っつーか何でそんなに言語ばっかりあるの?
0023デフォルトの名無しさん2005/07/20(水) 08:37:20
>>22
人は 神 になりたがるものだから。
たとえ、完全とは無縁でも・・・。
0024デフォルトの名無しさん2005/07/20(水) 09:27:09
>>1
JavaとかC#はおもいっきし企業が生み出したものだから
プッシュされてるのは当然の結果だろ
歴史が浅いから関連商品も少ないので市場開拓の余地も大きい

でもJavaとかC#がダメといってるわけじゃないよ
0025デフォルトの名無しさん2005/07/20(水) 10:00:14
LISPはプログラマの理想をいち早く実現した言語だけど、究極ではない。
LISPは読みやすさをかなり犠牲にしてる。
今の言語設計者は必死になって読みやすいLISPや、
S式に変わるデータ構造を模索してる段階。
0026デフォルトの名無しさん2005/07/20(水) 19:55:19
新しい言語開発されるから今何やってもしょうがないやって怠けるよりは
c++でもjavaでも勉強した方がマシですよね?
0027デフォルトの名無しさん2005/07/20(水) 20:29:14
今何やれば良いかわかんないなら
英語でも勉強しなさい
0028デフォルトの名無しさん2005/07/20(水) 20:34:03
翻訳できるレベルだと職の選択肢も広がるしね
技術書に精通してるとありがたいし
0029デフォルトの名無しさん2005/07/20(水) 21:10:25
>>26
うん
>>1みたいなのは、きっと怠ける理由を探してるようなもんだ
0030デフォルトの名無しさん2005/07/21(木) 01:46:44
実際仕事でC/C++メインで使ってるけどクライアントのBtoCまで想定したパッケージ系とか
だとC++がメインだと思う、ただビジネスの主流になっているBtoBのエンプラ系だとJava
+スクリプトなんかが殆ど、また中小相手の小規模BtoBでもDBにアクセスできれば何でも
良かったりするんでクライアントはVBとかで作る、Javaはサーバサイド以外では余り使ってない。
組み込み系はCがメインでC++は使わないしというのが大体自分の周囲の状況かなぁ。
C#は殆ど聞かないし、VB.NETもまだ完全に移行しきってないカンジ

Windows系のフリーソフトとか作るならC++良い選択肢だと思ってるし、実力があれば
どんな種類のものでもほぼ市販のものと同レベルのものは作れるポテンシャルがある
とは思う、、、言語自体はObj指向言語としては破綻しているけど。
0031デフォルトの名無しさん2005/07/21(木) 01:51:50
あ、30は1のC++人気ないの?に対する反応です、どの言語が優れてるとかの話題への
反応では無いです。
0032デフォルトの名無しさん2005/07/21(木) 02:10:41
後新規案件では殆ど聞かないけど、金融系のクライアントの場合にはCOBOLで開発する
ケースも多いみたい、トラブルがあったら大変な分野だから、出所の知れないライブラリ
とか使う訳にも行かず、言語組み込みの信頼できるBCD形式が必要という事でCOBOL以外
の選択肢が無いらしい、後クライアントも変化を嫌う傾向が他の分野に比べて遥かに強い。

大学の研究機関でコンピュータ工学から離れた分野だとFortranも多い、建築とか化学分野
の計算だと過去の資産が多くて信頼性の高いものが揃っているのが原因、複雑な計算も多い
のと使う人間がコンピュータのプロでは無い為、新しく作っても信頼できないらしい。
人によってはF2Cで変換して新規に作る部分はCで書くとか、苦労しているという話は聞くなぁ。
0033デフォルトの名無しさん2005/07/21(木) 07:01:27
Maximaというフリーの数式処理ソフトが、LispとFortranで書かれててイカス
0034デフォルトの名無しさん2005/07/21(木) 08:39:52
自分で簡易的なスクリプト言語作る時は
Lispモドキを作るのが一番簡単
0035デフォルトの名無しさん2005/07/21(木) 12:46:52
>>32
>トラブルがあったら大変な分野だから
>変化を嫌う傾向が他の分野に比べて遥かに強い
要は知識のないクライアントに、努力をしないベンダーの組み合わせだからだな。
なんせ、バグの改修に作成以上の金かける業界だからね。

>人によってはF2Cで変換して新規に作る部分はCで書くとか、苦労しているという話は聞くなぁ。
なんせ研究機関は頭堅いの多いから。
新規で作る部分もf2cの出力と互換性持たせたりね。
酷いところになると、Fortranに逆翻訳させられたりもする。

某A庁みたいにバグだらけのシミュレーションソフトで配備計画してたりするところもあって、
もうなんだかねぇ。
0036デフォルトの名無しさん2005/07/21(木) 16:20:49
>>35
>要は知識のないクライアントに、努力をしないベンダーの組み合わせだからだな。
うん、ただ技術者としての不満は分かるけど、トラブルが発生した際の賠償責任
なんかも考えると及び腰になるのも理解できる、どうせならJavaなんか今のエンプラだと
COBOLの代替として使われている部分が多いんだから、SUNの責任とかで用意して
くれると良いのだけどなぁ、まあ個人的には関わりたくない分野には違い無いけど(笑)

>なんせ研究機関は頭堅いの多いから。
(笑)
自分も趣味でやっている分野なんかは論文相手にするから、結構この気持ちも分からなく
も無いんだけど、乱数系列の選び方まで慎重にやって演算誤差ができるだけ少ない演算を積み
重ねて作らなきゃならない分野だし、その場合に個々のアルゴリズムは作るものの本質で
は無いしなぁ。幾らなんでもFORTRANに逆翻訳はあんまりだと思うけど。

後書き忘れたけど大学のコンピュータ工学以外だと学部にまで予算が行かないので
学生は未だにN88使わされるってケースもあるよね、後は昔のGPIBボードと専用ソフトに
繋がっている関係で研究室内の計測機器に黄ばんだPC98が未だに現役で繋がってたり(笑)
0037デフォルトの名無しさん2005/07/21(木) 16:22:56
面白い句読点の使い方する人だな。
ちゃんとした文章だから読みにくくはないけど。
0038デフォルトの名無しさん2005/07/21(木) 16:27:24
>某A庁みたいにバグだらけのシミュレーションソフトで配備計画してたりするところもあって、
まぁアレは半分民間に金をばらまく為にあるようなものでしょ、実際にこの国
のコンピュータシステムがまともに使い物になると信じている人がどれだけいる
やら、自分は関わってないけど、余り詳しく書くのは各方面にマズいと思うので
ぼかして言うと2000年問題の時のシステムの状況とかもねぇ
0039デフォルトの名無しさん2005/07/21(木) 16:47:11
そうした意味では政府が関わってるにしては中国の電子版万里の長城の完成度って凄いよね、
まあ抜け道もあるみたいだし、あっちは人件費が安いからシステム内に大量のバイオ式認識
エンジンが乗っている可能性もあると思うけど。
0040デフォルトの名無しさん2005/07/21(木) 16:48:00
スマソ、sage忘れた
0041デフォルトの名無しさん2005/07/21(木) 17:01:06
ここでコボルを叩いてる奴って、言語の特色をしらなすぎ。
金計算にはやっぱコボルだよ。
C++はそういう処理には向かない。
0042デフォルトの名無しさん2005/07/21(木) 17:05:21
別に誰も叩いてないんじゃない?
0043デフォルトの名無しさん2005/07/21(木) 17:10:53
C++にBCD演算を言語としてサポートすれば
それだけでコボルは必要なくなる気がする…とコボルを良く知らないおいらがほざいてみる
0044デフォルトの名無しさん2005/07/21(木) 17:15:23
そんなものクラス作れば十分だろ、言語としての導入は不要ってのがC++のスタンス。
0045デフォルトの名無しさん2005/07/21(木) 17:23:41
それ以前にC++は余り多人数開発には向いてないと思う、プログラマが自分なり
のルールを作って使わないと破綻する言語だし。特にプログラマの力量も玉石混交
になりかねないエンプラではルールを作ってもその気になれば何でもできるC++
は選択肢としてリスクが高いんじゃないかな?逆にそういうのはJavaみたいな
拘束型言語の方が向いていると思う、これはこれでTomcat/Servletなんかもセンター系
のレベルまで行くとパフォーマンスで問題になるという話も聞くけど、、、

むしろC++は少人数のプロジェクトでちゃんとPCの性能を引き出す必要のある分野じゃないかな?
0046デフォルトの名無しさん2005/07/21(木) 17:33:57
>それ以前にC++は余り多人数開発には向いてないと思う、プログラマが自分なり
>のルールを作って使わないと破綻する言語だし。

悲しいが禿同
0047デフォルトの名無しさん2005/07/21(木) 17:42:58
まあ、自由度の高さが売りであり、致命傷でもあり。
0048デフォルトの名無しさん2005/07/21(木) 17:44:28
一人で書いていてもその場限りのメンバ関数だらけになって破綻する。
一人を超える多人数未満の開発に向いているってことですな。
0049デフォルトの名無しさん2005/07/21(木) 17:48:20
>>48
XPの説明で用いられる妄想の中の開発現場向けなか?w
同じレベルぐらいの少人数メンバーで・・・(ry
0050デフォルトの名無しさん2005/07/21(木) 18:10:59
いや、普通はメンテまで考えてクラスは設計すると思うけど、その場限りのメンバ関数
だらけになるのは何かそれ以前に間違ってるんじゃないかな?後妄想でも無く、実際
自分の周りのパッケージ分野ではC/C++以外に選択肢は殆ど無いような状況

出版サイズの画像を扱うようなソフトとか、1024x1024程度まではランタイムをそのまま
使っても問題無いけど、それを越えるとOSのページング境界まで意識しないと劇的に
遅くなって使い物にならない。後は技術計算のプロトタイプ向けで1イテレーション辺り
数十万回〜数百万回呼ばれるのに耐えるVM&コンパイラの設計とか、メモリ&実行効率まで
ダイレクトに見据えた上である程度の抽象化を図れるC/C++は便利だと思ってるけどなぁ

逆にこのレベルの要求のものをJavaやC#みたいにもっと高級言語寄りのもので世間的に
言われているレベルで楽に作れるなら嬉しいのだけど、、、
0051デフォルトの名無しさん2005/07/21(木) 18:36:24
JavaなりC#なり、ライブラリとランタイムが充実するのを待てば、その嬉しい状況にはめぐりあえるかもしれない。
>>50の言うそれは、あんまり一般的な需要でない故に、儚い希望ではあるが。
0052デフォルトの名無しさん2005/07/21(木) 19:29:35
>>51
うん、例に挙げたのは自分の知っている中でもかなりクリティカルな部分かつプロユース
まで意識した製品だけどBtoCでUtil系では無くApplication系になるとどうしてもそこが
重要になってくるんですよね。例えばOfficeとかブラウザとかPhotoshopとかもっと軽い所
ではテキストエディタなんかでも上に挙げたような問題はあって、どうしても他の
パッケージとの競争力という事になるとそこまで意識しないと製品にならないというカンジ。
(一方ではソースネクストのような粗製濫造も手ではありますが

ライブラリの充実はどうでしょうねぇ、、、本質的にはVM環境によるリソース管理と相反する
個所にある部分なので、VMのコアレベルで対応か、あるいはランタイムでも中身は殆ど
Nativeという状況になってしまいそうな気もして、半ば諦め気味です。
0053デフォルトの名無しさん2005/07/22(金) 05:17:21
>>43
BCD演算ライブラリ使えばいいという問題では無くて?

COBOLと言えば、
COBOL使ってるところって驚く程古いシステム使ってることが多いね
仕事で糞重いラインエディタ使わされたな…
全体を見通すためにはコードをプリントアウトしないと掴めないんだけど
あるクライアントはケチでプリントアウトさせてくれなかったし…

二度とやりたくないw
0054デフォルトの名無しさん2005/07/22(金) 05:31:43
>>53
>>32
0055デフォルトの名無しさん2005/07/22(金) 09:26:30
言語はあくまで目的実現のためのツールであって、目的じゃないからね。
他の言語を非難する言語厨にとっては、言語は崇高にして不可侵の・・・。
0056デフォルトの名無しさん2005/07/22(金) 09:36:15
>>30
> 組み込み系はCがメインでC++は使わないし

ドコモの携帯はC++が増えてきましたよ。
SymbianOSとか使ってさ。

Embedded C++ってものあるしね。
0057デフォルトの名無しさん2005/07/22(金) 12:07:50
SymbianはC++と言っても
try,throw,catchが使えないから困る。
代替え品が用意されてはいるが使いにくい。
0058デフォルトの名無しさん2005/07/22(金) 12:55:09
try/throw/catchは、
例外オブジェクトのメモリ管理が大変だからでしょうね。ヒープは貴重だから。
http://www.symbian.com/developer/techlib/v70docs/sdl_v7.0/doc_source/devguides/cpp/base/memorymanagement/cleanupsupport/cleanupsupportguide2/howtocleanupstack.guide.html
0059デフォルトの名無しさん2005/07/22(金) 14:03:08
うむ、ヒープ絡みついでに、
Symbianのコンストラクタ制約はちょっとなぁと思う。しょうがないんだろうけど。
C++じゃなくてCにしてしまえば素直な実装になると思うのだが。
0060デフォルトの名無しさん2005/07/22(金) 14:35:12
ところで、C++用のガベージコレクションってどうなの?
0061デフォルトの名無しさん2005/07/22(金) 15:50:20
>>60
BoehmGCの事?
簡単なメモリなら回収してくれるけど、、、実装がヒープやスタックを辿って
独自アロケータで確保したアドレスの数値と一致するポインタと思われる値が
格納されているかどうかで回収する方式だったと思うから、相互参照とかあると
解放してくれなかったりで、個人的には前提にするのは怖いと感じたなぁ。

C++ではコンパイラがサポートでもしない限りMark&Sweep方式などは使えない
のでこの方式の限界としてはリファレンスカウンタを使った管理と大差無い
なぁという印象を個人的には受けました。

自分の場合ある程度持続して存在するObjはSTLのコンテナから派生したクラスで
管理、デストラクタで一括削除という方法をよく使うので余りメモリで困った事
も無いですが。
0062デフォルトの名無しさん2005/07/22(金) 18:40:52
>>59
two-phase constructionやleaveを、
うまくC++で隠蔽できるといいんだけどねえ。

BoehmGCはちょっと組み込み向けじゃないけど、
w3mあたりには使われているねえ。

↓こういう参照カウントなら、auto_ptr系列のtemplateであるね。
http://www.symbian.com/developer/techlib/v70docs/sdl_v7.0/doc_source/devguides/cpp/Base/ReferenceCountingObjects/index.html#ReferenceCountingObjectsOverview%2etoc
0063マイク ◆yrBrqfF1Ew 2005/07/22(金) 21:22:04
>言語はあくまで目的実現のためのツールであって、目的じゃないからね。

何を目的にするかは人の自由で
お前が「言語が目的か否か」を決めることじゃないぞ。
オブジェクト指向崇拝者にに多いズレた目的バカだな(▽
0064デフォルトの名無しさん2005/07/22(金) 22:36:49
>>63
どんな言語を作成する予定ですか?
0065デフォルトの名無しさん2005/07/23(土) 11:42:46
>>63
まあよくてフェチ、つうか変態だな。
言語フェチ、言語偏向嗜好者。
0066デフォルトの名無しさん2005/07/23(土) 17:38:38
>>53
海栗鯖+COBOLって新規案件もあるぜよ。
(ほぼバッチ限定だけどなー)
■ このスレッドは過去ログ倉庫に格納されています