1 :
デフォルトの名無しさん:
JAVA、C#なんて存在価値に疑問抱かざるを得ない言語など
あるけど、C++でいいじゃん
JAVA、C#でかけるものはC++で全て書ける
逆はそうとはいいきれないんじゃないかな?
Boost+C++これ最強間違いない!
2
3 :
デフォルトの名無しさん:2005/05/10(火) 23:33:37
ヒント:生産性
4 :
デフォルトの名無しさん:2005/05/10(火) 23:35:48
C++が生産性が悪いなんていうひとってC++が使えないからでは?
5 :
デフォルトの名無しさん:2005/05/10(火) 23:44:32
使えない人がいる=生産性が悪い
BOOSTにはSocketがない、GUIはいらない。
7 :
デフォルトの名無しさん:2005/05/10(火) 23:52:57
C++ってそろそろGUI持たないの?
たかが文字列処理やガベコレ相当の事をするのにSTLまで出てくる。
しかもSTLを正しく使わないと、逆効果になる。
GUIライブラリやその他のライブラリが各プラットフォームで統一されていない。
特にRADを使う場合使用できるライブラリは限られている。
リフレクション機能が少なくデバッグが大変。
9 :
デフォルトの名無しさん:2005/05/10(火) 23:58:05
これは基礎知識レベルのことなのに、上級レベルの知識を必要とするから。
・ポインタの種類
*
&
auto_ptr
shared_ptr
weak_ptr
intrusive_ptr
shared_array
scoped_ptr
・キャストの種類
(int)
static_cast
reinterpret_cast
const_cast
dynamic_cast
いまJavaやってるけど、
正直C++のほうがコードが少なくてきれいに書ける。
個人的にはC++が現実的な生産性は高い。
コードの抽象性、汎用性も高い。性能も出せる。
Javaは、標準のライブラリがイマイチ。
STLとかの方が良く考えて作ってあると思うよ。
Javaを書いてると、昔COBOLやらされた時のイメージを思い出すよ。
Javaは少人数で短期間で開発するのに向いている.殊に日本では漢字を
扱わなければならない都合事務的な処理はJavaやC#が向いていると言える.
しかし現実は厳しい.大規模で斬新なソフトの開発のためには世界中に
散在する研究結果、ソフトウェアのノウハウを集積しなければならない点に
注目だ.ここでC++は評価が高い.なぜなら長い歴史があるからだ.
90年代中盤に登場したJavaと比べればC++はさらに5〜10年早く普及して
いる.開発競争の激しい今の時代,C++で培った技術をJavaに移行する
作業はなかなか進まないだろう.Javaがフロントエンド向けの開発ツール
だとするならばC++は基幹向けの開発ツールと言えるだろう.
世界中に散在する研究結果と長い歴史
つまり、FORTRAN最強!ということだな。
18 :
デフォルトの名無しさん:2005/05/11(水) 01:24:51
「適材適所」
・3DゲームにJavaなんか使えるかよ。
・携帯のアプリなんかJavaで十分。
・業務系の低スキル技術者にC++なんか危なくて使わせられるか。
・WindowsのGUIアプリならC♯.NETで十分。
・大規模システム資産を潰すわけにいかないからやっぱCOBOLは捨てられない。
・などなど
ひとつの言語しか使えない人はたいへんですね。
数値演算の分野ではFORTRANはかなりの実績があると思う.
現存の数値演算ライブラリの多くはこれらのコードを引き継いでいるはず.
その都度トランスレータが開発されていくからね.
数値演算ライブラリなんかは再開発するとしたらプロセッサの設計と
深くかかわってくるからあまり一般向けに公開されたりまして標準化なんて
言葉とは縁がなくなってしまっている.
CG分野の場合に限ってはOpenGLやDirectXはあるけど、工業専門分野向
けのものは用途が特殊すぎて市場も狭く規格として定めてもあまり広まらない.
正直BoostとかSTLも含めてソフトウェアの標準と言うのは
浅く広くをモットーにしているみたいで、実用的に使うと言う観点では
どれもいまいちと言う感がある.結局古いライブラリを引用することになるの
だ.
21 :
デフォルトの名無しさん:2005/05/11(水) 02:00:11
>>20 例えば、
OpenGL + STL + C++ + cstdlib
とか
DirectX + STL + C++ + MFC + cstdlib
とか、ライブラリってのはそういう使い方をするんですが。
STLやBoostはどんな分野においても十分実用的です。
汎用的かつ効率的な標準的アルゴリズム+データ構造集ですから。
22 :
デフォルトの名無しさん:2005/05/11(水) 03:01:39
>>1 C++ 一人のタコがプロジェクトを台無しにできる
Java,C# 一人のタコが居てもプロジェクトを維持できる。
JAVAっていうとサーバサイドばっかしっていうイメージが強いけどな
24 :
デフォルトの名無しさん:2005/05/11(水) 03:29:40
>>22 実際問題、どんな優秀な人間でもミスはするからな。
そういう意味ではC++は非人間的言語だな。
25 :
デフォルトの名無しさん:2005/05/11(水) 03:39:48
JavaよりもC++の方がクロスプラットフォームであるという事実。
良いと評価するからにはそれを選んだことでそれなりに利点が得られ
なければならないわけです.
C++もJavaもC#もオブジェクト指向言語ですから再利用性重視と言えます.
C++の欠点はライブラリの老朽化です.つまり古すぎるからリファクタリングして無理矢理使うと言うことです.まあそれを再利用性と呼ぶべきです
が,否定されるのは新しく登場したSTLとかBoostの良し悪しでなく,資産の
維持のしやすさではないでしょうか.人間はめんどくさがりですから.
Javaでも各OSで動作試験しなならん
どこでも動くとは限らん
>>22 タコが一人でもいる場合は、出来るだけ早い段階でプロジェクトを台無し
にしてもらった方が安全。
JavaやC#(極めつけはVB)のような言語だと、最終段階にさしかかった
ところでメンテ不能かついびつな形のものがいきなり出現して、損害額を
桁違いに膨れ上がらせたりする。
ある程度の大きさで、世間で一定の評価を得ているオープンソース(ソースを見れる)のアプリって
ありますかね。
ソースを呼んで勉強したいのですが。
>>29 ソースは呼んでもこないよ、たくさんありすぎるから自分の目的に合うのを自分で探さないと。
31 :
デフォルトの名無しさん:2005/05/11(水) 05:20:20
Linux
>>29 Mozillaのソース、1ファイルで8000行もあるソースコードに(((;゚Д゚)))
あれじゃあバグもでるよ……
実践(ソースを読む)だけでなく、理論(本を読む)も平行したほうがよいと思います。
どちらか一方だけだと偏ってしまいます。
>>29 gccに付いているlibstdc++読めよ。
ガベージコレクションがないのとバッファオーバーフローがチェックされないのが痛い。
(GCに関してはスマートポインタがあるが、構文がきたなくなりがち)
c++でも例外をJavaみたいにstrictに扱えるようにしてほしい。
投げる例外の種類をかえたときとか、コンパイラで検出できなくて
困る。
JavaはGenericsが入って使いやすくなった。
こう考えると、strict typed languageマンセーなんだな。俺は。
37 :
GreatFixer ◆ASWqyCy.nQ :2005/05/11(水) 16:45:11
C,C++は自分用のアプリケーションを作るときに使うものだと思う。
はぁ?
39 :
GreatFixer ◆ASWqyCy.nQ :2005/05/11(水) 18:02:12
Re:
>>38 昔はそういう認識ではなかっただろうけど、今の時代ではアプリケーションを作るのにはC,C++よりも開発効率が良いものがあるだろう。
何言い出すのこのコテは。
41 :
GreatFixer ◆ASWqyCy.nQ :2005/05/11(水) 18:20:52
Re:
>>40 大して手間のかからないプログラムを作るときはJavaよりもCの方がいいということ。
42 :
デフォルトの名無しさん:2005/05/11(水) 18:46:13
>>41 たとえば、Windows を Java で書き直せってことか?はぁ?
>>42 書き直す必要はないけど
新規に作る場合はJavaの方がいいんでない?
こう書くとJavaは遅いから云々言われそうだが
遅い云々は別問題だから、一応。
44 :
GreatFixer ◆ASWqyCy.nQ :2005/05/11(水) 18:55:35
Re:>42 Windowsってアセンブラでやってるんじゃないの?
45 :
GreatFixer ◆ASWqyCy.nQ :2005/05/11(水) 18:56:39
Re:
>>42 誰もそのようには言っていない。技術力があるのならアセンブラでもCでも使えばいいだけの話。
なんか色々と矛盾してるね
47 :
GreatFixer ◆ASWqyCy.nQ :2005/05/11(水) 19:46:39
C++って使う場所では使うんだろうけど、
オレみたいなアマグラマには縁はないな。
C#かDelphiで決まりだよ。
↓門外漢
GreatFixer ◆ASWqyCy.nQ
C++はまずEffective C++やらなんやらじっくり読み込んで、
大量のお約束や禁則を頭に叩き込む必要があるからな。
一度習性レベルまで身に付いたら、Javaとかと大して変わらないんだが、
問題は、そのレベルに達していないプログラマの存在だろう。
あと、ヘッダファイルとソースファイルが分かれてるのは
いつまで経っても激しく面倒くさい。
仕事じゃJava使うけど、
趣味ではC++だな。だって楽しいもん。
あと、デスクトップアプリ作るときは、やっぱりC++だなー。
起動や動作が機敏だから、使う側にストレスがない。
それ言ったらJavaなんてやっつけ仕事以外使い道ない
>>51 >Effective C++やらなんやら
「Effective C++ C++の50の急所 」や
「Effective C++ 」でしょうか?
"なんやら"が激しく気になります。主観で良いので
おすすめはやはり「Effective C++」ですか?
>ヘッダファイルとソースファイルが分かれてるのは
ぜひ詳しく聞いてみたい内容です。
私はIDEでどうにかならないかな-と考えてたりします。
え、別にcppソースそのままインクルードすればええんちゃうんの・・・?
漏れは実装もほとんどヘッダに書くなー。
すげえコンパイル重くなるのと、
数値型以外のstatic定数を定義できないのが難点だ。
Javaも Effective Javaとかお約束事あるじゃん
58 :
デフォルトの名無しさん:2005/05/12(木) 00:41:17
Javaの起動が遅いっていうのはGCJ次第で解決するんじゃない?
C++はJavaやC#などに比べてソースが読みにくい・理解しにくい。
あるシンボルが何であるかを調べるのが大変だし
マクロとか使われてると最悪。
結局はCベースに古いデザインをつぎはぎして拡張してきてるのが問題で、
色々ボロは出てる。
たとえば後で継ぎ足した例外仕様とか、かなり悲惨。
>>59 >Cベースに古いデザインをつぎはぎして拡張してきてるのが問題で
それは問題ではなく目的。
だからその目的自体に問題があるといいたいのでは?
なぜ、ハンドアセンブルじゃいけないの?
もうハンドアセンブルやってる奴いないだろ
昔からやってる奴は脳内アセンブルまで進化してるだろうし
64 :
Zeno ◆5nZQbNmQPs :2005/05/14(土) 17:15:50
普通に自分用のプログラムを書くのであれば 、 Python か elisp。
Win アプリは C# か Java。
個人的に、 C++ など必要ない。 というか、生産性が低すぎて
C++でプログラムをする気にはならない
____________
If T is consistent, T !|- G_T.
If T is ω-consistent, T !|- ¬G_T.
資産だの生産性だの以前に、C++の登場から20年近くが経過している以上
そろそろ引退するべき言語ではあるな。今のアーキテクチャとは概念的にも
時代遅れ感が否定できない。
Rubyの生産性がC++の30倍あるってマジですか?
67 :
GreatFixer ◆ASWqyCy.nQ :2005/05/14(土) 20:05:17
Re:
>>64 一時的に使うか、何度も使うかで使い分けた方がよさそうな気もする。
68 :
デフォルトの名無しさん:2005/05/14(土) 21:56:10
C++でかけない、ソフトウェアはない!!
それはどんな言語でも同じですね
CとC++以外に
組み込みで使えるほどリアルタイム性を要求されるアプリを
作れる言語ある?
逆にいえば組み込みぐらいですね。C,C++が活躍できる場は。
ふーん。
お前が仕事で使っているソフトは何で書かれている?
Java。
>>72 仕事で使っているソフトを作るのは我々の仕事ではない(大抵はMSの仕事)から、
やっぱりC++不要。
それに、自分で作るソフトも大抵はJava/C#/ObjCになってきている。
ObjCて・・・
76 :
デフォルトの名無しさん:2005/05/14(土) 23:50:54
みなまでいうな
77 :
デフォルトの名無しさん:2005/05/15(日) 04:31:18
ネイティブなコードを書けることに対する優越感(プライド)をどうしても捨てきれないんじゃないの?
ここの人たちって。気持ちはよくわかるよ。でも、世の中、メシの種になるものしか結局は
生き残れないんだな。
C++はともかくC言語は今後も間違いなく生き残る
80 :
デフォルトの名無しさん:2005/05/15(日) 05:35:49
遅漏でしょ。
81 :
デフォルトの名無しさん:2005/05/15(日) 05:50:45
いやいや、
C++→80過ぎのばあさん。
Delphi→16歳の女子高生。
だからでしょ。
82 :
デフォルトの名無しさん:2005/05/15(日) 06:53:45
80杉のばあさんのほうが人気な件。
>>79 お年寄りの願望乙(w
「携帯電話はなくなっても電話ボックスはなくならんわいっ」
85 :
GreatFixer ◆ASWqyCy.nQ :2005/05/15(日) 08:30:49
自作ライブラリが増えて収集がつかなくなりつつある現在、
という話を確信もないまましてみる。
86 :
デフォルトの名無しさん:2005/05/17(火) 08:49:41
C++って知れば知るほど腐った言語だな
建て増し建て増しで基本思想のかけらもない
そもそもCとの互換性がガンなんだが、それがないとC++にする意味がなくなりかねないわけで難しいところだな。
思想があるからこその建て増しなんだけどね。
まぁ挫折組には邪悪なものとしか映らんわな。
逆に知れば知るほど輝いて見えるのは俺だけ?
>輝いて見えるのは
禿げ頭じゃないんだから。
でもまぁ、自然言語だって建て増しっつーか少しずつ複雑化したのだろうし、
私も肯定的に見てますがね。
杓子定規で一辺倒な使い方しかできない道具より、
使い方次第で能力を発揮する道具の方が好きだしね。
91 :
デフォルトの名無しさん:2005/05/17(火) 20:33:46
そういうのを進化の袋小路とも言うね
思想が表に出すぎて信者以外誰も使わない言語よりはマシなのでしょう
設計思想は完全に実務向けで、だからこそのCとの互換性なんだが
あまりに複雑&仕様の幅が広過ぎで、他人のコード読みにくい点が
実務で問題を生じる。
テンプレートヲタとかが、一人で趣味で使ってる分には問題無かろうけど
実務だと、規約でスタイルをあれこれ縛らんとつらいんじゃないか。
Cの互換性と
templateに代表されるような新しい機能が
いい具合いに混合されている。
>>94 ことはない。
C++には必要な文法と便利な文法に、
コンパイラを振り落としてしまうくらいの複雑化用文法と、
プログラマを振り落としてしまうくらいの下位互換用文法がある。
そういや最初はC++に比べシンプルな言語であることを前面に
押し出してたくせに、結局拡張して汚らしくなった言語が
あったね。なんだっけ?
INTERCAL
>96
何だったっけ?度忘れしてて思い出せないよ・・・。
CにシンプルなOOPを組み込むことを前面に押し出してたくせに、
結局拡張して汚らしくなった言語なら1つ知ってるんだけれど・・・。
>>98 つ[C++の設計と進化]
絶 賛 発 売 中
多重継承ソース読むの怖いね。
まずC++をDLL化するにあたりextern "C"しなければならない事自体が汚らわしい
CにシンプルなOOPを組み込むことを前面に押し出してたくせに、
結局ほとんど使われるどころか存在すらあまり知られてないマイナー言語よりはマシでしょう
>>103 言語規格がABI周りに言及していないという点では
言語の問題と言えなくもないように思えますがどうなんでしょうか?
まぁ,言及していないというよりかは言及できないといったほうが正しいと思いますが.
106 :
デフォルトの名無しさん:2005/05/19(木) 23:15:29
どうしてC++に劣等感を持つ人がこんなにいるんだろう?
C++ができなかった奴は、結局、Javaもだめだったろうに。
Cならわかったと思ってる?そりゃ勘違いだよ。
配列のポインタの関係がわかったってプログラムは書けんでしょ。
> どうしてC++に劣等感を持つ人がこんなにいるんだろう?
そんな人いませんが?
あなたこそ、何かに劣等感持っているようですね。
>>101 超同感
するならするでちゃんとしてほしい
Shimula
111 :
デフォルトの名無しさん:2005/05/20(金) 04:52:32
なんだかC#って、ここではだいぶ嫌われてるみたいだね。
おれは好きなんだけどなー。
なぜC++じゃいけないのか?
コンパイラが標準Javaコンパイラよりも劣っているから。
エラー例外チェックが甘いから。
堅牢性が低いから。
JavaコンパイラライクなC++コンパイラが普及しておらず
規格が乱立しているから
それは仕様です
それが好まれない理由は他にあるはず
最近の流行は、言語仕様の中に制約をもりこんで、
コードの質を一定に保つって方向。
C++は、プログラマに最大限の自由度を与えるので、
自分で制約を課さないと、すぐに破綻する。
コード1行ごとに、呼ばれるコンストラクタ、代入演算子、キャスト演算子、
例外の可能性、など考慮しなければならないことが多い。
七十而従心所欲
の心境に達していないと、C++で大規模コードを書くのは難しい。
javaももう少し最適化が進めば使うのだが、VB並のスピードしか出ないjavaは使う気がしない
>自分で制約を課さないと、すぐに破綻する。
soreda!
それができない香具師はjava飴でも舐めてろと。
>>116 それってC++が糞言語だってことだと思われるが。
自由がほしければアセンブラかなんかやってればぁ?
C#飴を舐めてる人からの煽りでした。
>>117 真のプログラマ(==C++プログラマ)がなぐさみに甘いjava飴を舐めるのは良し。
C#飴はにおいがきつくて舐めれん。
食糞に近いからな<C#飴
121 :
デフォルトの名無しさん:2005/05/20(金) 19:51:00
122 :
デフォルトの名無しさん:2005/05/20(金) 20:19:33
>>117 何言ってる。自由がほしければ会社辞めて「日本セックスの旅」に決まってる。
C++は不要だがC言語は必要だ
なぜならたいていどの言語もC言語のライブラリの存在がベースになってるから
>>120 それはなんで?食糞に似せて作られているから?
125 :
デフォルトの名無しさん:2005/05/20(金) 20:45:14
>>124 C#が糞だからだな。
C#飴を舐めすぎると、悪い成分が脳に回って
>>121みたいな反応しかできなくなってしまう。
126 :
デフォルトの名無しさん:2005/05/20(金) 21:12:00
C--
(C)
128 :
デフォルトの名無しさん:2005/05/20(金) 21:44:02
++C
ってあってもいいよね
なるほど
>>125みたいになっちゃうんですね。合掌。
Cplusplus = C++;
インクリメントされずに実は中身はCだったというオチ
131 :
デフォルトの名無しさん:2005/05/20(金) 21:56:29
C++をオナニーする右手以上に自由に使えれば
C#やJAVAなんて使おうなんて気には絶対にならない
132 :
デフォルトの名無しさん:2005/05/20(金) 21:56:57
>1
C++が漢の言語だから。
フェミニストが跋扈する昨今の世情にはあわない
135 :
デフォルトの名無しさん:2005/05/20(金) 22:23:07
C++の中の人も大変だな
133の過去に一体何があったのか気になる
あと5年すれば答えが出ると思っている
140 :
デフォルトの名無しさん:2005/05/20(金) 23:50:00
つまり、難解な言語を使っているというだけで優越感に浸れるような時代は
もう終わった、ってことですか。そうですか。
>>19 激しく同感
>>36 それさえあれば・・・と俺も思っている
で、D言語は、皆どう思っているのか聞きたい
スレが伸びていないので死んだのかなぁ
C + template + 型チェック強化 な言語がほしい。
GCはいらん(組み込みに向かなくなる)
オブジェクト指向とか状態遷移マシン実装サポートとかは
templateメタプログラミングなライブラリで提供。
組み込みでも使いやすいようtemplate使用時の
コード生成が規制できる。
そんな言語がほしい。
143 :
デフォルトの名無しさん:2005/05/21(土) 00:11:49
その程度なら自作すりゃいいじゃん
144 :
デフォルトの名無しさん:2005/05/21(土) 01:05:20
俺は、perlで十分
>>140 そんな時代があったのかどうかはともかく、
自分が馬鹿なのを言語のせいにしてごまかせる時代がまだ来ていないのは、
ここのJava厨やC#厨の間抜けなレスで明らかだな。
>>141 おれてきにはDはいまいち。
標準ライブラリサポートがjavaだのC#だののイマドキのリッチな環境に
比べて貧弱で、Cなどのアリモノのライブラリを直接リンクできるとはいえ、
そのためのインタフェースをいちいち記述しなければならない点で
C++よりめんどいのよね。
JAVAの圧倒的物量のライブラリをもってしてもC++は駆逐できなかった。
真理は別の所にある
>>145 現場ではマニアのための言語なんか要らないんだよ。ほんとはC++は
そうじゃない筈なんだけど。
テンプレートバリバリなコードは激しく読みにくい上に
コンパイラの吐き出すメッセージは激しく意味不明になりがちだし
演算子オーバーロードや型の暗黙変換や多重継承は比較的昔ながらの機能で
コードを書くだけなら便利だけど、
多用するとやっぱコードは絶対理解しにくくなるし
「この+はどこで定義されてるんだろう?」みたいな単純なことを、
調べるのが大変なんだよなC++は。コード読む人に優しくない言語だよ。
だから仕事では縛らなきゃいけないんだよ。
理解しにくい=無駄な時間を消費するってことだからね。
馬鹿とかそういう問題じゃないよ。
>>147 JavaとC/C++では適用可能な分野が違うもの。
LISPがいいよ
C++屋ってCOBOLぐらいしか馬鹿にできるものが無いの?
別に馬鹿にしてないんですけど。
どこをみてそう思ったの?
>>123 Cはポータブルなアセンブラだよな今や
ABIがシンプルなのも重要なポイントだ
>>115 感覚的に、クライアント系のアプリはVBのがむしろ早い気がする。
VB5.0以降は一応Nativeだし、Nativeになる前からそこそこ軽かった。
最近はJavaもマシになってるのだろうか。
最近久々にVB6.0の開発環境を立ち上げる機会があったのだが
非常に軽くてびっくりしたよ。
Javaのメソッドはデフォルトで(C++で言う)virtualだけど
C#はそれとは間逆なんだよな。少なくとも継承とポリモーフィズムをキモとする
古典的なオブジェクト指向とは間逆を行ってる。あれは何でなんだろう。
継承が万能でないとわかったからだろ
確かに現在は継承よりobject compositionの方が重視されているとは思うけど
親と子の両方で指定しないとオーバーライドできないってのは
やり過ぎっつーか不便な気がする
おかしな話だがC++の方が言語として遥か先を行っている
自由があればあとは賢い奴がなんとかするってわけ