1 :
仕様書無しさん :
02/05/22 09:45 って言われました。 もう古いのですか?この言語。
2 :
仕様書無しさん :02/05/22 09:50
人 ││ ●\ ●\ ノ二\ ナ ゝゝ V ●●● ●\ ●\ / / 乙 つ O ●\ ●\ ●\ ●\ ●●● ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●\ ●●● \ ●\ ●\ ●\ ●\ ●\ \\\ ●\ ●\ ●\ ●●● \ ●\ ●\ ●\ \\\ ●\ ●●● \ ┌┐ ┌┐ ●\ \\\ ┣━┳┃┃ ┃ ││ ││ ●●●\ ┃ ┃┃┃ ┣┓ ━╋ ━╋ V V \\\\ ┛ ━┛ ┃ ┏┫ ┏┫ O O (´´ ∧∧ ) (´⌒(´ ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡  ̄ ̄ (´⌒(´⌒;; ズザーーーーーッ
やっぱ究極的にはアセンブラ♪
どっちかというとこれからだと思うのは私だけですか?
6 :
仕様書無しさん :02/05/22 22:49
これからは機械語だべ
NOPは90Hだという罠
C++はもはや消え行く運命。
ずばぁりこれからは「は」ですぅ
10 :
仕様書無しさん :02/05/22 23:06
ゆるせないーヤツがいる! ゆるせないーコトがある!
11 :
仕様書無しさん :02/05/22 23:08
ところで、ウィンドウハンドルとインスタンスハンドルってどうちがうの?
C++は生産性が悪い。
やっぱCOBOLずら。
15 :
仕様書無しさん :02/05/22 23:24
といわれても、C++ より文法的にも実行パフォーマンス的にも いい OO 言語って何がありますかね。 Java は JIT にもよるけど Java?
17 :
仕様書無しさん :02/05/22 23:44
19 :
仕様書無しさん :02/05/22 23:53
頼むから俺が異動できるようになるまでは辞めてくれるな!>新人(TーT)ゞ
>>15 (言語ではないが)Delphi,Kylix
>>16 実行速度を気にしないなら、今どきC++はじゃまだと思う。
>>21 実行パフォーマンス的にはどうかと思うが?
>>23 煤i・∀・)!!
ビミョー、 トリアエズ アンガト
>>21 いやね、Object Pascal の良さは分かるんだけど、唯一難点といえば、
クラスのメソッドでない、素の関数がかけてしまうところ。Pascal の
名残だけど。
Java は巣の関数がかけないでしょ。
まあ、書かなきゃいいんだけど。
Object Pascal、原理的にリンク・エラーが出ないのがいいね。
>>24 実行パフォーマンスって、実行速度ってことでしょ?
それなら、問題ないと思うよ。
う゛ぁりあんとがあるからって、DelphiがVBと同じだと思ってる?
Delphiも(やっぱり言語じゃないけど)VC++と同様にネイティブですよ。
実行速度はコンパイラの最適化のうまさや
プログラムのうまさに左右されます。
# Dephi3とVC++?で同じ処理を作ってコンパイラの最適化のうまさを
# 比べてた人がいたけど、そんときはほとんどがDelphi3が勝ってたほどだよ。
>>27 Cのように組み込み関数があるってことかい?
# 文法的にはJavaがいいねぇ。
ある程度複雑な処理をさせたときの最適化のかかり方が違う。
>>32 そうくるか!というかC#の文法しらんけど・・・。
34 :
仕様書無しさん :02/05/23 00:46
>>30 組み込み関数じゃなくて、自作で単独の関数を作れちゃうでしょ。
Java の場合、関数は単独で作ることはできず、必ずクラスの
メソッドとして記述する必要があるでしょ。
そのこと。
まあ、C++ もおんなじなんだけどね。
馬鹿が少なければC++でいいよ。 スマートポインタ等あるわけだしね。
>>34 すまん、書きこしたあと気づいたけど放置して置いた。
37 :
仕様書無しさん :02/05/23 01:11
生産性も実行速度も相対的に速いのがCの系統。
JAVAなんかたるくて組んでられねー。
まだJAVAやりますか?
ていうか、わかんないヤツから見たらC++の生産性は0だろ。
>>1 よ、やっとけ。
JAVAの全体的な愚鈍さが問題になる日は近い内にくる。
>>37 といいつつ、かれこれ7年が過ぎましたが、何か?
ver.1.08、NetScape2、InfoMosaic、熱い日々であった。
39 :
仕様書無しさん :02/05/23 01:14
ゲーム屋ではこれからって勢いじゃないの? アセンブラと混合するのにC++よりいい言語って無いと思うし。
別にわかってる奴らだらけな世界や、自分の世界なら スマートポインタなども必要ではなく、クラスすら、 便利なときにだけ使える最強C++を知らないのは大損。 まあ、だまされてやっとけ。途中で投げると、だまされる。
41 :
仕様書無しさん :02/05/23 01:17
42 :
仕様書無しさん :02/05/23 01:21
>>1 理解できなかった連中がおまえさんを仲間に引きずり込みたがってるぞ。
あれは普通では理解できないから。
C++の発案者が発狂してC++はろくな言語じゃないと言い出すほどだ(w
>>40 それは問題だ。
わかってる奴ら、、、というより、
プログラムに萌える人間だけだったら、
クラス事態、別にいらないと思うんですが。
人間は興味によって能力が変動する。
オブジェクト指向は、個人が一度に扱う「もの」の範囲を
明示的に限定しやすくするところに最大の意味があると思うから。
大規模プロジェクトの成功のために産まれた発想だからね.
人間の能力を無視したら本末転倒だと思うよ.
>>39 今はよくしらんが、
アセンブラをゲームで使ってるのって何がある?
GBAとかの携帯型なら、今も使ってるかな?
GBはアセンブラばかりだったから。
>>43 あの、私、一人でしか使わないソースでもクラスつくりまくるんですが・・・
でも、OOPマニアとしてはクラスは必須というか、 プログラム自体よりも萌える。
template<class PAIR> class LessSecond:public binary_function<PAIR, PAIR, bool >{ public: bool operator()( const PAIR& lhs, const PAIR& rhs){ return lhs.second < rhs.second; } }; とか。
48 :
仕様書無しさん :02/05/23 01:31
>>45 ファイルサイズより、優先したいものがあるからでしょ。
で?何?
C++知ってると他言語への乗り換えが楽。
現実世界を忠実に再現可能な言語は、C++以外にしらないね。 たとえば、光速度一定という現実世界においては、すべての ものに、共通に流れている概念は、やぱーり、グローバル変数 に取れてほしい。いちいち、ベースクラスをすべてのオブジェクトが 継承するのは、おや。と思うよ。あと、多重継承も必要だし。 いや、生産性の観点からいってる訳ではないよ。これは、OO言語 の現実をシミュレートするという観点からのみいっているだけだ。 海にすむ魚さんをシミュレートしたいとき、すべてのオブジェクトが 海という共通のものを外部に持つなら、グローバルにとりたいしね。 別に、クラス海を作りたくはない。
>>44 ゲーム機限定で。
CPUとかのハード構成が固定されているなら、
アセンブラは重要な選択肢になり得るはず。
CPUやハード構成が流動するようなゲーム機は、とりあえず知らない。
だからゲーム機なら大抵使ってると思う。
>>52 > クラス海を作りたくはない。
身勝手な!現実世界をシミュレートしてないと思われ。
クラス地球、クラス宇宙も作ってください。
# 多重継承は未だに必要性がわからん。今度教えて。
55 :
仕様書無しさん :02/05/23 01:48
>>53 PSでは使ってなかったんだわさ。
(使ってるソフト会社もあるにはあったろうが。)
GBとSFCは使ってたけどね。
だから、今の世代のゲーム機(PS2とか、ゲームキューブ)だと、
もう、アセンブラは使ってないのかなぁ、と思ったんだわ。
最近はサーバーサイトまで、Javaで作ってるみたいだし C++の需要はだんだん減ってきているのは、事実だね。
>>56 ハードの進化に合わせて低級言語を封印したら、
性能の進化が相殺されてしまう。もったいない。
でも、PS2やGCとかだと、移植性の問題が持ち上がるかもしれない。
GBAなら遠慮は不要と思われ。
どちらにせよC++が最強のはず。
>>53 アルゴリズムの方が重要だって教わらなかったの?
アセンブラ信奉者は逝ってよし。
61 :
仕様書無しさん :02/05/23 02:03
62 :
仕様書無しさん :02/05/23 02:04
>>59 C++はいいのだが、最強とか一番とかいう言葉ふさわしくないよ。
今となってはC++は中途半端な言語。 どうせお前らVCだけだろ。
64 :
仕様書無しさん :02/05/23 02:10
中途半端というか拡張し過ぎとうか
なんつうか、C++は、マニア向け。幼少のころ、プラモデルを プラバンから部品おこして、作ってた奴ら用。C++にしかでき ない曲芸がある。これ、プロの道具。しかし、使いこなしに は、修行がいるし、新しい仕様がせめてくる。いいかげん、 固まってくれ。
C++はメモリの管理がめんどくさい。
>>59 > 性能の進化が相殺されてしまう。もったいない。
そんなことないんじゃない?
単純な処理にアセンブラを使うのと
単純な処理にC++を使うのと差は無いと思うよ。
コンパイラの出来次第では。
>>65 プロとマニアは別物と思われ。
それ以外の部分は禿同。
C++はCUI言語、Java、C#はCUI・GUI言語
>>70 なんだ、そりゃ。でふぉるとのライブラリのある、なしってことか?
それとも、マルチスレッドへの意識ってこと?
>>60 >>67 なんでもかんでもアセンブラってわけじゃない。ちゃんと出番は選ぶべき。
ローティトやキャリーフラグで最適化できる個所があれば、
そこを最適化する「余地がある」のが重要。
>>62 「C++が現状で最適だと思う」に訂正でいい?
73 :
仕様書無しさん :02/05/23 02:25
組み込みとPLDはC++かもな
74 :
仕様書無しさん :02/05/23 02:28
ちゃんとプロファイリングしてからでないと、アセンブリ言語で チューンしても、骨折り損のくたびれもうけ。
>>69 アセンブラをWInやLinux上でしかやったことないでしょ。
コンパイラも作ったことないでしょ。
プログラミングをするにはC++でもいいけど、 ソフトウェアを作るのにはC++はいや。 ユーザインタフェースが無いならC++でもいいけど、 ユーザインタフェースがあるならC++はいや。
>>72 > 「C++が現状で最適だと思う」に訂正でいい?
それなら、いい。
というわけで、いまどきは、C++でけてーい。だな。
開発期間を自由に設定できるならC++でもいいけど。 急いで作らなければならないなら、C++は嫌。
今がピーク?
つまり、C++はまだ古くないってことで、イイですね?
82 :
仕様書無しさん :02/05/23 02:35
>>72 それも良くないかも。
簡単に書きたいときは他の言語に分があるしねぇ。
これからは古くなっていく一方。
まだまだこれから
C++の実験的言語開発は、まだまだ続く。
お勉強、お勉強。C++本。作家がもっとも活躍する分野さ。 やれ、Generic。やれ、Generative。 C++極めて、しゅぱーん。これがつう。
>>86 まだまだ、言語仕様が拡張されるということですな。
>>82 C++がアセンブラと混在できるのを評価してるんですけど、
その「分がある」他の言語の中にアセンブラを混在させる
ことのできるものがありますか?
90 :
仕様書無しさん :02/05/23 02:56
C++・・・・・ 1)速くしようと思えばいくらでもチューニングを受け付け、 2)安全性を高めようと思えばいくらでも構造を固められる。 現状、C++以上に使いでのある言語・・・・・ねーなぁ。 D言語がまともに出たらそっちに傾倒するかも知れんが。 JavaはJIT次第というが、その優れたJITとやらににめぐり合ったことねーし、 (そもそもC++よりも早いコードを出すJavaのJITってあるのけ?) C#は単純なベンチマークでC++に負けるしな。 (単純なコードが遅いコンパイラは複雑なコードも遅い、の法則。) 「いまどきC++かよ」なんてやつは逝っていいな。 少なくとも、そんな寝言はJavaのJITがC++のコンパイラより優良な コードを吐くようになってから言えってことで。 まあ、Webアプリ系には不向きだと認めてもいいけど。うん。
92 :
仕様書無しさん :02/05/23 02:59
>まあ、Webアプリ系には不向きだと認めてもいいけど。うん。 そんなこともないだろ、サーバーサイドだと。
>>90 言語じゃなくてコンパイラとコンパイラの実行環境の話をしてるのか?
C-Style cast禁止オプションがホスィ
95 :
仕様書無しさん :02/05/23 03:02
文法のみの話なのか?
>>93 机上の空論より実務レベルの話の方が有用じゃない?
96 :
仕様書無しさん :02/05/23 03:03
おいら、C++何年もやってるけど、毎年去年の自分を振り返って まだまだ未熟だったと思えてしまう、すごい言語だ。 多分一生いっしょ懸命しょ。
98 :
C++10年生 :02/05/23 03:05
便所に目が覚めてついパソコンに電源入れて2チャン見てしまう。。。 それにしても、わずかな時間でこれだけスレが伸びるんだからC++はすごいね。 じゃ、お休み。
99 :
仕様書無しさん :02/05/23 03:05
>>93 まあ、言語のよしあしはともかく、
実行環境やコンパイラの性能の良さは魅力だということだろ?
>>95 実務レベルの話なら、たとえベンチマークで負けても
実用上問題にならない範囲ならそれほど重視することでもないだろう。
実用上問題にならないレベルならそうだね。 でも、俺の実務では速度面のチューニングの必要があるので、 C++より劣るコードを吐く環境は使えないのだった・・・・。 (それでも、同じアプリケーションだったら俺は速い方をとるけど。 現時点でC++とJavaで開発効率に大した差なんて出ないし。)
C++って学習効率悪くねぇ? などと言ったら叩かれますか?
> 現時点でC++とJavaで開発効率に大した差なんて出ないし。 いいクラスライブラリ持ってるんだね…
>>102 乗り越えてやってください。確かに、OOの解説がjavaで
実装されている例が目立ってわかりやすいのには、同意。
C++罠多すぎ。相当詳しくならないと罠に引っかかりまくり。 STL使わないと効率上げられないのがいや。
>>105 あと、emacsの環境がC/C++のほうが素敵。jdeは、遅い。
cintいけてて、すぐ試せるし。
× STL使わないと効率上げられないのがいや。 ○ 効率上げるのにSTLが出てくるのがいや。
>>106 まあまあ、iccも絶好調だし、あとは、gdbが対応するのを松。
stlがいけてくるのは、これからだよ。きっと。
STLマンセー
MFCがあれになったんで、これから公然とSTL使えるのがうれすぃな。
本来、ねた擦れなのに、こんなに繁盛。やっぱいまどきC++ ってこと?ともかく、やっとけ。英語と同じ。
113 :
仕様書無しさん :02/05/23 03:28
STL を使うと効率が上げられるから好き。
114 :
仕様書無しさん :02/05/23 03:29
よしあしはあるけど、C++が古いという話にはならん気がする。 まあ、現状でOSの大半がC/C++で記述されている以上、 古いというには早いよな。 OSが他の言語主体で記述されるようになったら、そのときこそ 「いまどきC++かよ」って言っていいと思う。
115 :
仕様書無しさん :02/05/23 03:30
テンプレートはいまいちなじめないな。 さらにテンプレートがらみの罠は解説書読んでも???な漏れ
117 :
仕様書無しさん :02/05/23 03:34
>>115 「STL 標準講座」がお勧め。
あとは、自分で関数テンプレートやクラス・テンプレートの簡単なのを
作って遊んでみるといいです。
するとどんなもんか分かってきて、C++ に付いてくる STL の便利さが
よく分かります。
>>101 スピードを気にするなら、C++よりも
いっそCの方が良いと思われ。
さすがにアセンブラとは言わないが。
C++ ==>java ==>C++(comeback) できた奴いる?
>116-117 ありがとん
>>119 C++==>java==>Delphi==>java
と来たけど、趣味でPGやってるわけでないので、
C++に戻るメリットがないっす。
>>119 俺は、C++とJavaを同時に扱ってる。
年取ったせいか、たまーに、自分が何やってるかわかんなくなるのが鬱だな。
>>112 プログラムを知りたいなら、やっとけって感じだけど、
そうでないなら、時間の無駄と思われ。
>>121 いや、漏れのまわりのやつで、C++==>java
して帰ってきた人がいないんよ。まじで。で、javaも打つけどC++
まんせーな漏れは、悲しいわけよ。
いまだに全角で言語名書くやついんのな。
>>125 それ言う人、ときどきいるが、どういうこと?
C++とかJAVAって書くと何か問題でも?
// copy_if (´-`).。oO(何でstdにないんだろう?) template< typename InIte, typename OutIte, typename Pred> OutIte copy_if(InIte begin, InIte end, OutIte dest, Pred func) { while( begin!=end ){ if( func(*begin) ) *dest++ = *begin; begin++; } return dest; }
ただのオナニー。気にすんな。
>>118 >スピードを気にするなら、C++よりも
>いっそCの方が良いと思われ。
速度だけ気にするならそうなんだけどね。
C++の開発効率とバランスとらないと。
ちょうど、速度要求と開発効率の要求が交差するところにC++があるんだわ。
煽りではありません。javaのメリットを一つだけ上げるとすれば 何を選びますか?
>>130 run somewhereだろうなあ。
132 :
仕様書無しさん :02/05/23 03:47
Javaのメリットを一つだけ? 「シリアライズが簡単。」 これだけはC++では及びもつかないと思うが、どうだろう。
>>133 gcライブラリなんとか標準まで高まらんかのう。
>>130 クライアントからのメリット:
プロジェクトの単価切り下げ要求がしやすい
# Javaのガベージコレクタって、参照が切れると掃除する方式?
>>130 あいまいだけど、ほどよい具合に文法が単純化されてるところ。
>>131 画面レイアイトは、環境によって微妙に異なってしまうというふうに
聞いたことがあるんですが、どうですか?
140 :
仕様書無しさん :02/05/23 04:06
C++とCを実行速度で比べるのは間違ってると思うが、どうよ?
>>137 あそこのコンテナは、STLより性能いいのがあるよね。
あと、cintがdebian以外でも簡単にいんすこできる。
みんな使ってみ。あそこのTFileは、MSのより性能いい。
最近は、マシンが悲しくなるほど早くなっているから、実行速度に ついて考える機会がめっきり減ってしまった。
>>142 //早くなっているから
速くなっているから
スマソ
>>135 Javaまともに使える人間って凄く高いです・・・
>>144 まじかよ。どんなアプリ作ってんの?いいなあ。
jbuilderを見る限りjavaはコストがかかってパフォーマンスは悪い
J2EEの経験者とか言い出すと高いよなぁ。
コストパフォーマンスなら真剣に、関数型言語でlisp系統のもの を極めたほうがいいような。ocamlとかどう? 開発に使ってるやついる?でもマイナーってとこがいたんだよなあ。
まあ、けきょーく、C++は、入試問題でいうところの 長文読解とかでさ。高配点がおかれてる。これを回避して 別の分野を得意になっても、どっかで、知らないとネック になる。そういうもんだなあ。で、>1は、まあやっとけ。 てのが結論だろうなあ。すべての機能を使う必要はないし。 (新しもの好きが、使ってくれてわけわからーーん。てなるよ。)
難しいのやっとけば、あとは簡単。
C++自体はそれほど難しくないんじゃないの? Javaのライブラリ把握する方が大変なんだけど・・・。
>>152 >ライブラリ把握する方が大変なんだけど・・・。
それは、C++もおなじ。困るのは、ライブラリ作った年代が
違うと使われているテクノロジが違っていたりして、もう
大変。これからlokiとかはやるんでしょうな。
>146 開発費。まともな技術者は単価が高いと言うことですので。
>>152 C++の方が標準のライブラリが少ない分、
いろいろなライブラリを使う羽目になるのでJavaより大変。
> MFCがあれになったんで、これから公然とSTL使えるのがうれすぃな。 MFCのアレとは何ですか?
>>156 MSの主力がMFCでなくなったということでわ?わからんけど。
158 :
仕様書無しさん :02/05/23 06:49
オレはもう8年くらいC++ばっかりだけど、 (当初はcfrontだった。今はVC++) プログラムを書くのは事実上、C++しかありえないって 思ってるよ。 けど、最近40前のショボいやつの書いたソースに 手を加えるようになって、あまりにも酷いソース だったもんでC++って難しいもんだなって思った。 こういう輩にはJavaのほうが、いやVBでもいいけど、 JavaやVBのような言語のほうがいいんだろうなって 思った。
>>158 そういう奴はJavaでもstatic馬鹿とかhash馬鹿になるような。
一晩でレスポンスが150もついちゃうと追いつけないわ。
>>1 だけ読んでカキコするけど、
C++は別に古くないわ。これから発展し使われていく言語だわ。
言語によるOOPの支援が必要で、かつアセンブラに近い速度が必須な領域では
C++の他に代替するものがないからだわ。
ただ、C++が使われるとStroustrupが予測したであろう分野の何割かは
Javaが持っていってしまったようね。
いずれにせよ、プログラマはプログラミングの本質を知っておく必要がある以上、
C++だJavaだとこだわらず、Multilingualであることが要請されているわ。
言語はツールよ。適材適所だわ。
161 :
仕様書無しさん :02/05/23 09:09
>>160 >言語はツールよ。適材適所だわ。
言語は思考を規定するんだよ、馬鹿!
アセとCとJavaを知っていれば十分
設計段階ではもうちょっと抽象レベルを上げた方がいいと思うわ。
>>158 どういう基準でむごいのかな?
コードが論理的でない?
# これって言語問わず結構多い。ロジカルシンキングの本でも読んでくれ。
それとも、C++の機能をしらない?
# これはVBを使ったときの方が多い。VBもしっかり勉強しる。
# VBから始めたやしが多いからか?
それとも、こまかい記述の問題?
# これはC++経験者のほうが美しい。みんな一度はC++。
>>161 何に対して十分なのか、わからん。
> 言語によるOOPの支援が必要で、かつアセンブラに近い速度が必須な領域では
> C++の他に代替するものがないからだわ。
「代替するものがない」ってことはないですよ、
近い(であろう)ところでは、Delphiがあるよ。
もちろん、(事実上)アセンブラ使えるしね。
# 「C++」という表現とは、意味合いが異なるが。
あたしもDelphiは昔個人的に使ってたけど、 やっぱり言語って共同体であり、文化だから 独自の処理系にcommitするなら覚悟が必要だわ。 製品寿命よりも前に、言語の寿命が尽きてしまうようではまずいのよ。 UNIXが21世紀まで生き延びられたのは、Cで書かれていたことと無縁ではないと思うわ。 いまのところ、C++以上に長期間生き永らえそうなオブジェクト指向言語は 見当たらないわ。 でもSmalltalkについてはコメントを避けるわ。
>>165 Delphiをもって独自というのはどうだろうか VCLさえ使わなければ FreePascalがある
168 :
仕様書無しさん :02/05/24 08:23
C++も20世紀中は仕様がゴロゴロ変わって、やっと最近安定してきた(枯れてきた)状態では? たとえば1995年のC++ソースは今コンパイルエラー無しにコンパイル出来ない筈 (もちろん 殆どCというレベルのソースなら別だろうけど) それに比べて ObjectPascalのコードは 1995年頃のコードでもそのまま通る筈 またpascalのコンパイラはC++よりよほど簡単だから 必要なら自分でコンパイラ作ったって それほどの手間ではない。 結局は、移動したいCの資産は大きいが、Pascalの資産はそれほどではないというだけだと思う
169 :
仕様書無しさん :02/05/24 08:50
>>162 おれもそう思うんだが、
簡単でかつさまざまな使い方ができそうなものがいいんだよね。
あなたのPascalを愛する気持ちは大切にしたいわ。
CというのはもともCPUの動作が分かっている プロ・マニア専用の言語だったのに 初心者がいきなりCを使う時代になってしまって 糞コードが大量生産されてしまったんだよな〜 特にC++になってからは酷さが加速〜
ある意味 初級者はVBで高レベルプログラミングし 上級者はC++でローレベルプログラミングし それを合体して製品に ・・・・ というスタイルは効率良かったのかもな .NET になってその垣根を曖昧にしてしまうと、現場の混乱が増して生産性低下なんて事にはならないかな
C++は良くも悪くも諸刃の剣。 知らない奴はモグリだが、それしか見えない奴も進歩がない。
174 :
仕様書無しさん :02/05/24 18:51
C++ってホントに世の中に流通してないので、あまりコードを見たことがない。 でもいるぞ、Cから離れられないコード書くヤツ。 グローバル変数きってるぞ(w しかもトータルで100メガくらい。 全部クラスに突っ込んで、スタティック変数に氏解きました。
>全部クラスに突っ込んで、スタティック変数に氏解きました。 カー
完璧なC++コード「も」書ける人は、天才だと思う。
天才は、凡才よりも良い物を作るというダケだよ。 そんで、言語が悪いほど、凡才と天才の差は広がる。
開発者は、新言語によってソフトウェアの質を上げようと努力し、 ユーザは、思いもよらない方法でソフトウェアの質を悪くしてゆく。 この不毛な競争が、 常にユーザ側の勝利で終わってきていることは 歴史が証明している。
ユーザーがソフトウェアの質にタッチすることができるのか?
183 :
仕様書無しさん :02/05/24 19:29
>>182 例えばユーザの運用次第でCのままでもオブジェクト指向的(ちょっとあいまい)
なプログラミングは可能です。
ほとんどのコードやデータはstatic宣言して、I/F関数だけヘッダファイルで
公開することで隠蔽できます。コメントでクラス宣言でもするようにすれば
本人の意識次第でクラスになることでしょう。
ごめんごめん、ユーザー != エンドユーザーという文脈で 読まなければいけなかったんだね。
[言語の]ユーザ、ね。
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>> C++
-------風俗の総合商社・MTTどこでも-------
〇デリバリーヘルス〇デートクラブ〇女性専用ホストクラブ〇
〇ハードSM奴隷クラブ〇レズビアン倶楽部〇ホモ・オカマ倶楽部
〇変態痴女と遊ぶ会〇痴漢・覗き趣味の会〇変態同好会・各種!
●楽しく遊べます! 090-8002-8356番
-----------美男・美女会員など多数在籍中-----------
http://www.mttdocomo.jp/ -----女性アルバイト随時募集・高収入(日払い)月100万円可能-----
-----レズビアン・スタッフ●ホモスタッフ●女性専用ホストスタッフ同募-----
http://www.mttdocomo.jp/ ------------------------------------------------
>>168 細かいことだけど、1995年頃のなら問題ないんでないの?
言いたいのはforなどのスコープの問題だと思うけど。
190 :
仕様書無しさん :02/05/25 00:09
>>181-182 金を払う人がU座、
文句ゆうひとは、必ずしも u座ではない。
PLならば、見間違うな。
192 :
仕様書無しさん :02/05/25 00:38
>>191 納品先は極端に言えば処理系に依存するつもりはないだろう。
レガシィを生かせと言うなら話は別だけど、それでも大して変わらない。
193 :
仕様書無しさん :02/05/25 00:43
しっかし今日C++がいいなんていってる馬鹿がいたらツラおがんでみたいよ。 いねーだろけどさ(w
C++ にはひとつ大きな問題があってな、一度味をしめちゃうと タマに C で書いてるとイライラしてくるんだ。
195 :
仕様書無しさん :02/05/25 00:45
>>193 C++はいいぞ。
馬鹿じゃ出来ないから、ウザいヤツが周りにいない(w
おまえさんも理解できなかったクチだろ(ww
>>193 // 明日言おうかと迷ったが
今俺が書いてるのはパフォーマンス要求されるんで、C++ じゃないと困るんだがな。
197 :
仕様書無しさん :02/05/25 00:48
>>195 理解しようと思う気がどうしてもおきなかったな、あれは。
どブスに股広げらた時のチンコの気持ちつーかさ(w
198 :
仕様書無しさん :02/05/25 00:50
199 :
仕様書無しさん :02/05/25 00:51
>>196 ふかしだろうが一応聞いてやるか。
コンパイルオプション逝って美奈(w
200 :
仕様書無しさん :02/05/25 00:53
200!
201 :
仕様書無しさん :02/05/25 00:54
/Zd
>>199 コンパイルオプションでどうにかしようと思うヤシは素人。
>どういう基準でむごいのかな? 話せば長くなるけど、 ・1つのクラスにデータメンバが数十個ある。 整理すると一時的な変数にするべき変数がメンバになって いることがあった。 ・関数が長い。一見分からないが、小さな関数に分けて 整理してみると同じことを2回やってたりする。 ・クラスの独立性がない。あるクラスのメンバの値を一時的に 退避させといて、別のクラスの機能のためにメンバー関数を 使わせて、あとでそのメンバの値を復帰させたりしている。 ・同じプロジェクトのほかのメンバーがstd::vectorやstd::list を使ってるのにバカの一つ覚えで連結リストばっかり。 ・is-a関係でないものを共通する処理があるという都合から 派生関係にしている。 ・仮想関数がほとんど使われてない。 ・数行に渡ってコメントアウトしている処理が多いので、 何が正しくて何が正しくないかわからん。 ・RECT 型同士のoperator+やoperator-が定義されていて、 それぞれのメンバが加算(減算)されている。 一体どういう処理で必要なのか調べてみたら、全然 使われなかった。 ・ともかくヘッダファイルの作り方が下手。 クラスが増えるたびに編集するヘッダファイルに、 そのクラスを引数にとる関数が増える。 そしてそのヘッダファイルを殆どすべてのソースが インクルードしているから、それを編集してしまうと、 そのたびに全コンパイルで20分くらいかかる。泣きそう。 とまあ、こんな感じ。
205 :
仕様書無しさん :02/05/25 01:48
>>203 やぱーりハッタリだったか。予想通りだけどね(w
それともパフォーマンスって粘りのこといってんのお?(w
IA-64が広まった時がC++の命日
207 :
仕様書無しさん :02/05/25 01:56
C++は事務処理やD/B更新、手続き系には向いていない。 Javaは基幹業務には耐えられない。 そこでC#に走ると開発効率が悪くなる。 やっぱ、VBでしょ、って考えるとC++がずっと前に思える。 だから、いまどきって言うんだよ。
210 :
仕様書無しさん :02/05/25 03:49
>>204 それは腐れオブジェクト指向にはまった典型的ケースですね。
MFCみたいな。
そうなりがち、というのはわかるけどね。
腐ってないオブジェクト指向は美しく記述できるよ。
アスペクト指向風に考えると案外きれいに書ける。
211 :
仕様書無しさん :02/05/25 03:53
>>207 言語仕様が問題ではなく、プラットフォームや環境が、
欲しい機能をもともと持っているかどうかという問題では?
整ったクラスライブラリを持つC++環境は、大抵最強だよ。
(問題は、そのクラスライブラリを作れる人が少ないということでね。w)
212 :
仕様書無しさん :02/05/25 03:54
アスペクトシコウってなによ?
213 :
仕様書無しさん :02/05/25 03:55
オブジェクト指向の次に流行りそうなやつ。
214 :
仕様書無しさん :02/05/25 03:59
CPUの並列実行性能が今より格段に上がると、 Verilog風のハードウェア記述言語みたいなのが台頭してくると思うけど、 現時点でC++最強は揺るがないと思う。 しかしその時点で、C++も使いこなせないようなへたれPGが並列動作する タイプの言語を使いこなせるとは思えなかったり。
オブジェクト指向は一過性の流行りだったのか? あれはりっぱな啓蒙の結果だと思うんだが。
>>212 勉強不足だよ、がんがれ。(聞く前に検索くらいするよろし)
217 :
仕様書無しさん :02/05/25 04:04
>>215 オブジェクト指向はOSの発達に必要だったと思うね。
実際に大規模なOSやアプリケーションが世に出たのはオブジェクト指向の結果だし。
ただ、最近はそれだけじゃだめってことになってきてると思う。
>>215 勘違いしてそうだから言っておくけど
アスペクト指向はオブジェクト指向に取って代わるものじゃなく、
オブジェクト指向をさらに発展させたものだからね。
219 :
仕様書無しさん :02/05/25 04:18
>>218 ほうほう。検索してみたが抽象的な話ばかりだなあ。
とりあえず Gregor Kiczales の論文を手に入れたので
印刷して読んでみるよ。
しかしオブジェクト指向を発展させたというようなことは
書いてなさそうだぞ?
218じゃないけど いや、オブジェクト指向の考え方なしにアスペクト指向は成り立たないよ。 218氏の言うのは多分そういう意味。 現行オブジェクト指向の問題点を指摘し、 現実的な解決案を提示していると思うので、 俺のところでは可能な限り採用している。 オブジェクトを巨大にしないように努力する方針を立てるのが その第一歩ってとこかな。
C++って言語使用が複雑怪奇で、設計は更に大変で もっと楽に使える言語にシフトして行っているんだ。
222 :
仕様書無しさん :02/05/25 04:52
>>221 でも、その程度の設計を厭うPGのプログラムの細部に神は宿らない。
223 :
仕様書無しさん :02/05/25 07:20
>>222 そうかな? C++だとエンジニアの数だけ違った設計が出来てしまうでしょ?
同じ事を実現するのに クラス/テンプレートさらに#define
と多様といえば聞こえがいいけどさ
おかげで、複数でプロジェクトを組むと余計な管理しなくちゃいけない
最凶
C++わかんなかった厨がわめいているって結論でよいですね。
VBにしとけ
227 :
仕様書無しさん :02/05/25 10:38
ていうか、本気でJavaが良いと思ってる? template無いし、ガベコレなんてウザイだけじゃ! プリプロ無いのも耐えられん。
228 :
仕様書無しさん :02/05/25 10:57
C++はそれぞれのアイテムが強力すぎて、俺にはバランスを欠いてるように思う。 templateは強力だけど、STLはともかく、自作templateなんて使われてると正直読めない。 確かにC++ひとつで万能的に短く効率的に書ける事は認めるけど、毎日使う道具としては 重たくて肩が凝る感じがする。 俺はどっちかいうとローレベルの記述はCが好きだけど、ハイレベルはCと似てない文法の方が好き
>>227 >ガベコレなんてウザイだけじゃ!
ここ以外はかなり同意、テンプレートは必須、プリプロセッサもないと不便。
230 :
仕様書無しさん :02/05/25 10:59
でも、ヘッダを書くのも見るのも面倒だな。
GUI位、言語の標準ライブラリでカバーしてくれ。
言語とUIは直交する概念だからいっしょにしないほうが(・∀・)イイ!!
233 :
仕様書無しさん :02/05/25 12:06
もう言語はC++まででいい。これで作れないものは無い。 もうこれ以上は憶え切れん。限界だ。 なにC#...。 おまえは何者だ!!!
>232 言語とストリームや、 言語と内部ソートとかは直交しないの? ...ってゆか直交って?
高速処理
>>234 ストリーム、は比較的独立性が高い、別になっててもいいと思う。
ソート方法とかはあと程度以上は言語から切り離せないところがある。
でもC++はちゃんとそこらへん切り離せる部分は
切り離すこともできるようになってる。
直交、っていうのは、軸の独立性、っていうかなんていうか、
ポリシーが完全に分けられること。
「よいUI」というものは実装するは言語には依存しないでしょ。
×実装するは言語 ○実装する言語
たとえばあと十年もしたら 今のGUIを越えた3DUIとか出てくるだろうけど、 それはどんな言語で実装してもいい訳だし、 そういうUIが出たからって言語自体は何の影響も受けず よりよい言語を目指すことができるわけだし、
>>238 3DUI
↓
膨大な量のAPI
↓
クラスライブラリでもないとやっていけない
↓
クラスライブラリ移植された言語がデファクトに
↓
今まで通り。
>>239 そういうことでしょうね、
C++はそういう不毛なものを無視して今までどおりやってればいい。
それができるのは言語がUIとかから直交しているから。
241 :
仕様書無しさん :02/05/25 13:38
ガベージコレクタの無い言語は逝ってよし!
>>241 同意。
でも、GCある言語からプログラムの世界にはいると痛い目を見ると思われ。
C++ は実行効率最優先 (元々 C がそうだし) なので、GC なんか百害あって一利無し。 勿論、GC を仕様に含めた言語はあってもいいが、 何が悲しくてそれを C++ のような原始的な言語に導入せねばならんのだ。
244 :
仕様書無しさん :02/05/25 13:45
>>207 「メンテはウチ(グループ系の子会社)でやりますんで」ってことで、
VBで作ったシステムとお客さんの要求がかみ合わず(VBで出来ない事を言う)、
話し合いでVCで作り直した、なーんて話はよく聞くけど。
とにかくUIパーツの量次第で、実用性を失うのがVBだから。
結局VCで出来たアプリは、作ったトコが面倒見てんじゃない?
> でも、GCある言語からプログラムの世界にはいると痛い目を見ると思われ。 N88BASICからプログラムの世界にはいりましたが、何か?
246 :
仕様書無しさん :02/05/25 14:35
C系は特にデータエリア、コードエリア、スタックエリアをどう使うか意識しないと、 美しくもコンパクトで速いプログラミングは出来ません。 VBやJAVAは意識できないのがネックです。 私の車はマニュアルシフト車です。
今年の初めくらいにム版の死滅系スレで 簡単なプログラムで C と Java の実行結果比較したけど 殆ど同じか、Javaのほーが速かったね。 実行効率良いから C++ 使うって連中、ウデ悪いんじゃない? それに generics は開発者用サンプルが出てるし、 プリプロセッサも検索かければいっぱい出てくるだろうに…
>C系は特にデータエリア、コードエリア、スタックエリアをどう使うか意識しないと、 そんなもん意識しても速いプログラムや美しいプログラムはできません。
vector<int> a; a.reserve(1000000);
250 :
仕様書無しさん :02/05/25 14:59
では、簡単でないプログラムで比較するとどういう結果になるかしら? あたしたちがC++で作るプログラムは、たいていは簡単ではないと思うわ。
そのかわり 開発速度他も違うけどね。 あと、複雑でいて、かつVB使いも C++使いも Java使いも 納得できるような「同じ」プログラムなんて面倒くさくて 作ってられません。
>>247 すまん、信じられないし、見たことないんだか、
どんなスレだ?
C++/Java/ObjectPascal をそれぞれ仕事で使ったけど C++ が一番だったなぁ。 自分の書いたコードがどういう汗に落ちるかが大体見えるし、 template、多重継承、マクロ、関数ポインタ、グローバル変数、などの合わせ技が強力。 プログラムの隅々まで自分で手を入れたいなら同様の他の言語は代替にならないと思う。 できあがりの質以前に、ソフトを今作ってる、って感覚が一番味わえる言語。
256 :
仕様書無しさん :02/05/25 15:11
C++でかいた簡単でないプログラム → メモリーリーク&スタック破壊 → あぼーん(w
メモリリークはCよりC++の方が防ぎやすいわよ。
>>257 わかってる人ならね。
そういう部分を実行効率よく隠蔽できるのがC++の強みなんだが・・・
"resource acquisition is initialization" テクニックを知らないなら C++プログラムを書いてはいけないわ。 例外安全に書くためには、他に道はないわ。
ある程度C++についてわかってる人から見れば、 定石であってそれ以外の道はないというようなことも C++使い以外の人から見ればやらなきゃいけないことが増えただけに見える。 開発速度が遅いとかいわれるのはそのためだろうけど C++使いに言わせればあたりまえの事をしているだけ、 ほかの言語と比べて何ら開発効率が劣るわけでもない。 壁があるな、やっぱ。
261 :
仕様書無しさん :02/05/25 15:27
>259 ソレはナニに対するレス? メモリ上(含スタック上)に確保したけど初期化は完了してないようなもんは生成するな!ってこと? まぁ C みたいに関数の入り口で全部変数用意したりってのはやらないよなぁ、今となっては誰も。for のループ変数だってその場で用意するし。 え?そういうことじゃないって? #しかし今日は行く先々でネカマPGに会う…… #モノホンの女の子に会いたいのだが…… #土曜出勤して……一人 (T_T)
263 :
仕様書無しさん :02/05/25 15:40
>>259 >"resource acquisition is initialization"
なにあたりまえのこと力説してんだろ、このひと。
だからC++使いは低レベルだっていわれるんだよ。
「C++だとメモリリークが増える」という誤解に対するレスポンスだわ。 "resource acquisition is initialization" テクニックについては Stroustrupの"プログラミング言語C++"の、 14.4.1 "Using Constructors and Destructors" の項を見てほしいわ。
266 :
仕様書無しさん :02/05/25 15:44
C++は芯だ!
268 :
仕様書無しさん :02/05/25 15:46
new,delete使うより、ヒープ領域使ったほうが オーバーヘッドがなくて処理は速いとか 知らねえっての
Rubysaikyou !!!!! Ruby!!! dfklげwgbRuby!!!!
いったいrubyは何の恨みを買っているの?
271 :
仕様書無しさん :02/05/25 15:51
new deleteは欠かせません。 メモリリークを防ぐセーフティーなメカニズムです。 そころでWindowsではどう動いてんの? Global(Local)Lockとか組み込んでないよね?
>>271 >new deleteは欠かせません。
プ
273 :
仕様書無しさん :02/05/25 15:56
>>272 はいはい。
ガキはすっこんでろ。
何歳?
少なくとも、C++のコンセプト上はnewとdeleteは必須だろう。 なんてったってC++使いは神であると「仮定」されてるからな。 やれやれ、だ。
275 :
仕様書無しさん :02/05/25 16:13
>269 Ruby ってよくしらないんだけど、Ruby 自体はナニで書かれているの? なんか Ruby に関しては shige ってひとがよく書き込んでるみたいだけど、肝心の言語の仕様についての書き込みがないのでよくわからない…
>271 書くなら「デストラクタは欠かせません」だろ? やれやれ、だ。
この決め文句は流行になるのか? やれやれ、だ。
500を待たずにネタスレ化。 やれやれ、だ。
RubyはCでかかれてる。 やれやれ、だ。
new とdeleteは便利だと思うな。 JavaとC++とで簡単なプルグラム書いたら 実行速度はJavaが上だったとか書いてあった見たいだけど。 それは多分C++のヘッダファイルに余計なものが多かったんでがしょう。 単純なプルグラムに於いて、 ネイティブコンパイルに言語の違いによる差は大きくないと思われ。 大きなプルグラムだと、言語の特徴がでるために差はでるだろうけど。
282 :
仕様書無しさん :02/05/25 20:20
>>281 Javaは環境次第で既に半分動いてるような状態にも出来るんじゃん?
まあ、どっちが速いかはGUIアプリ使った人は人に訴える必要がないくらい
よく分かってるだろうけど。
>new とdeleteは便利だと思うな。 ??
>>281 いや、C と Java の比較だよ。
小さなプログラムだと言語の差が出無いのに、
大きなプログラムだと言語の差が出るってのは
良くわからんね。どーゆーことか説明してくれる?
なーんかネカマさんとかよりかなーりレベル下がったような・・・
GUIよりGUTを理解できる人間に私はなりたい。
286 :
仕様書無しさん :02/05/25 20:52
なんか new, delete が単なる便利な関数のようにかかれていることがあるのが気になる。 new, delete は便利だとか便利でないとか言う以前に必須。 ちなみに new, delete は演算子。 あと自分が使っている C++ 処理系で、一度 ::new, ::delete の実装を確認しておくとよいと思う。 デバッグバージョンでは ::new, ::delete を書き換えてメモリリークを厳しくチェックするようにしたりバッファオーバーフローをチェックしたりするのはよくある技法。
287 :
仕様書無しさん :02/05/25 20:52
>>281 >JavaとC++とで簡単なプルグラム書いたら
>実行速度はJavaが上だったとか書いてあった見たいだけど。
System.currentTimeMillisでも使って測ったんじゃないの?
あれバグがあって正確な計測はできないよ。
そういやいがぴょんとかいうアフォがJavaが勝ったとか大はしゃぎしてたな。
痛すぎる。
>>283 勝手に予想してみる
1.(malloc と free より) newとdeleteは便利だと思うな。
2.(garbage collectorより) newとdeleteは便利だと思うな。
どっちだろう?
スマートポインタ
>>287 System.currentTimeMillis() には
どーゆーバグがあるのかね? Win9x だと 50ms単位 になるとか?
>>287 ちなみに計測には clock() と spawn() 使いましたが何か?
>>293 そんぐらい自分で調べろよ、たのむから。
>>294 それだとVM起動時間もカウントされるよね?
それでもJavaの方が速かったの?何だか信じられん・・・。
>>295 UNIX環境ならあり得る。でもWin32ではどうかな?
>>296 UNIXだとJAVAが速くなるんですか?
ふーん。じゃUNIXだとC++じゃなくてJAVA使ったほうが良いんだ。
短絡的だな。(藁
っつか、実行効率重視だからC++使うっていってた人は UNIXでは実行効率重視してJAVA使うんだね、たぶん。
>>284 compiler作りが複雑化するということ.
>>303 小さなプログラム専用のコンパイラ使ってるわけじゃないんだけど…
複雑になるから最適化が失敗しやすいって言いたいのか?
プログラマを名乗るなら、 コンパイラくらい作ってみろよ。 モレモナー
>>305 他人の仕事に乗っかって仕事することを恥じる必要はない
CPUを設計できるプログラマがどのくらいいるか
CPUの製造工場を設計できるプログラマがどのくらいいるか
そもそも大抵のプログラマはいつもお世話になっているキーボードが
どうやって作られているかも知らないでしょ
エアコンの動作原理を知りませんが何か?
308 :
仕様書無しさん :02/05/26 02:26
>>306 >どうやって作られているかも知らないでしょ
設計?
製造?
>>306 この間キーボードにコーヒーこぼしちゃって、分解して洗ったのでなんとなく分かった気分になってます(w
310 :
仕様書無しさん :02/05/26 02:30
>>305 等しくプログラマはすべての分野におけるプログラムを作成できるべきだ、とでも
思ってるのかー?
プログラマを名乗るなら、 OSくらい作ってみろよ。 プログラマを名乗るなら、 言語くらい作ってみろよ。 プログラマを名乗るなら、
313 :
仕様書無しさん :02/05/26 02:51
>>312 ウィンドウシステムは作りましたが何か?
>>312 CASLアセンブラとCOMETエミュレータでよいか?
>>312 OS作成実習とか、コンパイラ作成実習とかなかった?
学校でプルグルムの勉強自体なかったが、 プレンティスホールのC++プルグラミングで勉強してて、 OSを作ろうのコーナーがありましたが、とばしますた。
>>313 実はテキストベースのウィンドウシステムとか?
それだったら、やったことあるけど。
>>315 無かったよ。
312じゃないけど。
そーゆー実習ってさ、設計から実装から全部やるわけ?
でも、それだと今の学生だったら半分くらい(もっと多いか?)の
生徒は単位落とすと思うけど。
俺は "OS"のソース(プリントアウトされた奴)とかを貰って
ただ単にそれを打ち込む実習、やる気のある奴は改良するなり
ゼロから作るなり好きにするって感じだと思ってたんだけど。
まあだいたいそのテの実習があっても
プロトタイプはすでに動くものがあって、
「ここをこう拡張せよ」みたいなものがほとんど。
スクラッチから書かせる実習なんてまず聞かない。
もしそんなもんがあったら
>>318 の言うとおり、
ほとんどの学生が単位とれないだろう。
日本の大学では、あまり学生を落とすと上から怒られるのよ。
だからそんな授業は教官がやりたくてもできない。
そして多くの生徒はてきとうに実習をすませ、
甘ったれたままで卒業していく。
320 :
仕様書無しさん :02/05/26 12:07
>>313 Motifの振る舞いとWin3.1の管理方法を取り込んだ自分的にはいいとこ取りのもの。
High-C386で組んだんだけど(これででわかる人はわかる)、今のC++があるところから
さかのぼって考えると、いやー、よく作ったわ。98とは違って少しづつ先どったH/W構成
だから、勢いも合わさってやれた仕事だろうね。
たうんず、という言葉がふと頭に浮かんだけど、 きっと頭の中に初夏の電波が飛び込んできただけだわ。
俺もあのターザン一家が微笑みかけてくる光景が頭に浮かんだ。 やめよう歳がばれる。
323 :
仕様書無しさん :02/05/26 12:54
324 :
仕様書無しさん :02/05/26 13:17
他社の知合いはアセンブラをはじめさせられたそうだ
325 :
仕様書無しさん :02/05/27 09:13
つーか今日C++に実行速度で負けるJava Runtimeがあったらみてみたいよ。 Cならいざしらず(w
>>325 それはC++がCより遅いといいたいのか?
>>327 どういう比較をするとそうなるんですか?
timeで測定するとそうなります
>>320 High-Cは、MS-Cより実行モジュールが高速でしたね。
あれ(タ?)のrun386が、仮想記憶無しだった面も速度的にはプラス
だったと思います。
C++の場合は、速いも遅いも設計と実装次第だから あんまり「C++は遅かった」とか喧伝しない方がオトクだと思うわ…
332 :
仕様書無しさん :02/05/27 10:23
>>331 おまえみたいなヘボといっしょにしないでね
>>325 JIT使わないんだったらJavaはC++に
どーあがいたって勝てないと思うけど…
>>331 >速いも遅いも設計と実装次第
ソフトウェアと名のつくものは全部そーだよなー
とかいってみるテスト
>>516 StringGridを継承してそういうのを作っておけばいいんだよ
>>335 誤爆ですね〜、Delモナスレのレスでしょ
∧,,∧ ミ;゚Д゚彡 実は、俺も気がついたんだ。 ∧,,∧ Σミ゚Д゚;エーッ!
>>334 仮想コード + インタプリタがネイティブコードに
速度面で勝てるとでも?
ひょっとして Java チップが云々言い出すのか?
チミ、実はJava使った事無いでしょ?
どうやったらJavaがC++に実行速度で勝てるんだよう。 教えてくれよう。 きわまったC++はCと同等か それ以上速くなるっていう漏れの認識はおかしいのかよう。 教えてくれよう。
そーゆー事は
>>325 とか
>>334 に聞いてくれ
>きわまったC++はCと同等か
>それ以上速くなるっていう漏れの認識はおかしいのかよう。
それはちょっと…
そーゆー比較なら「きわまったC++」vs「きわまったC」で
比較しないと。片方だけ「きわまった**」みたいな
「ひいき」をしだすとbasicだって云々とか そーゆーレベルに
堕ちていくよーな
341 :
仕様書無しさん :02/05/27 12:10
>>338 >仮想コード + インタプリタがネイティブコードに
>速度面で勝てるとでも?
馬鹿だなぁ。
だれもそんなキャッシュにおさまるような小さい処理の話なんかしてないって(w
>>340 そーか、すんまそん、
こりゃすげぇ、っていうCのソースってあんま見たことないもんで。
>>341 理解不能、
すまんがJavaで速いのを書いてみてぇから、
もうちょっと詳しい説明求む。
はぁ?ヒントあげてんじゃん。 全部ネイティブコンパイルしてヒープ肥大させて、その結果HDアクセスがで るようになるくらいなら、必要になったとこだけヒープにおくほうがいいっ てことよ。
速い・遅いという話をするときに、短くて、もうどうにもいじれないコードの 実行速度を比較しても、あんまり意味はないと思う。コンパイラの比較にはなるかな? たとえば、「メモリの動的確保・解放を頻繁に行う3万行のプログラムを書け」と 言われたとき、平均すると、 開発速度 Java >= C++/STL使いまくり > C++/STLは限定的使用 > C 実行速度 C++/STLは限定的使用 >= C > C++/STL使いまくり >= Java になるような気がする。もちろん、絶対ってわけじゃない。 実行速度でC++が有利だと思うのは、簡単に言うと、 Cなら複雑すぎて作る気のしないデータ構造をC++なら許せる時間内で 作れそうだから。 時間無制限で、世界的なCの達人が書いたプログラムならどうかわからんけど、 そういうのは普通ないと思うので。
すまん、重箱のすみつつく。 部分的にソート、とか、分類、とかいう操作が入るとSTL使用のC++は 一気に有利になるのだが・・・
もしかして言いたい事は、普通に C/C++で作ると 動的にヒープ生成削除した場合、 解放のコストが毎回の処理に含まれてしまう。 片方は、解放が遅延されるからそこだけ見れば早い場合もあるって事かな?
JavaでJITで作られたアセンブリコードって見れないの? .NETではできたけど。これを見れば一目瞭然だと思うが。
>>341 いや、小学生の言い合いじゃあるまいし
>つーか今日C++に実行速度で負けるJava Runtimeがあったらみてみたいよ。
と言われたら 常識的に
「あらゆる局面において
(
>>341 の知ってる)全てのJava Runtimeは
その環境下における標準的な C++ に実行速度で負けない。」
もしくは
「(略)その環境下における最速の C++ にすら実行速度で負けない。」
と解釈できるよ。
勝手にどんどん条件追加してくってのはどーもねぇ…
>>341 そーゆープログラムは全部のclassファイルのサイズ
合計するとギガ超えますか?っつか、Javaヒープの最大量って
1ギガとか 2ギガだったよーな…
それとも最速なのは
>>341 の脳内 Java Runtime ですか?
>>349 簡単なプログラムの実行速度ではJavaの勝ちって上にでてたよ。
だから複雑&巨大プログラムの話だよね、いまは。
>>351 >簡単なプログラムの実行速度ではJavaの勝ちって上にでてたよ。
ここからして謎なんですが(笑)
>>352 はぁ?2ちゃんにカキコしてる暇があったら実際にやってみたらぁ(w
3万行のプログラムのうち、一般的に速度で問題となるのは下位の ループ処理に属する5%、1500行程度。 C++の場合、そこだけ(速度に対して)頑張ってかけば良いでしょ。 さらに、昔はC++のソースの中に30行ほどアセンブラってのも。
>>354 サンクス。
めんどくせー。デバッガ標準でつけてくれよ。
359 :
仕様書無しさん :02/05/27 13:12
>>356 漏れの場合は80:20の法則にしてるぞ。
20%のコードが実行時間の80%に相当するということにしたい。
>>351 >簡単なプログラムの実行速度ではJavaの勝ちって上にでてたよ。
PGのせりふとはとても・・・・
>>351 まぁ、
>>352 の反応が普通だと思うよな、
Java厨でも「普通は
>>352 のような反応をする」と思うだろうから
>>351 は常識が無い事をちゃんと自覚したほうがいいぞ。
で、そーゆーわけだから「複雑&巨大プログラム」とは
限定されていません。常識的には。
どんな言語でもいっしょか? >30行ほどアセンブラ はできる言語とできない言語があるぞ。
>>361 大抵の言語では他の言語で作った
プログラム呼び出せるようにしてると思うけど…
>>361 そもそも C++ の言語仕様として
インラインアセンブラが使える、とか
インラインアセンブラの仕様が定義されてるわけじゃないしね。
>>364 それは C++ と比べて「JAVAはそれほど遅くない」
(インタプリタだけしかなかった時期よりJAVAは速くなった)
って事を書いてるだけだと思うけど。
ひょっとして、それを読むと
>簡単なプログラムの実行速度ではJavaの勝ち
って事になるわけ?
>>365 きっと、最適化してないコードとうっかり比べちゃったんでしょ。うっかり。
367 :
仕様書無しさん :02/05/27 13:54
JITが動いてても0.6倍程度か。 まあ、そんなもんだろうね。
368 :
仕様書無しさん :02/05/27 14:32
>>348 ドトネトでどうやれば見れるの?おせーて。
>>368 適当なところでP/InvokeでDebugBreak(kernel32.dll)を呼び出す。
そうするとエラーが起きましたダイアログが出るから、デバッグボタンを押す。
そこでVS.NETを起動すれば、該当メソッドのアセンブリコードが出てくるよ。
いや、俺は Del厨だから JAVAとC++のどっちが速いかなんて興味ない ただデータ出さずに議論してもバカみたいと思ったから検索結果を出しただけ ただ、基本的にC++だからいつでも高速に出来るというのは違うと思う C++でも仮想関数で再帰呼出しでもすればCPUのアーキテクチャによっては インタプリタによる仮想関数処理より遅くなる事もありえない話じゃないかもと
こんな感じ。 #define DEBUG using System; using System.Diagnostics; using System.Runtime.InteropServices; class Test { [ Conditional("DEBUG") ] [ DllImport("kernel32.dll") ] public static extern void DebugBreak(); public static void Main() { DebugBreak(); int sum = 0; for (int n = 1; n <= 10; n++) { sum += n; } Console.WriteLine(sum); } }
で、吐き出されたコード 00000000 call dword ptr ds:[009750F8h] 00000006 xor edx,edx 00000008 inc edx 00000009 inc edx 0000000a inc edx 0000000b add edx,3 0000000e add edx,4 00000011 add edx,5 00000014 add edx,6 00000017 add edx,7 0000001a add edx,8 0000001d add edx,9 00000020 add edx,0Ah 00000023 mov ecx,dword ptr ds:[01CA086Ch] 00000029 mov eax,dword ptr [ecx] 0000002b call dword ptr [eax+000000BCh] 00000031 ret
>>372 なんかそこまで最適化するなら sum=10*11/2 までやってもよさそうに感じる
いやどうせなら push edx 37h coll ... までやってくれれば・・・
coll ってなんじゃ? 鬱氏
っていうか、mov 逝って来ます。
へぇ〜 n の値に相当するものはレジスタとかには 保存されないんだね…
>377 最適化の結果ループが消えたからでしょ。
C++ の仮想関数のディスパッチは速い。 仮想関数のアドレステーブル引いてジャンプするだけ。 感動した!! でも、Java も負けてないと思います。 (今使ってるのは Java だが、実装に興味なくなっちゃって調べてないのよね)
>>378 いや、デバッガとかで追えば
n って表示されるわけじゃん。
そんときの n ってのはどっからとってくるのかな、と思って。
>>369 見事です。ありがとうございます。m(_ _)m
APIのDebugBreak()を使うのなら、JavaでもJNIで呼び出してネイティブコードを見れると思う。
>>379 そのテーブル引いてジャンプをするのがCPUにとってはツライ処理
命令は16バイトとか単位にフェッチされ複雑なパイプライン処理でオーバラップ
処理される。
テーブルジャンプは演算結果を待たないと次の実行番地が判らない。
条件分岐の場合、分岐予測や投機実行が出来るが、これはどうしようもない
>383 そっすね。 俺がC++いじって喜んでた頃はCISCでパイプラインも浅かったから これがスマートだったんだけれど、今となっては... どちらにしても、そういう細かいことは処理系に任せる事にしたので Java が遅いとかぶーたれるのは辞めにしました。
385 :
仕様書無しさん :02/05/27 18:18
JavaのJITがC++のコンパイラに追いつくことはほぼ永遠にありえないと 思ってるが、どう思う?同じ労力をかけて進歩するとしたらなおさら。 Javaのネイティブコンパイラとかがあれば、数値演算のみならいい勝負 しそうだけどな。 (OS依存の処理は、多分どうしてもJavaの方が中間層が多いだろうから、 たぶん、OS依存でC++で書いた方が常に・・・・・。まあそういう意味では 前提が違うのである部分からはフェアな勝負にはならないんだけど。) まあなんだかんだ言っても、 現時点で現実として遅いものは遅いと表現する以外ないわけでな。 JavaとC++では、C++の優位は変わらないと思う。 開発効率、という問題ではまた別の結論を出せると思うけど。
JavaでもDebugBreak()で見れた。 けど、HotSpotの出力じゃどこで何をやってるのかぜんぜん分かんねえ。(;´Д`)
まー、そうだな。 その勝負がフェアかどうかじゃなくて、最終的にどっちが便利で速いか。 これに尽きるわけで。
>>385 一昔前は CPUの種類毎に違ったネイティブコード吐いて
コンパイル時に最適化が固まってしまう系の言語より良くなる、
とか夢物語が語られてたけど、ランタイムの大きさやら
起動時間考えたら、それほど大した事ができるわけでもないし。
でもまぁ、IBM の JIT 使えば既に C++ の 0.8倍ぐらいの
スピードは出せてるから、プログラマのウデ次第で何とでもなると思うけど。
Java はポインタ無い分本気で最適化したら C++ より いい仕事ができる可能性があると思うが。
俺もネイティブイメージ見てみた。 .NETは分かりやすすぎるな。Javaはぱっと見訳分からん。
どう頑張っても、GC があるとねぇ…
やっぱ、Sunなのがすべての元凶。
393 :
仕様書無しさん :02/05/27 19:47
ロクにCも知らないままJavaの勉強してたんだが、 もうCを勉強する気力がなくなってきた。 Javaは大体OOのメタタームが分かってればそのまま流用できる。 (interface,abstract,public...)(でも配列やプリミティブ型はOO的ぢゃないか。) CやC++。 typedef?union?define?ポインタ?? その言葉は一体何処から出てきたんだと。 元ネタがあるんだったら教えてくんろ。マジで。 勉強しにくくてしょうがない。
そういやJ2SE1.4じゃJITのみのVMはなくなったんだな。
classic VM は無くなっちゃったみたいですね。 でも JITのみのVM って classic VM でいーのかなぁ? インタプリタ and 指定されたときのみ JIT コンパイラ使用する のでどっちかというと 「インタプリタのみのVM」って印象が強いんだけど。
397 :
仕様書無しさん :02/05/27 21:50
>>389 > Java はポインタ無い分本気で最適化したら C++ より
> いい仕事ができる可能性があると思うが。
同じ作業をするC++のコードでは少なくとも2〜3割は速いはずですが。
ポインタ使わなければいいんでそ?w
>>397 >同じ作業をするC++のコードでは少なくとも2〜3割は速いはずですが。
どういう計算?式プリーズ。
>ポインタ使わなければいいんでそ?w
「ポインタ使わずに作れるプログラム」の範囲で勝負させたいわけ?
>397 ポインタと全く関連付けられていない変数領域でも、ポインタで 指されることによるエリアスの存在が否定できない場合が多いので あまり凝った最適化ができないっす。 だから、計算やらせると未だに Fortran が速かったりするです。
ポインタ使わないと速くなるかも知れないんだ。 ふーん。 ふーん。 たしかにね、同じコードでもCPUを含むハードやOSの特性に左右される。 その点動的な最適化を行えるJavaでよい結果がでる場合もあるだろうね。 場合もあるだろうね。 場合もあるだろうね。 場合もあるだろうね。 ポインタ使わないと速くなる場合もあるだろうね。 場合もあるだろうね。 場合もあるだろうね。(藁
401 :
仕様書無しさん :02/05/27 21:58
>>397 えーと、例えるなら50kgの人が5kg減量するより、100kgのおデブが10kg減量する方がラクって
いうことでいいですか?
なぜマ板で?
ポインタ使わないで C/C++ のコードが書けるのか… 全部スタックとか… すごいなぁ… (そりゃ小規模だったら それでもいーだろーけど。)
>>388 うーむ、ランタイムの大きさって言っても、C++でスマートに作成した
プログラムは起動も速いですが。
C++で起動が遅いような規模のプログラムはJavaで同じもの作ったら
同じかそれ以上に重いと思うんだけど、どうかなぁ。
> でもまぁ、IBM の JIT 使えば既に C++ の 0.8倍ぐらいの
> スピードは出せてるから、プログラマのウデ次第で何とでもなると思うけど。
腕次第って言えば腕次第だけど、Javaの達人とC++の達人とでは、
多分C++の達人の方が優良なコードを出せるだろうね。
お、遅かった… こーゆー話題はみんなレス速いですな〜
あーん、ネタに食いつくなよバカァw
407 :
仕様書無しさん :02/05/27 22:03
ポインタ使うと遅くなるってマジですか? ポインタ使うと遅くなるってマジですか?
408 :
仕様書無しさん :02/05/27 22:03
ポインタはエイリアスがムツカシイのでコンパイラがお手上げなのです。 ポインタはエイリアスがムツカシイのでコンパイラがお手上げなのです。 ポインタはエイリアスがムツカシイのでコンパイラがお手上げなのです。
410 :
仕様書無しさん :02/05/27 22:04
えーっと、みんなアセンブラ知らないよね(w
>>404 >一昔前は CPUの種類毎に違ったネイティブコード吐いて
>コンパイル時に最適化が固まってしまう系の言語より良くなる
ってのは JIT コンパイラについて書いたものです。
>コンパイル時に最適化が固まってしまう系の言語
ってのは C/C++/アセンブラ/その他の事です
>腕次第って言えば腕次第だけど、Javaの達人とC++の達人とでは、
>多分C++の達人の方が優良なコードを出せるだろうね。
根拠無く感情論で結論を出してません?
俺もよくやるけど。
ポインタじゃなくて全部参照でやるというオチにするつもりだったのにw
Javaの方が実行効率がよいとか、 C++は遅いだとか、三文コンサルのセミナーででてきそうな 売り文句ばかりだな、おい(w
415 :
仕様書無しさん :02/05/27 22:06
>>409 もうちっとバカでもわかるように教えてください
もうちっとバカでもわかるように教えてください
もうちっとバカでもわかるように教えてください
もうちっとバカでもわかるように教えてください
416 :
仕様書無しさん :02/05/27 22:07
>>397 こういう時ってさ、
「2chに”ネタ”って言葉が浸透してて本っっっ当によかったー!」って思うよね。
俺も同じ経験あるもん。
だからこそ言うよ。
>>397 は真性馬鹿です。
わーい能無しJAVA厨がいるぞー
CでJavaの実行環境を書くことは可能だが、 JavaではCと同じ実行効率のコードを書くことは「絶対に」できない。 同じコード量での効率の話なら半分同意する。
421 :
仕様書無しさん :02/05/27 22:11
Cは低級言語。Javaは高級言語。
>>412 いや、アセンブラ知っててC++やってる俺には、
ネイティブ言語が中間言語に速度面で
劣る道理は無いなと思ってね。
これは感情じゃなくて、俺の知識の範囲で。
仮に中間言語でネイティブ言語を超えるものができたとしたら、
そのことはネイティブ言語にさらなる高速化の可能性を提示することに
他ならない。そんな便利な技術、すぐに取り入れるだろう。
JITといっても、まだC++ほどに最適化進んでないようだし。
Javaの性質上も、ある部分は今以上に速くできないだろうし。
つまりだな、連中の題目を信じるとするならな、 JavaでC++コンパイラを書けば、いまの遅いコンパイラよりも びゅんびゅん動くすばらしいコンパイラができるんだよ。 同じコードを、同じ最適化してな。 どこぞのコンパイラみたいに最適かしねえとかはなしだぞ。 おい作って見ろゴルァ
X WindowもWindowsもJavaで書けば速かったのになあ。 ストレスなくさくさく動くんだがなあ。
425 :
仕様書無しさん :02/05/27 22:14
Cを叩くと誇り、いや埃がいっぱい出てくるな・・・ さすが、歴史を感じるぜ・・・
426 :
仕様書無しさん :02/05/27 22:14
Javaの方が遅いんですよ。理屈じゃなく。 同じパソコンで同じようなコード書いて動かしてみてください。
>>418 いや「Javaの実行環境を書」いたことのない
>>418 に
そんな事いわれてもなぁ… 可能性だけじゃん。
428 :
422=397 :02/05/27 22:18
ちぇー、マジでネタだったのに真性バカ扱いされちゃったよ。 まあいいや。 とりあえず逝きつつ、こっそり後で戻ってきます。
つかそんなにはやいんなら、Javaの実行環境はJavaで書かれてるんだろ? もちろん。
430 :
仕様書無しさん :02/05/27 22:19
そろそろお前は「適材適所」と言う。
431 :
仕様書無しさん :02/05/27 22:20
ゴミ(Java)は何をやってもゴミ
433 :
仕様書無しさん :02/05/27 22:21
適材適・・・はっ
>>422 いや、可能性だけの話をすれば
実行時に SSE やら SSE2 やら 3DNow! やら
CPUのキャッシュ量やらCPUが好むアラインに
最適化出来たほうが、ネイティブより速くなる。
あくまで可能性だけの話だけど。
っつか、JIT コンパイルされて殆どの部分は
ネイティブコードで動いてるんだけど、
これも中間言語っていうのか?
435 :
仕様書無しさん :02/05/27 22:23
そういや昔から呪文のように繰り返されてきた、 「CはCで開発されています。」 みたいなくだり、 Javaでは聞かないね。
C++の方が速いコードを書けたとしても、 そこに辿り着くまでの学習量を想定すると なんだか、ビジネス向きじゃ無いなぁって感じるね。 スピードを極端には気にしないのなら、JAVAの方がいいし。 スピードを気にするなら、DelphiやKylix、Javaネイティブcompilerの方がいいかな。
>>435 JavaコンパイラはJavaで開発されてます。
>>436 記憶が確かなら、ネイティブコンパイラは死滅したと思うぞ。
>>429 Java の Runtime が C/C++ で書かれてるのは
速度の問題だと思ってる訳?
っつか、コンパイラが無い時にC言語で
コンパイラ書くっつのと同じぐらいマヌケだよ。
Cだけじゃ弱すぎさっさとC++やれ
440 :
仕様書無しさん :02/05/27 22:28
>Java の Runtime が C/C++ で書かれてるのは >速度の問題だと思ってる訳? 何の問題なの?
441 :
仕様書無しさん :02/05/27 22:29
>>436 Kylixフリーじゃない。ネイティブコンパイラは十分遅い。
HotSpot最速。
OpenWatcomってどうよ。
Javaの開発支援ツールはもちろんJavaで書かれてるものがおおいな。 Javaで書いてるから快適、快適。 さくさく動くんだよな?もちろん。
443 :
仕様書無しさん :02/05/27 22:29
>>436 概ね同感。開発効率と速度は直交してるとおもふ。
>>440 そーゆー人には C言語のコンパイラが無い所で
C言語でコンパイラ書いてみることをオススメしています。
>>442 ヘッダファイルとか読み込まないから
Javaの方がコンパイル速いと思うよ。
Javaと実行環境がある今、なんでJavaで書き直さないの? Javaと実行環境がある今、なんでJavaで書き直さないの? Javaと実行環境がある今、なんでJavaで書き直さないの?
>>441 > HotSpot最速。
スピード競争してるわけでは・・・。
> OpenWatcomってどうよ。
勉強したこと無いので知りません。
>>442 そうなの?結構遅いと思うけど。
>>444 答えになってねーし。
Javaが仕える現在、Javaが速いというのならJavaでJavaの開発をすりゃいいんだよ。
Cだって、最初のコアはアセンブラで書いて、それ以降はCで書いてるんだから。
それができない理由は何なの?と聞いてる。
449 :
仕様書無しさん :02/05/27 22:33
>>445 あ、確かにJAVAの方がコンパイル速いや。言われて気がついた。
そしてさらに気がついたことは、VBマクロの方がもっとはええ!
>448 Java だけじゃシステムコール発行できないとか、そういうことが 言いたいのでは?
性根の腐ったJavaよりよっぽどVBの方がカワイイよ
結局なにを使うかなんて関係ないだろ。。。 開発なんて、どんなヤシが作るかの方が問題・・・ #まあ、例外もあるがな・・・(w
455 :
仕様書無しさん :02/05/27 22:37
456 :
仕様書無しさん :02/05/27 22:38
つーかさ、C++なんて運良くコンパイルできた環境でしか動かんわけよ。 最適化すればするほどね。そんな糞コードは分散環境じゃいらねーわなぁ(w
ふーん。 ふーん。 JNIってなんのためにあったんだっけ? 炊飯器のLCD点灯操作に使うんだっけ。
ど素人が書いたコードはたしかに運がいるな < C++
>451 ヘッダはあらかじめコンパイルしてキャッシュしとくことが可能じゃないかな。 ボーランドとかやってなかったっけ?
460 :
仕様書無しさん :02/05/27 22:40
ブビ坊が乱入してきたみたいだから、ここもしばらくの間は糞スレになるだろうな(w
Javaで自慢げに開発してる奴らって、いったいどれほどが J2EEで分散システムの開発してんの? ホントに分散する必要あるの? ホントに分散する必要あるの? ホントに分散する必要あるの? Javaだから分散しなけりゃやってられないんじゃないの? いやもちろん本当のエンタープライズ環境ってのはあるもんさ。 開発言語がリソース食いまくるからどんどん汎用機が売れて儲かる アイビーエ、、、フガググ
ど素人が書いたコードが、他所の環境できっちり動く確率ってWinだと 1.DELPHI 2.VC 3.VB の順に下がるとは思う・・・だから何って言われると困るが。。。 #Javaってどのあたりに入るの?
>>461 どうした大丈夫か!!
くっそーこの仇は使えないバカJava房をぶっ殺して取る!!
>464 よその環境って Win から UNIX とかじゃないの?
うーん、C++ってそんなに難しいか? その前提からして違うような気もするのだが。
>>464 ど素人が、きっちり動くコードを書ける確率って
1.VB
2.DELPHI
3.Java
4.VC
この順かな。JavaとVCは逆かもしんない。
>>461 それをいうなら、本当にソフトってupdateの必要あるの?
本当に量的な観点から仕事そものの存在する必要あるの?
と問いたいくらいだ。
いや、言葉が足らなかった。。。 開発PC以外のPCでって話で頼むわ・・・。(もちWin限定)
>>468 それは・・・そうだけど。。。
出来たところで、配布してみたら動かないよっていうの、あまりに多くてね。
>470 そういう話だと、VB < DEFLPHI = Java < VC じゃないだろうか。
ハード、OS、ミドルウェア、DBのサポート期限切れ、ビジネス形態の変化などで、
やむなく移行を考える現場は多いと思われ。
そのとき、台数を減らして安定かつメンテナンスしやすくした
システムへ更新すしたいという欲求がでてくる。
一つのサービスしか行わない会社は、すぐに淘汰されテクよ。
>>469
>>472 JavaってVMのバージョンが違うと動かないんだろ?
VCは普通スタティックリンクしないから、MFCのバージョン違うと問題になるし・・・
VBはランタイムがないとダメだし・・・
DELPHIって何があるか知らん・・・(w
>>471 どこでも動くってふれこみだったのに、移行しようと思ったら
動かないよってのも多いね。
>>474 いやそれはstandardしか買わない君(の会社)がDQNなだけ。
Win16の頃ならいざ知らず、MFCを使おうがなんだろうが普通はstatic linkだ。
そうそう。。。 まあ、期待もしてなかったが・・・(w
478 :
仕様書無しさん :02/05/27 22:58
昔の規格のコードがまともにコンパイルできないC++と 一ベンダがほぼ独占的に開発してるくせに直前のバージョンとで互換性がないJavaと どっちがましか?
いや、今は.NET Enterprise Architectとかって奴だし、前も同じぐらいの使ってます。。。
>>478 バカをバカと言ってスレ汚すな!
結局C++は金になるわけ?
どっちかといえばJavaの方が金になるな。 C++はがんこな職人向けだ。
>>479 アッパーコンパチでない例をひとつでいいからいって美奈
>>486 できるのあるんですか?
漏れがC++で仕事やってたとき、
#BCBなので、C++と言っていいかわからんが、
漏れの競馬場プロジェクトも、隣のANAプロジェクトも
#ANAはVC++使ってた。
IDEをバージョンアップしたら、ビルドできませんでしたよ。
一時期C++からJavaに移行するかと思って腰を上げたが、 目を覆わんばかりの様にあきれた俺。
>>487 コンパチじゃない例がバグかぁ(マジツマラン
>>490 移行するメリットってなかなか無いと思う。
新規にやるなら、Javaのほうが金になるかもしれないが。
VMの非互換はJavaの問題ではないのか?
>>493 BugParadeだろ?もっと深い意味あんのか?
ああそうか。 VMをJavaで書けば非互換の問題はなくなるな。 さあ書けよ。
497 :
仕様書無しさん :02/05/27 23:15
>>494 オマエはブラウザのJavaVMのことだけいってるんだろ?
C++できなくてJavaに流れた人が多いっぽいですね
500 :
仕様書無しさん :02/05/27 23:16
■ いまどきJavaかよ?
>>498 489ですが私は過去にあった事実を述べて、
しかもJAVAの話題ではないのだが・・・。
誤爆?
これからはVB.NET、これ最狂!
なんで誰も
>>476 に突っ込んであげないんだ?
待ってるぞ、きっと。
>>499 C++で満足しきった汚馬鹿さんより、お利口さんなだけでは
>>501 自分が返信したレスの内容すら読んでないのか・・・まあ2chだしな・・・
>>499 >>500 だから、おまえらスレ汚すなって言ってんだろうがです。おながいします。
で結局C++は金になるんでしょうか?
私が本当に知りたいのはそこなんですが。
509 :
仕様書無しさん :02/05/27 23:21
/⌒\ ( ) | | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | |< 盛り上がってまいりますた♪ ( ・∀・) \_____________ ) ( (__Y_)
510 :
誰か教えてくんろ :02/05/27 23:22
393 :仕様書無しさん :02/05/27 19:47 ロクにCも知らないままJavaの勉強してたんだが、 もうCを勉強する気力がなくなってきた。 Javaは大体OOのメタタームが分かってればそのまま流用できる。 (interface,abstract,public...)(でも配列やプリミティブ型はOO的ぢゃないか。) CやC++。 typedef?union?define?ポインタ?? その言葉は一体何処から出てきたんだと。 元ネタがあるんだったら教えてくんろ。マジで。 勉強しにくくてしょうがない。
それほど金にはならない(技術者の単価が高い)。 安定して金になるのはVBでできるようなやっつけ仕事と 汎用機絡みの規模の大きいとこでやる、保守作業。 OS/ドライバ/DB書きのような仕事がごろごろ転がってるわけじゃないからね。
512 :
仕様書無しさん :02/05/27 23:23
C++ができないってどの程度できないんだ? そういやC++ってどこが難しいんだ?
513 :
仕様書無しさん :02/05/27 23:24
だからさ、アセとCとJavaが必須なんだって、現時点ではね。 C++? なにそれ?いらねーよ(w
514 :
仕様書無しさん :02/05/27 23:25
Windowsで機器を制御しているシステムを作っているけど、 C++以外に選択肢が無い。
>>512 既存のコードが難しい。
Javaだと、みんな素直なコードを書くけど、
C++だと、みんな工夫したくなるらしい。
読めない。
>515 いや、ダメな奴はどちらを使ってもダメでしょ。 Java にも目を覆いたくなるようなコード書く奴はたくさんいる。
>>515 悪いがそれは違う。Javaでも腐ったコード書くやつは腐ってる。
JCPの試験のように。
C++は2ちゃん語みたいなものかな、良くも悪くも。 それだけのことだから、あんまりのめりこむなよな(w
519 :
仕様書無しさん :02/05/27 23:29
Javaだと、デザインパターン厨房が無理矢理パターンに当てはめようとして 玉砕したコードばっかりになるって本当ですかね。 一度C++をやっておけばこうはならないと思うんですが、 やっぱ育ちの違いでしょうかね。
我らが認めるべきなのは、目を覆いたくなるようなコードでもとりあえず 動いて多少のリークもGCでごまかしてくれるJavaの懐の大きさか。
>>508 君の普通はそうなんだ、というのは判ったよ。
何のメリットがあるのかは判らないけど。
523 :
仕様書無しさん :02/05/27 23:30
C&C++ ・・・ 全部グローバル変数 java ・・・ 全部static あー、まあ、なんだ。 前に○○.て書く必要がないぶん、C系の方が優れてるな。
524 :
仕様書無しさん :02/05/27 23:30
Λ__Λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ´┏┓`)< 正直、C++がわからないならPG向いてない ( ) \_______ | つ | (___)_)
525 :
仕様書無しさん :02/05/27 23:31
C++が難しいとか C++に挫折したとか 言うやつらの脳みそってどうなってんだろうネ?
C++が分かる、と自称する詐欺PGの群れ
>>521 オマエさー、仮想敵のレベルを低く置きすぎてないかぁ?
それとも自分のレベルにあわせてるのかぁ(w
529 :
仕様書無しさん :02/05/27 23:33
つかC++ぐらい分らないとJavaもやってられんと思うんだが、 ここでグダグダ言ってるJava屋さんは本当に飯食えてんの?
>>522 Windowsに限って言うと、最新のAPIを使うところ意外ではどこに持っていっても
動くことが保証されてるだろ。
どこで動かすか分からないパッケージを作ってるとこや
いろんなものを突っ込みたがるユーザのマシンに導入しなきゃいけない
ベンダで、バージョンに依存するようなDLLを動的リンクするバカはいない。
ライセンスの問題などで静的にリンクするのがムツカシイライブラリ以外は
静的にリンクするのが、トラブルを少なくするのに必要な最低条件だ。
533 :
仕様書無しさん :02/05/27 23:36
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ・∀・)< 正直、C++で思考停止した馬鹿いるよねぇ♪ ( ) \_______ プ>| ⊃| (__)_)
534 :
仕様書無しさん :02/05/27 23:36
>>529 javaやってますというかjavaしか実務経験ないけど、
>>530 の言ってる事が分かりません。やヴぁいですか?
535 :
仕様書無しさん :02/05/27 23:37
___ / \ ________ / ∧ ∧ \ / | ・ ・ | <みんなWin厨か、氏ねやおめーら | )●( | \________ \ ー ノ \____/
パッケージ屋ならはっきりいってやばい。 DQN会社ならよくあることなんで、謝りに行くついでにつぎの 仕事をもらってきなさい。
あら、キレちゃった(笑)
>>534 >530の言ってる事が分かりません。やヴぁいですか?
530は至極当然のことを言ってるのだから・・・やヴぁいです
>>536 主にweb屋、servlet&EJBです。
謝る内容もわからんけどとりあえず逝ってきます
540 :
仕様書無しさん :02/05/27 23:40
___ . |(・∀・)| . | ̄ ̄ ̄ Win厨共和国 △ △l | __△|_.田 |△_____ |__|__門_|__|_____|_____
でもって取り込んだzlibの穴問題で大童
まぁ、仕方ないんじゃないの? 良い悪いは別として、習得が簡単な言語は玉石混合になりがち。
543 :
仕様書無しさん :02/05/27 23:43
>>542 Cほど簡単な(憶える規則が少ない)言語はねーけどな(w
Cは自由度が高すぎて糞コードができやすいっちゅーことかいな
545 :
>>543なら答えてくれそうな気がする :02/05/27 23:45
393 :仕様書無しさん :02/05/27 19:47 ロクにCも知らないままJavaの勉強してたんだが、 もうCを勉強する気力がなくなってきた。 Javaは大体OOのメタタームが分かってればそのまま流用できる。 (interface,abstract,public...)(でも配列やプリミティブ型はOO的ぢゃないか。) CやC++。 typedef?union?define?ポインタ?? その言葉は一体何処から出てきたんだと。 元ネタがあるんだったら教えてくんろ。マジで。 勉強しにくくてしょうがない。
>>543 lispとかforthのほうがすくないとおもうけどね
しらないんだね
Cほど実行環境と規格外のライブラリに依存した言語も少ないけどな。 Cは構造化アセンブラ。 C++はOOもそれなりにできるテンプレート付き構造化アセンブラ。
いや、Cの方が糞コード書きやすくないか? C++からJavaへの移行組は比較的まともなコード書くけど、 CからJavaの連中って、無茶苦茶なの多いぞ。
アセンブラくらいに低レベルになると、かえって設計無しでは何も作れないので すっきりとものが作れるけどな。
CからC++への移行中のやつ&移行したと思ってるやつのコードは酷いぞ。 まあ、誰もが通る道だが、他言語の修得に比べてそれは長い。
>>550 そりゃ言語云々じゃなくてoopl経験者かどうかってだけでは?
>>554 すると、C++、JavaってOOPを覚えてないと使えないということで、
意外と敷居が高いのかもしれないですね。
>>555 OO自体、敷居が高いものと思ってますが・・・
OOPっつーか、OOの設計ができるかどうか、そういう設計を理解できるかどうか ノモンダイじゃねえかなあ。
>>551 それができるやつなら、Cでも同じことができるだろうな。
もっとはやく、もっと大規模なものが。
>>545 その元ネタの人って難癖つけてるだけだよね。
intがどうしてintなんだって怒ってるのと同じで、馬鹿。
>>546 Forthなんてどこで使える?(w
#処理系作ったことはあるけどな・・・
>>559 >intがどうしてintなんだって怒ってるのと同じ
読解力以前の問題
>560 Mac とか OpenBoot でブートするんじゃ?
>>551 が言いたいのは
>>558 のように油断した人間が
設計なしで書き始めたりしてバグ連発するのかも、ってことでは?
出力されるアセンブリコードを見てもはっきりしてる。 C > C++ > .NET >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Java
>>562 それってマジ?
G4とかでもできるの???・・・MACが欲しくなって来たよ
>>564 >出力されるアセンブリコード
うーーーむ。笑う・・・ところ・・・か・・?
あるにはあるし、自作OS(だとおもって実はタダのブートシェル)をつくってたやつが forthっぽいシェルを作ってたみたいだぞ。 forthは昔Oh!MZの記事でかじった程度なんでよくしらん。 lispっぽい構文を食べて実行するインタプリタを書いたことはあるが、 今書くならXMLベースにしてるな。
>>564 できれば全部のアセンブリコードを
提示してくれると有難いんですが。
Javaで書いたプログラムをICEやBreakDebugで止めてデバッガで追っかけちゃう スーパーハカーなんだよ。 絶滅危惧種だから大切にしようぜ。
すごく流れ無視で悪いが、 「このデータを”食わせる”と〜」とか 「こんなコードを”吐く”から〜」とか 言ってる人、キモイです。
すごく流れ無視で悪いが、 いやっほーう。C++ばんざーい。 アンチ厨、消えろーい。
そういえば、ICEとかでデバッグできなくするライブラリがあるって聞いたことあるんだけど、詳細を知っている人いない?
>>570 すいません。「吐く」とか「食わせる」とか良く使います。
育ちが悪いので これからも使います。すいません。
>>561 いや、正しいと思うが・・・
javaの場合プリミティブ型はOO的じゃなくても許容してるのに、
C/C++では許容しないってのは、難癖と言ってもいいかも
576 :
仕様書無しさん :02/05/28 00:10
C#のムック見たけど、C#の実行時にはブレークポインタをプッシュしてたりして、 わりとCッポイコードになってます。 forループ内で、ある変数にカウンタの2倍の値を加算するプログラムだったのですが、 VC++のリリースではカウンタの上限をソースの2倍に設定して、「inc cx」2発のノリで 処理してました。 コード的には VC++Release > C# > VC++Debug という結果でした。
>>575 単に、量の問題でない?
確かに、C言語には”こうぞうか なんたら”とは関係ない用語が多すぎると思うが。
リソースが漏れるって言うのもお下品ですか?
>>570 じゃあ日常会話で「あっそう」って言わないでください。
プログラムが走ったり落ちたりするという表現にも虫唾が走るのでしょう。
>>570 どの辺がキモイかおせーて。マジわからん。
>>579 まだ許せる。 無罪。
「サーバが”こける”」 無罪。
「サーバがクライアントにデータを”落とす”」 有罪。
俺のプログラムは、OSと心中したりするが、何か?
判断基準がよくわか乱
プロジェクトを立ち上げるなんて言った日には出入り禁止ですか?
急に、ネタスレと化したな。
よって、
>>579 に死刑を求刑する。
「こいつと、このライブラリが”合体”して〜」 有罪。 「この前に頼んだ”java、できた?”」 有罪。 「SOAPだってよ。ゲヘヘ」 リアル有罪。
コアを吐くっていうのは?
あ、まちがい、死刑求刑は
>>570 だ。
あやうく別人を死刑に...
591 :
仕様書無しさん :02/05/28 00:17
元々ネタスレ
592 :
仕様書無しさん :02/05/28 00:18
仕事中に2ちゃんねるをやってて笑いを我慢してる声・・・・・有罪
>>591 な、なにおうっ。
ここは、アンチC++厨に、C++の偉大さを教え、
それでも意味がわからんやつを嗤うスレでは?
「お前いい加減動いてくれよ〜」 「お!?」 「あ!なんだ〜やっぱりか〜」 PCに話し掛ける。有罪。
人の椅子に座る→高さ調節 有罪。 人の椅子に座る→背もたれの角度調節 死刑。
「俺の恋人は右手です」 無罪(涙) 「俺の恋人はコンパイラです」 有罪
インスコロール、インストロール は無罪 インストゥール は有罪
他人のPC使う→ディスプレイの輝度調節。 見づらい。有罪。 他人のPC使う→音量上げる。 バレる。有罪。
他人のPC使う→2ch→ログが残る→呼び出される。 死刑。
601 :
仕様書無しさん :02/05/28 00:26
ローマ字入力モード→カナ入力モード 有罪
602 :
仕様書無しさん :02/05/28 00:26
「ディスクトップ」執行猶予なし懲役5年
ATOK -> MSIME 死刑
PCに話し掛ける。 無害。 突然笑い出す。 無害? こっちに話を振ってくる。 有罪。
ログを残すブラウザ 終身刑 ログを残す掲示板 死刑
607 :
仕様書無しさん :02/05/28 00:31
ネタ尽きたので傍観 無罪 ネタないのに無理にカキコ 有罪
アイコンの整列→アイコンの自動整列 100叩きに市中牽きまわしの刑。
Caps Lock常にON -> 獄門貼付 Ctrl/Tabキー入れ替え -> のこぎり引き
エディタの背景が白・・・・無罪 エディタの背景が黒・・・・DOSの刑
エディタの背景が白い方が車輪挽きだろう
613 :
名無し ◆BHHeBCJo :02/05/28 00:38
「今度の案件はC++でやる」 無罪。 「今度の案件はJavaでやる」 無罪。 「今度の案件はRubyでやる」 精神鑑定。
Windows付属のtelnet作ったやつを死刑にしてくれ。 ワードを日本で売ろうと思ったやつも死刑にしてくれ。
有罪ってのは、執行猶予付きの事だよねぇ、 実刑ってのが実際に罰金払ったり、懲役食らったりする、と。 いや、ちょっと思い出してみただけ。
617 :
名無し ◆BHHeBCJo :02/05/28 00:39
× 「今度の案件はJavaでやる」 無罪。 ○ 「今度の案件はJavaでやる」 罪状軽微につき、不起訴。
ごめんテストトリップつけてた。
>611 黒の方が目に優しい。
オレも黒。
ぼくちゃんみたいにぃ、わかい人わぁ、黒い画面なんてみたことぉ、ないんだよねー。 黒い画面わぁ、おじさんたちの、のすたるじぃ?
コメントは緑。
リテラルは黄色
626 :
仕様書無しさん :02/05/28 00:43
DOSの時でも、真っ黒じゃなかったけど。 濃い緑と紫の中間のような色(だったような)
ローカル変数は ぽぽる。
デスクにモー娘。 無罪。 デスクにパスワード 有罪。 デスクにレゴ 免職。
634 :
仕様書無しさん :02/05/28 00:45
私はWizardコードをマゼンタにしてます。
青背景のDOS
シニス.bat 逆転無罪
よし。最新50がネタレスになったところで寝るとするか。
pathname = "C:\hoge"; 有罪 pathname = "C:\\hoge"; 無罪
cosnt 有罪
ヒゲ伸び放題 無罪。 髪型爆発 無罪。 異臭 有罪。
count << "Hello, World" << endl; 有罪
ハニリイト Syntax Error OK ■ ・・・・罰金
>>640 ヒゲ伸び放題だったり髪型爆発してたら、
普通 異臭しないか?
>>641 すまん。訂正
誤 hoge
正 foo
タイピングがトロい 無罪。 タイピングが静か 表彰。 タイピングが騒音 五指裂断の刑。
#import java.io.*; 有罪
void main() 有罪 int main() 無罪 public static void main(String[] args) 長いので有(以下略
マウスパッドがギャルゲーキャラ 無罪。 デスクトップがギャルゲーキャラ 無罪。 話し言葉がギャルゲーキャラ 自宅謹慎。
>>644 こっちのほうが懐かしくない?
スナミ
Syntax Error
OK
■
(泣)
public static void Main(String[] args) できの悪い模造品のようなので(以下略
using namespace std; 実は有罪?
仕様書無し 有罪。 納期割れ 有罪。 客無し 解散。
安請け合いの営業 無罪 でたらめなSE 無罪 徹夜でミスしたPG なぜか有罪
>>652 randomize(val(right(time$,2)))
だったっけ?
ソファで寝る (゚д゚)ウマー チェア並べて寝る (゚д゚)ウー… 仕事中に寝る (-д-)ウ…マ…
>>657 えっと、めがねを直させて頂いてと。
わかりません。
寝てんじゃねえぞゴルァ( ゚Д゚)━━(゚∀゚)━━ァ!!
>>654 .cpp なら無罪。
.h でやったら死刑。
>>661 80、88は背景黒、それってパピコン(60、66)?
664 :
仕様書無しさん :02/05/28 13:03
C++でわかりやすいコードを掛ける奴は、無罪。 C++に執着する奴は、有罪。 C++以外を認めないキティな奴は、死刑。
いまさら age てもらってもねぇ… もう昼休み終わりだし…
C++って言葉でてきてるけどさぁ。 学生や研究者じゃあるまいし、 「C++」を環境と切り離して議論しても対して意味無いな。 この板のC++使いはUNIX厨なのかな。
環境ってIDE(統合開発環境)のことなのかしら?
668 :
仕様書無しさん :02/05/28 14:58
.cpp .cxx .C .cc .c++ おまいらはどの拡張子がお好みですか?
670 :
仕様書無しさん :02/05/28 15:21
.cpp
.cs かなぁ。とかいってみるテスト
672 :
仕様書無しさん :02/05/28 15:28
やっぱ、.cppかな。 この何とも言えず絶妙にまろやかでいながら 二本生えたpの下方へつきだした脚。 思わず口づけしたくなるような3つの上部のふくらみ。 指先に伝わってくるようなくびれ具合。たまりません。
namespaceってどういう概念なの?
もしDelphiとか使っているなら、closeとか曖昧な名前をユニット名付けて識別できるでしょ? Delphiはユニット毎に自動的にnamespaceが付いてるようなもの
>>673 このクラスとこのクラスとこのクラスはこのネームスペースに属する。
AネームスペースのZクラスとBネームスペースのZクラスは別物。
>>673 つか、おまえ、ム板で同じ質問してるだろ、今。
.hpp .cpp ですが、何か?
>>680 673ではないがいんじゃん、別に。
というか、namespaceくらい本を嫁って漢字だけどさ。
>>676 そんな事はサンプル見りゃ分かるよ。
namespace::class::member
このネームスペースって何を統括しようとする概念なの?
いいかえるとルールってどうよって感じ。
わかるひと教えてください。
おながいします。
684 :
仕様書無しさん :02/05/29 01:00
namespace有効に使ってる人いる?
685 :
仕様書無しさん :02/05/29 01:04
.cplusplus .headerfile ですが、何か?
ひとりでコードを書いてる分には namespace が無くても大して困らないかもしれないけど 大勢でコードを書くとなると名前が衝突しないことは神にでも祈るしかない ・・・っつーことでないのけ
>>684 阿呆が作った阿呆なヘッダを取り込まざるを得ないとき。
namespace vaka {
extern "C" {
#include "hoge.h" // グローバル変数てんこ盛り
}
}
ライブラリ単位やロードモジュール単位に分担しちまうから 名前衝突はあまり気にしたことないなあ。 using namespace stdはしないけど。
>>687 正直、おもしろい。
その場合、hoge.cはコンパイルし直す必要はないの?
691 :
C++20年生 :02/05/29 02:34
C++はBell研のジャーナルにはじめて発表された頃からの付き合いだが
20年経ってもいまだに言語仕様が安定しないね。
そのせいか、GnuのAutotoolsもC++を使い出すとトラブル
でまくりだし、
GCCもVer2.95ぐらいでもまだテンプレートと例外を組み合わせたと
きとか挙動不審だね。
#もっと新しいのは直っているのかな?
とはいえ、画像処理とかはC++で書かなきゃCかアセンブラで書くしかない
からC++使っているけどね。
>>90 SunがHotSpotを発表したときにC++より速いって吹いていた
けどたぶん嘘だろうね。
Sunにしてみればサーバー側でJavaで書かれた遅いプログラムが
増えたらハードの売上が伸びるので遅くいほうがビジネスにはプラスだし。
#20年経っても、いまだに開発者の名前が発音できない。
#あれなんて読むんだ?
694 :
C++20年生 :02/05/29 02:53
>>692 ははは、まだぎりぎり30代だよ。
Bell研のジャーナルのC++の記事は俺が10代のときに最初に
読んだ英語の論文だ。
言語仕様書ならAdaの英文の仕様書が共立から出ていたのでそっち
読んだのが先だけどね。
ま、厨房のころからTIのTTLのデータシートとか読んでいたんで、
別に論文一個読むぐらいたいしたことなかったけどな。
695 :
C++20年生 :02/05/29 02:58
>>693 Thanks!!
でも、わかりにくい発音だね。一晩立つと忘れそうだ。
>>693 これ本人が一店の?
だとすると
カコイイ!!(・∀・)イイ!!キスしたい!!
でも URL よく見ると pronunciation の綴りが間違ってんだよな。 Englishネーチブじゃないらしいからしょうがないけど。 彼はまだシャノン研にいるらしいよ。
>>693 Mac7.5 の、なんとかスピーチの発音みたいだな。
699 :
仕様書無しさん :02/05/30 00:27
まああれだな、C++ってのは普通の人の手にはおえないすっごく良く切れるナイフなわけよ。 で、普通の人間がふつうに職について普通に使いこなそうとして血だらけ。 もう見てらんない。 まああれだ、おなえらはVB4のプロジェクトをVB6に変換してさらに.NETに変換して 遊んでるくらいで満足しなってこった。
700 :
仕様書無しさん :02/05/30 00:34
ここにいる皆さんはC++詳しそうですが どの辺まで理解してればC++バリバリだぜって 名乗っていいと思いますか?
C++は奥が深いね
702 :
仕様書無しさん :02/05/30 00:48
703 :
仕様書無しさん :02/05/30 00:50
>>700 ム板のC++に常駐して質問に全て答えられるようになったら
704 :
C++バリバリだぜ :02/05/30 01:16
>>700 あー、現行の文法を全部理解して長所短所を意識しつつ使いこなせて、
既存の有名なクラスライブラリ(ひとまずSTL)に精通し、
C++でCより短いプログラムを書けるようになったら、だな。
あと、STLなしでも十分ものを作れるようでないとダメだろうね。
706 :
仕様書無しさん :02/05/30 01:54
C++のパーザ作ったらパリバリだと認めてやろう。
709 :
仕様書無しさん :02/05/30 02:06
> あと、STLなしでも十分ものを作れるようでないとダメだろうね。 それは STL とほぼ同等なものか、そのサブセットあたりを 自力で実装できないとダメってことですか?
>>706 それ厳しいな。テンプレートじゃなくてもいいならできるけど。
711 :
仕様書無しさん :02/05/30 02:12
たまに居ない?STLがないとちんけなプログラムしかかけない奴。 STLがないと基本アルゴリズムを扱えない奴は バリバリとはいえない、ということだな。 俺が言いたいのは、 ライブラリに依存しないでも必要なものを自分で作れるということ。 (ライブラリがあるときはそれらを有効に使うのは当然として) でもSTLと同等のもの作れとまでは言わない。 そんなの工数の無駄でしょ。
正直、STLがないという状況が思い浮かばないからどうでもいい。 そんなのC++じゃない。
正直、printfがないという・・・・
そんなのCじゃない。
と同じだな。
>>712 はげどー
714 :
仕様書無しさん :02/05/30 02:21
組込みとかではprintfもないところあり。
>>713
717 :
仕様書無しさん :02/05/30 02:31
printfは別に面白くもなんとも無いと思うが・・・・ printfに価値を感じるのけ? 標準ライブラリなんてあってもなくても同じだろ? 組込み系は縁の下の力持ちだよ。 俺たちがいないと周辺機器の進歩が止まるからな。
標準LIBやSTLがないとつまらないっていうのも何かと思うな。 無けりゃ必要な部分を自分で作ればいいだけのことで、 C++の面白さとはなんも関係ない。
720 :
仕様書無しさん :02/05/30 02:39
C++でインラインアセンブラ thank you? no thank you?
724 :
仕様書無しさん :02/05/30 02:48
でもそれだともう高級言語ではないな。 C++って、MFCがないと生きていけない人から 組み込みで使ってる人まで、 ユーザのもつイメージが幅広いと思う。 そんな連中があつまってひとつの言語を論評しても混乱する竹。
組み込みで、Cを使わずにSTLも使えないC++を使うメリットってなんだろう。
727 :
仕様書無しさん :02/05/30 04:20
クラスが使えた方が便利に決まってる。
想像力が貧困すぎ
>>726
うちはクラスも駄目だよ。でも何故かC++。
729 :
仕様書無しさん :02/05/30 04:32
STLを使わない理由が「テンプレート使えない人間がいるから」 とかいう情けない会社もあるらしいしな 普通では想像出来ない理由かも
730 :
或る組込みPG :02/05/30 04:36
STL必要なケースがないというか、 STLだとコードが妙に肥大化する割に効率がさほど良くないというか、 組込みではきびきび動くシンプルなコードの方が愛されるというか、 STLでは必要RAM容量が計算できないというか、 そんなわけでSTL禁止。 テンプレートは禁止してない。
この場合「コード」とはコンパイルされた後のアセンブラコードのことです。 ソースのことじゃあありません。(ソースはSTL使った方がむしろ短くなるから)
うちは、クラスはいいけど例外は駄目。テンプレートも駄目。 RTTI、namespaceも当然駄目。
733 :
仕様書無しさん :02/05/30 04:55
テンプレート自体がサイズ肥大化の原因のような・・・
例外とRTTIはうちも禁止だなぁ。 速度とサイズに影響するから。 クラスとテンプレートとnamespaceはOK。 速度とサイズに影響しないから。 STL・・・・便利だけど、必要ということはないね。 誰でも作れるロジックを集めて大規模にライブラリ化してくれただけのことだもんな。
テンプレートって言ってもそんな複雑なものを作るわけじゃないから、 サイズは影響受けません。 なんでもかんでもテンプレートにするようなおバカな真似はしないし。
736 :
仕様書無しさん :02/05/30 05:01
STLのような使い方はサイズ肥大化の原因だね。
>>733
C++ - クラス - テンプレート - 例外 = いったい何が残るの?
738 :
仕様書無しさん :02/05/30 05:13
namespace(w
739 :
仕様書無しさん :02/05/30 05:14
//でコメントかけるYO
new / delete とか
741 :
仕様書無しさん :02/05/30 05:17
型のチェックが厳密なコンパイラはCよりもC++の方に多いから、
言語的にCのレベルで使うにしても、C++のコンパイラを使う方が
良いように思うけど。
どーよ。
>>737
742 :
話違うけど :02/05/30 06:15
みんなGUI周りはどうしてる。 生SDK?MFC?Builder? Motifっての?(ウニ知らない) それとも、GUIはVBとか? それとも、コンソールのみ?
743 :
仕様書無しさん :02/05/30 07:23
>>737 つか、一番大事なものをC++から抜いて何が残るか聞いてなんの
意味があるのかわからん。
あえていうなら、スピードと柔軟性と強力さは残るが。
744 :
仕様書無しさん :02/05/30 07:51
放置馬鹿たちがひとりごとをいうスレはこちらですか?
組み込みって高級言語を使わなければならないほど大げさなものなの? 洗濯機とかテレビとかに内蔵されている極々小さなプログラムでしょ?
746 :
仕様書無しさん :02/05/30 08:02
組込みっていうと広い。そういうのも組込みだが、ルータも 組込みになる。複雑さはピン・キリで、あまり複雑でないものは アセンブラオンリーで、複雑になるほど高級言語を使う。 また、リアルタイム処理が必要になるとまた違ってくる。
>>746 そうだったのか。
コンピュータの周辺機器か・・・
サンクス!
きっとゲーム機内蔵のプログラムとかも組み込みになるんだろうな。
例外は便利なんだろうけどアフォな使い方したときのダメージがでかいのよね・・・ 気づいたときには遅かったりして。
>>747 PGだと単価安いよ。
等身大プリクラはWindows?
>>745 キミの言う 洗濯機とかテレビも
昔、大量生産の時代には1バイトを削ってどれだけ機能を追加出来るかって
感じで、それはそれなりに技術も必要だったんだよ
今は、多品種少量になって設計製造コストの方が高くなりつつある
・・・・でも組込は日本で開発しなくてもって感じで日本では斜陽産業だね
Javaも組み込みで使えるらしいですが。 結局、使われてるんでしょうか?
>>752 組込みは広いし、 TINIを使ってる場面もあるでしょう。
>>752 VBなんかもOK
JavaはGCをPAUSEできるRTOS上でOK
お前らの書く C++ のコードって、コメントが // になってるだけなんだろ? と煽ってみるテスト いや、実際こういう開発現場多いんだよね。
それだけだったらまだ救いがあるわ… 例外を使えない状況なら、C++は採用しない方がいい、とあたしは思うわ。
757 :
仕様書無しさん :02/05/30 11:24
>>755 Cより勝っているところはまさにそこだけだね
例外ってそんなに便利か?
コンストラクタが正常にエラーを返す事実上唯一の方法が、例外だわ。
761 :
仕様書無しさん :02/05/30 11:40
>>760 >正常にエラーを返す
エラーじゃねーじゃんよ(w
762 :
仕様書無しさん :02/05/30 11:51
C++ の for(int i = 0; i < 10; i++) { f(i); } この変数 i のスコープって実装によって違うんだけど、 なんとかならないの?
763 :
仕様書無しさん :02/05/30 11:55
VCが腐ってるだけでは?いまどき他にはまずないでしょ。
>>762 ループ一個ごとに
{
int i;
for(i = 0; i < 10; i++) {
f(i);
}
}
してみるとか。
>>763 VC++.NET ではオプションで選べるようになってるよ。
例外がないとコンストラクタで何か処理をさせるプログラムが 安全にかけないのだよ。 それを避けるとカプセル化が破れて変なことになるのだよ。 MFCは例外なしなんで構築がすべて2段式になっているのだよ。
例外無しでクラスだけ使うとかいうのは、ロクなのじゃないわな。
769 :
仕様書無しさん :02/05/30 14:01
C++ではどうがんばっても安全なプログラムなんてできないんじゃなーい(w
>>769 アンタにはね、とツッこまれるだけのような…
組織の場合、正しいC++プログラムが書けるレベルまで チーム全員のスキルをどうやって向上させるか、というのは とても大きな問題だわ。 そういう意味では、「どうがんばってもC++ではできない」はそれなりに正解だわ。
一人でSTLバリバリで書いて、ほかの誰も読めないという罠、 一人で const を徹底し、ほかの人からはメンバが呼べない罠 しっかりファンクタ作ったのにnot1を知らないせいで コピペされそこだけ書きかえられてしまう罠。
上二行はともかく、最後のは悲惨だ。
コピペ PG に限って templete も継承も使いこなせない罠
775 :
仕様書無しさん :02/05/30 16:32
not1てなに?
>>774 それどころか
(あー!こいつコピペのやり方も知らねえよ(ププ)
みたいな目で見られる罠
しかも、>774を使いこなしていると書くとステップ数が少ないのでで仕事してないんちゃうか、と糾弾される罠 777ゲト
>>775 一応
ファンクタアダプタ、unary_negate を返す。
ファンクタ pre を受けて、
operator() が !pre()になるファンクタをかえす。
779 :
仕様書無しさん :02/05/30 19:31
どうでもいいことですが、 C++のコンストラクタが例外を返すケースは、 組み込み業界では設計ミスといいますw (要するに容量を計算できていないということになる)
組込みで例外が発生するプログラムは確かにタコだわな。 起動できないor動作継続できないってことだもの。
781 :
仕様書無しさん :02/05/30 19:52
まああれだ。言語に固執するあまり目的見失っちゃいかんということだ。
782 :
仕様書無しさん :02/05/30 19:56
全プログラマに対してC++がまともに使えるプログラマは 何%ぐらい?
またかもう飽きたって(ボソ
>>782 当然ですがマ板には一人もいません。
ム板に3人くらい板かな
本当なのか、ショックだ。1割もいないのか。 WindowsプログラマでVCをつかっている人はCPP使えるんじゃなかったのか。
>>786 全部の機能を使わなくてもいいんじゃないの?
テンプレートは一時面白なと思ったけど、飽きたら使わなくなった。
ついでにSTLも使わなくなった。
結局 C の仕事も残るから、Cに移植出来るようなスタイルでゴリゴリと書いてるよ
VC 使ってる人は MFC やら WindowsAPI やら 覚える事いっぱいあるから。
「まともに ** 使えるプログラマ」ってどんぐらい居るの? C++, C, VB, Delphi, Java, C#, perl, ruby 他何でもいいけど。
まともにというのがどのくらいかという定義がないと分かりません。
普通のプログラマなら、半ダースの言語はまともに 使えるだろ
792 :
仕様書無しさん :02/05/30 23:15
妙な悲観論が横行してるな。
>>782 >全プログラマに対してC++がまともに使えるプログラマ
>>784 >まあ1割は切ってるな
と
>>791 >普通のプログラマなら、半ダースの言語はまともに使えるだろ
って、両方合わせると
「普通のプログラマ」は「全プログラマ」の
一割以下って事になりますが…
>>793 半ダースの中にC++が入っているとは限らないでしょ
C++が広まる以前にも言語はたくさんあったわけで
C++が必修とも思えんのだが(これほどごちゃついたメジャーな言語も珍しい)
だべな。
796 :
仕様書無しさん :02/05/31 10:42
C++は必修だっぺよ。
だべか?
そうけ?
799 :
仕様書無しさん :02/05/31 12:29
>42 その話本気にしてないだろ、まさか。
800 :
仕様書無しさん :02/05/31 12:31
>>799 亀レスなのか誤爆なのかわからなくて困る罠。
プログラマならC++くらい使い倒せ!。なさけねー。 どんな言語でも使いこなすのがプログラマって仕事だろがゴルァ。 言語がどうのこうの言える立場じゃねーっつうの。給料泥棒が。
∧,,∧ そういうC++至上主義が ミ,,゚Д゚彡 大嫌いですが何か? (ミ ミつ ミ ミ ∪ ∪ >言語がどうのこうの言える立場じゃねーっつうの。給料泥棒が。 自分の境遇を告白してどうする。
> C++至上主義 妄想はいってますね。
C++を使い倒す != C++至上主義
今回はDelフサギコちゃんの勇み足だな。(俺はファンなんだけどね。) それはそれとして、C++を特別視するのは、できない人だよね。 アンチがいすぎて鬱だよ。
∧,,∧ ヤレヤレ... ミ,,゚Д゚彡 (ミ ミ) ミ ミ ∪ ∪ >プログラマならC++くらい使い倒せ!。なさけねー。 C++なんて俺には役に立たんから使わないし 使い倒せない奴がなさけねーとも思わん。 プログラマならDelphiくらい使い倒せ!。なさけねー。 どんな言語でも使いこなすのがプログラマって仕事だろがゴルァ。 言語がどうのこうの言える立場じゃねーっつうの。給料泥棒が。 変だろ、こんな主張。 DelphiをJavaにしたってC#にしたってVBにしたっても 違和感ありまくり。
>>806 >>801 の言い分に同意するわけではありません。
でも、 C++を使い倒す != C++至上主義 です。
C++とJava程度はたしなみかなぁ。余裕で使ってナンボ。
んで、仕事は好みとは別。
言語選んで開発する自由なんて一介のPGたる漏れにはないし。
仕事は主にCだけど、たまにASMなんてのもあり。
かと思えば「Win32&何でもOK」ってこともあり。
>DelphiをJavaにしたってC#にしたってVBにしたっても >違和感ありまくり。 違和感あり:Delphi、ruby、J++、FORTRAN、Cobol 違和感梨:C、C++、Java、VB、(ウニ系なら)perl 微妙:C#
>>789 私の使っている(いた)ツール内でも、1割切ってると思う。
結局深い(?)とこまで、勉強しようという人が
その程度の割合なのだと思う。
>>805 C++を特別視するのは、C++使いに多いという罠。
違和感無し:COBOL
811 :
仕様書無しさん :02/05/31 13:05
>>809 どっちかに多いというわけではないぽ。
特定の言語に傾倒してるひとに多いというだけぽ。
言語は道具程度に考えてる人はさほど偏らないぽ。
>>809 >C++を特別視するのは、C++使いに多いという罠。
そうかなー。Cと区別付かないおじさんには違いを強調するけど。
C++って字を見てヒステリックな反応起こすのは、挫折組でしょ。
ふつーの言語の1つ(個人的には好きだが)として、扱ってほしいよ。
「それはC++でSTL使おうよ」とか言うと、
「日本人しかいないところで英語を話し出した場違いな奴」扱いされるのが鬱なんよ。
813 :
仕様書無しさん :02/05/31 13:13
>プログラマならC++くらい使い倒せ!。なさけねー。 >どんな言語でも使いこなすのがプログラマって仕事だろがゴルァ。 >言語がどうのこうの言える立場じゃねーっつうの。給料泥棒が。 俺は全然違和感感じないぞ、これ。 「使いこなす」の程度をどう見るかってのはよく分からんが 実業務でC/C++/Java/ObjectPascal/VBを不自由なく使える程度のスキルがなきゃ 言語についてどうのこうの言える立場じゃないってのは大賛成だ。 むしろ、言語についてあーだこーだ語ろうってんなら Scheme/Haskell/Smalltalk/Prologみたいなのまで使いこなしてもらいたい。 俺?俺はC〜VBぐらいまでであとは入門書読み始めた学生程度にしか使えん。
>>812 >C++って字を見てヒステリックな反応起こすのは、挫折組でしょ。
同感。
言語にこだわらない人なら「プログラマならC++くらい使い倒せ」と言われても
「必要になったら余裕で使いこなして見せますが何か?」とでも言えるだろ(笑)
>むしろ、言語についてあーだこーだ語ろうってんなら >Scheme/Haskell/Smalltalk/Prologみたいなのまで使いこなしてもらいたい。 個人的にはそれにAdaとForthとAPLとModula-3とOCamlとEiffelも追加してもらいたい。 が、知ってるならともかく「使いこなす」のはむずかしいんでは。
816 :
仕様書無しさん :02/05/31 13:20
まあ、仕事で使えといわれた言語については、2,3日で大体実務可能 レベルまでは持っていくけど。それがなんであれ。 C++とJavaはとりあえず基本中の基本として。 仕事で面前に登場しない言語には興味はないな。
もしかして「C++くらい使い倒せ」が反感を買ったのでは?
これを「(お願いだから)C++くらい使ってくれ(この通りだm(__)m)」にしたらどう?
>>813 >>815 う〜む。君たちを言語ヲタに任命しよう。(うそ
>「日本人しかいないところで英語を話し出した場違いな奴」扱いされるのが鬱なんよ。 ワラタ。 ... いや、あんまり笑えない。 ... あ、だんだん鬱になってきた。
面前に登場した言語について好き嫌い言う程度の権利は俺たちには あると思う。 でも、嫌いな言語を使うのってひどくつらい話だろうし、 そゆ意味で俺は各言語の長所に注目するように努めているよ。 プロジェクト開始時に、そのプロジェクト成功のためのベストな 言語をチームに推すけど、チームの中にはそれになじめない人も いるので、常にベストな環境を構築できるとはかぎらない。 でも、選んだ言語や環境でプロジェクトが完遂できるなら、 普通に受け入れる。 これがPGのあり方だと思うんだけど。どうだろ。
821 :
仕様書無しさん :02/05/31 13:26
> まあ、仕事で使えといわれた言語については、2,3日で大体実務可能 > レベルまでは持っていくけど。それがなんであれ。 でもそれも C, C++ などの手続き型言語で鍛えた 基礎知識があっての話だよね。 まったく見たこともない言語、たとえば C しかやってこなかった プログラマが、いきなり Allegro CL で書かれた数万行という アプリを任されたら、一週間やそこらではどうにもならんだろ。 まあそんな突飛な状況はそうそうないと思うが。
>>815 >が、知ってるならともかく「使いこなす」のはむずかしいんでは。
つまりは安易に言語を語るなってこった。
>>821 おおむね同意だが、
>でもそれも C, C++ などの手続き型言語で鍛えた
の「手続き型言語」になっとくいかんのは俺だけ?
>>812 >C++って字を見てヒステリックな反応起こすのは、挫折組でしょ。
それゆーんだったらJavaって見たら即座に「遅い」って
決めてかかる連中は、Javaを使いこなせていないし、
俺に言わせれば挫折組って事になるけど。
>C++とJava程度はたしなみかなぁ。余裕で使ってナンボ。
>C++とJavaはとりあえず基本中の基本として。
って言ってる連中見ると…
なんかなぁ… って気になる。
彼らは
>>784 の言う1割では無いんだろうな…
(・∀・)イマドキプラプラ、カコイイ!!
プログラマってのはコードが動いてナンボの仕事だろが。 「この船はお魚が捕れないからキライでしゅ」とか言う漁師がいるか? そこをなんとかするのが漁師だろ。職業は遊びじゃねーんだっつうの。 良い環境と良い道具を使って良い結果が出るのはあたりまえじゃ。 どんな環境でもどんな道具でも結果を出せるようになれってことや。 良い道具をそろえるのはガキでもできるっつうの。まずは使い倒してみろ。
フサギコってコンプレックスの固まりだな。(w
Borland系のツールに惚れ込んだ連中は、みんなそうなのさ。
だからBorlandはいつまでたっても(略
>>824 俺はJavaもC++も使ってるよ。
ちなみに、C++使えてJavaを使えないってことはない。
まともなJava使いもC++は難しくなかろう。
問題は、C++で挫折してからJavaに行った人たちだね。
彼らの書くJavaは、(全部じゃないが)往々にして、Javaじゃない。
もちろん、本当のことを言うと、「C++で挫折」ってのは変。
ちゃんと勉強すれば、挫折するはずないんだから。
>ちゃんと勉強すれば、挫折するはずないんだから。 はげしくその通り。
>>831 いや、「使ってる」と「使いこなせる」っていうのは
俺は全然違う意味で使ってるから。
(前提)
C++使いの殆どは C++を 「使える」けど「使いこなせ」ない。
Java使いの殆どは Javaを「使える」けど「使いこなせ」ない。
で、
>>812 では C++ を「使える」けど「使いこなせ」ない人は「挫折組」と書かれていたみたいなので、
>>824 では Java を「使える」けど「使いこなせ」ない人を「挫折組」と表現してみた。
C++は使えるからレベルアップして 使えこなせるようになるとまわりがついていけない罠。
レベル差が激しいのがC++。 しかしJavaも実は激しい、というのが最近の実感・・・
836 :
仕様書無しさん :02/06/01 02:22
どんな言語も極めるのは難しいんだべ。 プログラミング言語じゃなくても、SQL なんか効率重視すると かなり姑息なテクニックが必要で大変って聞いたよ。
837 :
仕様書無しさん :02/06/01 02:28
きしょい
>>836 うーん、そういう温度差とはまた別の感覚なんだけど。
>>835 実はJavaScriptも、かなり激しいと実感しました。
動かす程度なら、理解なんて必要ないし、
多くの人が、WEBページに飾りを付ける程度のものと思ってるだろうから、
勉強しないのでしょう。
Javaででユーザ定義型作ったときは正しく読めるやつがいぱーいいたが、
JavaScriptでユーザ定義型作ったら正しく読めるやつが居なかった(鬱
840 :
仕様書無しさん :02/06/01 09:23
C++は糞。 だからさわりたくない。 仕事だからって理由で一部のヘタレが使ってるだけ。 いまどきはね(w
>>840 いまどきもなにも、はじめからわかんなかった、に一俵。
まあたしかに、趣味では別の言語を使いたい。
844 :
仕様書無しさん :02/06/01 10:03
このスレを読んでC++を使ってみようと思いました。 VC++というものはどこからダウソしたらいいのですか? 教えてください。おながいします。 あ、無料ですよね?Windowsしかもってないので。
言い忘れましたが開発環境はいりません。 notpadでシコるつもりです。コンパイラとライブラリだけダウソしたいのです。 よろしくおながいします。
846 :
仕様書無しさん :02/06/01 10:08
847 :
仕様書無しさん :02/06/01 10:08
>>846 そうでしたか。では無料ってわけにはいかないでしょうね。
素のコンパイラだけ無料でダウソできませんでしょうか?
>>846 LCC-Win32: a free compiler system for Windows
まさに求めていたものです。サンクスコ!
>>852 windows.hやwinsock2.hをincludeできるのだったらCygwinでもいいんだけど。
>>853 どうせならCygwinとwxWindow等でクロスプラットフォームで逝けば?
855 :
仕様書無しさん :02/06/01 12:56
ム板でも聞いてるんですが、相談に乗ってください。 VBで「Dim WithEvents obj???? 〜」って宣言すると、COMコンポーネントの イベントを受け取れるじゃないですか。 このコンポーネントをVCで動かそうとしています。 VBで出来る事がVCで出来ないわけがないと思っていましたが、いわゆる インタフェイスクラス側のインプリメントは簡単に出来るんですが、 イベントハンドラ側がうまく実装できません。 タイプライブラリを指定して同コンポーネントのクラスを自動生成させた のですが、ヘッダファイル上でプロトタイプを確認すると、「引数の型が あいまいでメンバを実装できません」みたいな表示がされて、イベント ハンドラが加えられていません。ここでひとつ質問。 1、vテーブルが存在するものとしてviatual宣言の上メンバ関数を書き加えて 意味があるのでしょうか。 そこからイベントをキャッチする場合、 2、生成されたクラスを派生させて、イベント割り当て関数をオーバーライド すれば、イベントをキャッチできるのでしょうか? インタフェイス側のクラスはCoRegisterClassObject関数でハンドシェイク 出来ましたが、イベントハンドラ側は「クラスがない」といった風なエラー が発生します。 3、COMコンポーネントの設計の問題でしょうか?それともクライアント側の コーディングの問題でしょうか?それとも他に? COMコンポーネント側もある程度ソースレベルでの融通が効きます。 以上3点の解決について知恵をいただければと思います。 よろしくお願いします。
VB房ウザイ
857 :
仕様書無しさん :02/06/01 15:00
マイクロソフトの eMbedded VC++ なら統合環境丸ごと無料だよ!
858 :
仕様書無しさん :02/06/01 15:09
859 :
仕様書無しさん :02/06/01 15:26
>>855 ム版でだめなら、こちらでまともなレスは望めないよ。
861 :
仕様書無しさん :02/06/01 16:41
862 :
仕様書無しさん :02/06/01 16:51
>>861 Windows 用のバイナリは作れないから気をつけろ。
class Hello { public static void main(String[] args) { System.out.println("Hello, world!\n"); } } #include <stdio.h> int main(void) { printf("Hello, world!\n"); return 0; } $ time java Hello Hello, world! real 0m0.411s user 0m0.020s sys 0m0.000s $ time ./hello Hello, world! real 0m0.040s user 0m0.020s sys 0m0.030s スピード10倍違うんですけど・・・JavaとC
>>864 何が言いたいのやら???
そのコードでtimeの結果書いて、何の意味があるわけ?
866 :
仕様書無しさん :02/06/01 22:30
>>864 time cc hello.c ってやってみな。
中学校で y=ax+b て習わなかったかな?
あ、ごめんまだこれから習うのかな?
>>867 ヤツのマシンは、起動時間が遅いんだと、
早いHDDか、メモリを増設したいって言いたいんだろ。
1GHzのCPU使ってるけど、 起動時間 0.4秒ってそんなモンじゃないの? 2GクラスのCPU使ってる人々だと 起動時間 0.2秒とかになるわけ?
866が言ってるのは 演算時間が非常に短い場合 「見かけ上の実行時間の比が、実はほとんど起動時間の比になってしまう」 ということでしょ
871 :
仕様書無しさん :02/06/01 22:49
>>868 ちがうよー。
スピード=処理速度x処理量+起動時間
というモデルの場合、
>>864 の例は処理量がゼロに近いので
比較にならないってこと。もっと処理量を多くしないと駄目だよ。
プロバイダの初期費用と月額みたいなもんだろ。
あ、ちなみに上記のモデルが単純すぎるだろって突っ込みはなしね。
>>871 スピード=処理速度x処理量+起動時間 は
実行時間=処理速度x処理量+起動時間 じゃないか?
俺は単に「スピード」とだけ言われたのなら
処理速度の事だと理解してたよ…
>C++10年生 10年もプログラミングやってて… いや、だからこそ10年間PGどまりなのか…
874 :
?d?l???3?μ?3?n仕様書無しさん :02/06/01 22:57
>>872 じゃ、それに訂正!
あ、漏れ 866=871
さんきゅーわかった。
じゃ、比較して意味のあるコードキボン。ついでに結果も。
>>873 じぶんのティムポでも舐めてろ。
>>875 >じゃ、比較して意味のあるコードキボン。ついでに結果も。
お戯れを・・・ご自分でどうぞ
877 :
仕様書無しさん :02/06/01 23:10
>じぶんのティムポでも舐めてろ。 >じぶんのティムポでも舐めてろ。 >じぶんのティムポでも舐めてろ。 うむ。10年の歴史を感じる。
>じぶんのティムポでも舐めてろ。 一度は考えた。 男のロマン。
他人のティムポもぜひ挑戦してほしいわ。
880 :
仕様書無しさん :02/06/01 23:18
漏れ、C 19 年生だ。あらためて数えるとコワイ。 どおりで、C で書いてると安らぐと思った。 ちょっと Java とかもやったほうがいいね。 でも仕事で使わないから休みに自習かな。
>>876 に限るわけじゃないけど。
本音を言うと、コンパイラの最適化にひっかっかて意味なし実験になったりして、
それを指摘されるのがこわいんでは?
んじゃ、10年もPGのままの俺がコード出すね。問題あれば教えてね。
/* C */
#include <stdio.h>
int main(){
int i = 0, j;
for(j = 0; j < 10000000; j++)
i = j * 2;
printf("%d", i);
}
//java
class Hello{
public static void main(String[] args){
int i = 0, j;
for(j = 0; j < 10000000; j++)
i = 2*j;
System.out.println(i);
}
}
//C++
#include <iostream>
using namespace std;
int main(){
int i = 0, j;
for(j = 0; j < 10000000; j++)
i = 2*j;
cout << i << endl;
}
で、どう?
882 :
仕様書無しさん :02/06/01 23:21
あ、ループが足りなければ、3重ループくらいにしてね。 俺は、自分のも人のも舐めたことはない。
>>881 今時、ループの比較なんてしても意味がないって。
意味のあるベンチマークテストを作るのは それだけで商売になるくらい難しいと思うわ。
886 :
仕様書無しさん :02/06/01 23:25
GUIやら通信やら…実務に影響が出そうなもんで比べないと意味ない罠。
887 :
仕様書無しさん :02/06/01 23:28
>>881 volatile int i; ってかくといいよ!
あとね、I/Oは遅いかもしれないからこの場合は print とか
やめたほうがいいよ。
でも、2400bps のシリアルに出力して、C と Java は同じ速度
ですがなにか?っていう結論もイイかもね!
んじゃ、どうすれば意味があるだろうか?小一時間。。。
ループがだめなら何をすればよい?
ループがだめな理由って何?
もちろん、汎用的なベンチマークをやろうってんじゃないよ。
>>864 の遺志をつぐような簡単なやつでいいんだよ。
#include <iostream> int main(){ int i = 0, j; for(j = 0; j < 10000000; j++) i = 2*j; std::cout << i << std::endl; }
890 :
仕様書無しさん :02/06/01 23:31
で、汎用的なそれは「意味が無い」んだわ。
892 :
886・890 :02/06/01 23:34
さっきからネカマと意見があうので気持ち悪いのだが。
893 :
?d?l???3?μ?3?n :02/06/01 23:34
>>882 VB も初めの頃につかったよ。
あおりぎみに言わせてもらえば、perl の 256 倍はマシだね!
Java >> C++ >> C >>>>>>>> VB >>>>>>>> perl, SQL
かな。VB は適材適所だけど perl 芯でほしい。
ruby もよさそうでダメ。
理想型を言えば、 実務で使ってるようなものを無作為に100種類くらい選んで、 それの平均値を比べる…ということか。 てゆーか無理。
>>887 さんきゅう。
volatile...なつかしーねー。Cの人ってこれ使ってんの?
やってみたけど、結果は変わらなかった。
>>889 さんきゅう。
そういうの好きだよ。でも、結果は同じだった。
C++でwebサービスのフレームワークってある? servlet・jspと比較しようとしたらどうしたらいいんだー。
> >> C++ >> C >>>>>>>> VB >>>>>>>> perl, 業務だけならそうだろうな
C#>> C++ >> C >> Java >>>>>> VB > Delphi >>>>>>> perl
899 :
仕様書無しさん :02/06/01 23:39
>>881 volatile int i; ってかくといいよ!
あとね、I/Oは遅いかもしれないからこの場合は print とか
やめたほうがいいよ。
でも、2400bps のシリアルに出力して、C と Java は同じ速度
ですがなにか?っていう結論もイイかもね!
横から質問なんすけど。 >real 0m0.040s >user 0m0.020s >sys 0m0.030s のreal、user、sysの違いってなんすか?
だから、比較すること自体になんの意味があるんだよ。
>>888 コンパイラの性能を比べているの?
それとも言語仕様自体の能力を比べているの?
前者ならループでもいいけど、その程度のコードでは最近のコンパイラの出力するコードは変わらない。
後者なら、どれだけ高速にJPEGをデコードできるかといったものでないと意味がない。
万年PGに有難い御高説タレても無駄。
904 :
仕様書無しさん :02/06/01 23:44
>>896 つくるんだよ。
servlet ぐらい 3 日でパクれるだろ。
C# >> C++ >> C >> Java >> Delphi >>>> VB >>>> lisp >> perl >> ruby これでケテーイ
>>905 そうやって言語を不等号で並べてると、余計なものを召喚するような気がするな
Lispは別格だわ。
910 :
仕様書無しさん :02/06/01 23:50
スカラーで並べられるもんじゃないよな。少なくとも。 ちゃんとベクトル表現も書け>不等号厨
>>907 C# >> C++ >> C >> Java >> Delphi >>>> VB >>>> lisp >> perl >> HSP
スマヌす。修正しる。
>>909 なるほど
でも「voke」とか「嘲笑激藁」まで寄ってきたのではね〜
ま、もうすぐ1000取りだろうから構わないかもしれないけど
913 :
仕様書無しさん :02/06/01 23:52
>>900 real はトータル時間。その処理にどのくらいかかったか。
user はユーザ空間で消費された CPU 時間。
sys はカーネル空間で消費された CPU 時間。
user と sys と I/O 待ち時間を足したものが real になるはずだけど、
ここで計算が合わないのは測定誤差だとおもう。
たぶん 10msec かんかくで timer 割り込みがはいって、それをもとに
測定しているんだろう。だから、10msec 程度の精度しか期待できない。
>>901 じゃ、ボールを蹴ってゴールすることに何の意味がある?
>>902 俺個人の想像はこう。
○どんな処理にも、最高速のバイナリがあり、コンパイラはこれに近いコードを出す。
○よしんば、そうでないコンパイラがあっても競争と淘汰で、結局同じようなものになる。
○言語仕様を比べるなら、「書きやすいか」の問題であると思う。
○「JPEGのデコード」にしても、同じようなコードを書けば、同じような結果ではないか。
○ある言語仕様なら書きやすいコードというものはあると思う。
それはそれとして、俺は、簡単な実測実験くらいしてみたいと思ったのよ。
結果を振り回してあやしげな論を振り回すべきではないが、意味はあると思うよ。
なんかスレの流れは別の方に逝ったようで、残念だ。
C# >>> C++ > Java >>>>> C >> 〜ワープ〜 >> VB > HSP
だから!、比較することになんの意味があるのか、小一時間問い詰め…
917 :
仕様書無しさん :02/06/01 23:54
>じゃ、ボールを蹴ってゴールすることに何の意味がある? それでメシを喰ってる人が実際に居る。 はい。 で >意味はあると思うよ。 どんな?
918 :
仕様書無しさん :02/06/01 23:54
910 名前:仕様書無しさん :02/06/01 23:50 スカラーで並べられるもんじゃないよな。少なくとも。 ちゃんとベクトル表現も書け>不等号厨
920 :
仕様書無しさん :02/06/01 23:56
あれ?次スレってあるの? C# >> C++ >> C >> Java ってどう考えても、ベクトルとか顧慮しても納得できないんですけど。
(ただ今不等号厨が必死でAAを書いています)
>>916 >>917 だからさあ。俺は別に哲学や人生を語ってるんじゃなくて、コードの話をしてるんだけどなぁ。
君らなら
>>881 のかわりにどんなコードを書く?
雑誌のベンチマークテストの記事を読んで、受け売りするだけ?
それとも、比較なんて、頭の片隅でも一切しないの?
あ、いや、こういう話じゃなくて、
>>881 のコードの改良なり、もっといいのなりの話をしてくれ。
俺は、万年プログラマだから、コードの話が好きなんだ。
JPEGの話は簡単にいなしてしまったが、具体的な話なら、聞いてみたい。
じゃないと寝るぞ。年寄りは朝が早いしな。
おやすみなさいませ。いい夢が見られますように。 あたしも明日イベントだから寝るわ。
>>922 >コードの話をしてるんだけどなぁ。
あー成る程ね。ま俺も別に哲学や人生について語る気は無い。カネだ。カネ。
よって
>比較なんて、頭の片隅でも一切しないの?
単純なコードの比較なんかしない。一切。
925 :
C 19 年生 :02/06/02 00:09
>>922 各言語で、Web ブラウザと、オフィススウィートとコンパイラと
気象シミュレータを記述してベンチマークか?
すまん、やっぱ意味ないわ。最初に問題を定義すべきだな。
その意味では最初の Hello World の例は完璧だ。
>>914 例えばJavaには決してかけないコードというものが存在する。
16bitの配列を、32bit単位でクリアすることはできないポインタがない)し、
float,int,float,int...といった異なる型が存在する配列は作成できない(構造体がない)。
またスタック上に基本型と参照型しか置けない。
>>925 マジレスさんきゅう。
>>関係各位
じゃ、もう寝るから、ながなが語っちゃうね。
はじめ
>>864 を見たとき、単純におもしろいと思った。
俺はこういうこと考えたことなかったから。
(荒れそうだから書かなかったけど、実感として、JavaのGUIは遅いような気はするが。)
それから、「起動時間を考えておらん」という批判があって、それもまたおもしろかった。
そういう話は、していたりするが、実際に、計ったことなんてなかったから。
で、y=ax+bってのしたがえば、より処理の長いのを実行すれば、aとbがわかるわけだなと
考えて
>>881 を書いた。
そもそも、簡単な処理1つ、実際に何秒かかるか知らなかったのは、PG10年生として、
恥ずかしいことだとも思ったわけだ。
今回の実験でだいたい感じがわかったんで、俺としてはよかったよ。
ただ、妙に怒りっぽいのがちらほらいたのが、どうもな。
そもそも、最初の「ティムポ」が悪かったなら謝る。
ちょっとしたあいさつだったんだがな。
楽しかったよ。
じゃ、おやすみー。
30にもなってティムポなんて情けないぞ>>C++10粘性
>881のコードって、ランタイムのI/Oの速度を測ってるだけだな。 言語の実行性能比較になってないよ。
931 :
仕様書無しさん :02/06/02 01:20
漏れ、若いころ身体が柔らかかったんで、自分のティムポなめてみたよ! べつに気持ちよくなかったけど、理系なら何でも試してみるよね!?
いまどきDelphiかよ? だったらネタスレ扱いなのに、この盛り上がりようは一体・・・
>>926 >16bitの配列を、32bit単位でクリアすることはできないポインタがない)し
jdk1.4から追加された nio(ByteBuffer)ではそーゆー事できそーですが。
それに C/C++ でそーゆー事やると エンディアンが異なる環境との
移植性がなくなること多いし、移植性を考慮すると Java みたいにやるとか、
#ifdef するとかして手間がかかる、とか思うけど。
1000取りは?次スレは?
>>927 JavaのGUIが遅いってのは ForteやJBuilderが遅いって話?
それとも自分でSwingアプリ組んだけどメチャクチャ遅いって話?
>936 意味不明だった。ごめんよ。
>>933 今更JNIに頼りまくったAPI作られてもねぇ。
それ言語仕様じゃないし、JNI呼び出しのオーバーヘッドも馬鹿にならない。
まあバッファフィル用途ぐらいなら使えるけど、Cだとインラインで書けるからね。
あと基本的にバッファフィルにエンディアンは関係ないよ。
タイルパターンでも作らん限り。
>>938 おいおい…
>16bitの配列を、32bit単位でクリアすることはできない
ってのは short の配列を 0x12345678 とかでクリアするって事じゃないのか?
じゃなきゃ short の配列を 0x00000000 でクリアするんだったら
あんまし意味のある比較じゃないだろう?
それに ByteBuffer は Javaヒープにも生成できます。
> 今更JNIに頼りまくったAPI作られてもねぇ。 OS毎のインプリの違い OS固有の事情によるバグ を楽しめるからいいじゃないか。
>>938 あとバッファフィル程度だと
(short に 0x1234 と 0x5678を交互に入れるのでも)
最初の代入と System.arraycopy を複数回呼び出せばなんとかなるし、
インタプリタを考慮に入れれば(普通は考慮に入れないけどね)
そっちの方が良いというのもある。
>>939 short buf[1000000];
for (int i=0;i<1000000;i++) buf[i] = 0;
と
short buf[1000000];
int* dwbuf = buf;
for (int i=0;i<1000000/2;i++) dwbuf[i] = 0;
では30%ぐらいフィル速度が違う罠。
/2じゃなくて/(sizeof(int)/sizeof(short)) にするのが大人のコードってもんだろ、学生さんよ。
>>943 言語ヲタ丸出しのくだらない突っ込みはしなくてよし。
俺はいつも型をtypedefして使っているから関係なし、
Java使いにも解りやすく書いただけだよ。
945 :
仕様書無しさん :02/06/02 02:57
>>944 よくいるんだよね、
>>943 みたいな言語ヲタ。
お前はintが8bitの環境で、32bit前提で書いたコードがまともに動作すると思っているのかと
小一時間といつめたい。それ以前に型のサイズを吸収したところで、
DS!=CSの16bit環境で、Near/Farも使い分けていないコードがまともに動作するのかと
小一時間といつめたい。
将来のありもしない用途に備えて汎用性に拘るな、コードはできるだけ簡潔に短くしろと、
ExtreamProgrammingでも書かれているだろ。
これが本当のプロの意見だ。
>ExtreamProgrammingでも書かれているだろ。 >これが本当のプロの意見だ。 XPなんてやってるプロなんか居るのか? 実は身の回りに一人居たんだが口先ばっかりでロクな仕事しなかったぞ。
947 :
仕様書無しさん :02/06/02 03:04
>>946 XPは本当のプロが数々の経験の末に提唱したものだってことだよ。
XPやってる奴=プロってことではない。
C++使ってる奴=凄いプログラマではないのと同じ。
>intが8bitの環境で どんな環境?
おいおい、XPとか言い出したぞ 頭大丈夫か?
>>946 やってるが、どこまで的確な見積もりを出して
顧客を納得させるかという緊張感がなくなったことと、
完成までイメージする爽快感がなくなったっす。
XPはどちらかというと、プロとしてやってく実力がない(?)段階での
とりあえずの策(単語でなんていうんだっけ?)だと思う。
951 :
仕様書無しさん :02/06/02 03:09
>>948 知らんよ。intはその処理系が最も処理しやすい型だから、
8bitであっても4bitであっても不思議ではない。
まあそんな環境は普通アセンブラだろうがな。
そういう環境は少ないですね:-)
953 :
通りすがり :02/06/02 03:12
>1 :仕様書無しさん :02/05/22 09:45 >って言われました。 >もう古いのですか?この言語。 何が新しい言語か聞き返せ
少なくとも俺の環境ではjavaが最強。 C++逝ってよし。 以上、終了。
955 :
仕様書無しさん :02/06/02 03:14
>>954 最強のわりには、クライアントサイドで絶滅していますね(w
C++ で Web サイト構築するのも流行らないので、いい勝負では?
958 :
仕様書無しさん :02/06/02 03:18
>>944-945 素人の分際で、他人を言語ヲタ呼ばわりですか…
>>945 > DS!=CSの16bit環境で、Near/Farも使い分けていないコードが
まぁお前は一生 Intel 系 16bit だけやってろ、って事だ。
>958 .NETじゃ、実質Java と変わらないじゃないか...
961 :
仕様書無しさん :02/06/02 03:21
>>959 intやshortのサイズは決まっていないってのを知っていることが大人ですか(プ
>まぁお前は一生 Intel 系 16bit だけやってろ、って事だ。
だれも16bit=DS!=CSなんて言っていませんが?
型を意識してプログラムしたところで、動かない環境もあると言いたかっただけで。
各言語の長所・短所とか分かっているのかと(省略)
>>960 .NETは言語を規定するものではないので、ManagedC++なんかも使えますが。
>型を意識してプログラムしたところで、動かない環境もあると言いたかっただけで なら初めからそう言えと(省略)
965 :
通りすがり :02/06/02 03:27
仕事上、私のように適用適所で asm,C,C++,C#,Java,JavaScript,PHP,Prolog,Lispを 使いまくっている人は結構いると思いますが、 一つの言語に囚われなきゃいいだけと思うのは私だけでしょうか?
magic numberはつかうなってだけのことで、言語オタだのXPだの、 よくもまあ外道ばから釣れたもんだな。
967 :
仕様書無しさん :02/06/02 03:28
ばから
>>961 俺は“大人”とは言ってないよ。言ったのは
>>943 。
プログラミング時の環境だけ考えてればいいってのは素人だよなぁ、と
思っただけ。
> 型を意識してプログラムしたところで、動かない環境もある
んー?環境が変わっても再コンパイルだけで動く様に、ってのが
>>943 の主旨ちゃうの?
ばから?
>963 結局 Java に対する C++ ほどの自由度や実行効率は無いでしょ。
アホか>俺。 欝なので寝る…
自由を無節操と呼び換えるとおもしろいな。 実行効率を開発効率と呼び換えるとおもしろいな。
>>970 自由度はJavaよりは遥かに高いな。
unsafeだとアドレス直指定でアクセスもできたりする。
(unsafeといってもILのコードであってネイティブではない)
実行効率で劣る点は、
動的リンク、実行時コンパイル、インライン展開とか結構あるけど、
まあJavaよりはまし。
>>968 >んー?環境が変わっても再コンパイルだけで動く様に、ってのが
>
>>943 の主旨ちゃうの?
>>945 は、その主旨が間違っていると言いたかったわけですな。
つまり、そんなもの型だけ合わせてコンパイルしたところでまともに動かんぞと。
>973 結局「Java よりまし」ってのに尽きるわけ。 中途半端だと思わん? 俺は C++ と Java だけあればいいよ。
>>975 全然。
Javaの大きな間違いは、すべてJava言語で書こうとしたこと。
.NETの素晴らしい点は、ネイティブコードと、中間コードのシームレスな連携を可能にしたこと。
つまり、パフォーマンスが重要でない部分は、
開発効率が高く、安全で信頼性の高いC#などを使い、
パフォーマンスの重要な部分はC++などでネイティブで書こうということですな。
ManagedC++は、C++のネイティブクラスと、C#などの中間言語のクラスとを連携させるための
存在と考えるべきなんですな。
JNIの回りくどさをしっていると、まじで感動しますよ。
俺はC++と.NETだけあればいいけど、Javaはイラン。
>>976 つまり、Windows以外イランと。(プ
次スレは「いまどきWindowsかよ?」で。
>>977 C++がOS依存だと思っている馬鹿ハケーン
>>942 10,185--memset
13.620--char
11.426--short
9.614--int
9、624--__int64
うーむ。 short と int の差は 20%弱 くらいですか?
それ程 クリティカル でなければいーんじゃないかなぁ?
それにゼロクリアだったら普通は memset とか
bzero とか使うような気もするし…
ちなみに Java だと
15秒前後--arraycopy(byte.char.short.int.longで殆ど変わらず)
Sun JDK1.4
16.674--byte
12.869--char
12.858--short
9.354--int
8.693--long
IBM JDK1.3
13.129--byte Arrays.fill
11.537--char Arrays.fill
11.507--short Arrays.fill
9.304--int Arrays.fill
9.504--long Arrays.fill
>>980 memsetの実装は多分内部で判定して、
32bitフィル+端数は8bitフィルになってると思う。
この手のテクニックを駆使するときは、ビットマップの全画面書き換えだったりするから
20%の差は物凄く大きい。
あと、__int64じゃなくて、doubleか、MMX使ってみるともっと速くなる。
SunのJDK1.4はたぶんMMXレジスタ使っているね。
>>982 ビットマップ全画面書き換えとかなら、
普通はハードとか抽象クラスに任せちゃうと思いますが…
984 :
仕様書無しさん :02/06/02 09:52
大体の処理時間をくらべれば C :C++:Perl:Java = 1:3:3:10 だろ。 プログラミング作法に目安としての実験がのってるぞ。
あっそ。だから何?
>>985 いや、Javaって糞だよな、と思ってるだけ。
とっとと、マルチプラットフォームの幻想すてなければ
生き残れないよな。ま、教育用の言語に過ぎないか。
>>987 さらにいうなら、Javaは市場をもだましてしまったところに最大の
罪が有る。通常、最初の理想が高いものっていうのは生き残らない。
たとえば、SGMLがはやらなくてXMLが生き残ったり、OSIの7階層
モデルが生き残らなくて、しょぼいTCP/IPが生き残ったりとな。
だいたい妥当なところに落ち着くものなんだよ。
Javaの場合、Sunがそうなることを一所懸命拒否しつづけている。
新たなネタを「本質がばれないように」提供しつづけることで、
いわば、市場をだましこんでしまったのだ。
これは、ユーザにとっても技術者にとっても不幸なことといわなけれ
ばならない。いいかげん目覚めて欲しいものだ。
>>979 でかいもの作ればOS依存になりがちですが、何か?
もうすぐ、1000だということです。
>>990 なんか、知り合いの創価学会いんに似てる。
「ふーん、、それで?」
を連発するヤシ。
というかですね。また、来たよ。創価学会の勧誘が
うぜぇよ。なんか理屈こねて、容れようといてるけど。
漏れはやりたくないって言ってるのに。
強引さに辟易するぜ。
C++とPerlって処理速度同じ?
>>981 .NETがOS依存だと思っている馬鹿ハケーン
創価学会こえぇよウワァァン もれの会社にもいるよ……いっぱいいるよ……
>>996 構想とは別に、実用的には依存してるんでは?
999 :
仕様書無しさん :02/06/02 10:48
VB最高
>>996 現状では「OS依存」と言い切って差し支えないと思います
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。