が多すぎて挫折した人多数w
頑張った所で他の言語に追いつくかも程度で
全然メリット無いという
趣味で使うぶんにはすげー面白い言語だし
性能より生産性が重要なWEBや業務アプリでは生産性高いJavaやRuby使われるし
生産性より性能が求められる組み込み/研究開発/ゲームではC++は重要だから問題ない
c++で楽にwebサイトがまともに作れるライブラリさえあれば世の中c++だけでいいな(´・ω・`)
>>3
その中で本当にC++が使われてるのは
3Dゲームだけだよ。
もはや組み込みも研究開発も
生産性のほうが重視されるからC++は使われてない。
3Dゲームだけは仕方なくC++を使っている。 >>11
template使うとメモリ食うでしょ?
だから組み込み系ではtemplateは使えない。
もっと言えば、C++も使えなくてもっぱらC言語を使う。 実行時のオーバーヘッドゼロという狂信者たちが好んで使うのがテンプレート
template使うとオブジェクトサイズが増えると言うのは必ずしも真ではないな。
ただし、ある程度の規模のコードを書けば
Cより遅くなりサイズは肥大化する
んなこたーない
遅くなるように書けば遅くなるし
遅くならないように書けば遅くならない
遅くならないように書くことをアシストする
ライブラリも書けるし、実際に存在もする。
そこでもtemplateは重要な機能として働く
C++で遅くならないように注意深く書く時間と労力で
Cのコードを注意深くチューニングすればもっと速くなる
注意深く書く必要はない。
cと同じに書けば少なくとも
cと同等のアセンブリになる。
まあ規格通りならrestrictで躓くが
普通のコンパイラなら対応しているから問題ない。
intrinsicをラップするだけのクラスを使うだけで、simd命令使うようなコードの生産性は格段に上がる。
ここらへんはx86やARMだけでなく
DSPみたいなのでもかなり有効
templateでメタプログラミングするくらいなら
OCamlとかその辺の言語でCのコードを生成する方が良い
gaucheとかbonazaはそんなやり方だったっけ
プログラマが頑張って開発するのがC/C++
プラグラマが楽をして開発できるのがC/C++以外のほとんどの言語
C と C++の中間みたいな使い方をしてる・・・・・
てかほぼC
java位の深さで良いのにC++は深すぎるわ
浅く使いたきゃ浅く使えばいい
vectorやstring使えばメモリ確保なんて
全く意識しなくて済むし
まあ、自分の知らない機能を使われたら
理解ができないと言う意味で
完全にものにするのは難しいが
それは生産性と言うより学習難易度の問題
一定以上のレベルにあれば使い勝手は良いよ
LLVMは元からc++で、
gccも最近c++に移行したし
生産性低ければもっと他の言語使うはずよね
cと遜色無い速度をうたう生産性の高い言語なんていくらでもあるのに
まあc++の、僕の考えた最強の言語的な
格好悪さや無駄の多さが理解できないことは無いが
vector<bool>とか特殊化のデモしたいだけで作ったとしか思えないような糞だし
>>26
組んだ後の手離れまで含めて生産性というべき
スクリプトなら書捨て上等だが OSとかドライバとかブラウザとかWebサーバとかデータベースとか言語処理系とかゲームエンジンとか
本当に金稼いでる基盤コードはC++ばかりだけどな。
特にLLなど使ってるやつらなどお客さんに等しい
非生産的(笑)レガシー(笑)と口だけは達者な、コーダーを名乗る資格もない雑魚が
C++からどんどん逃げてくれるおかげでC++erは高給取りだし将来の不安もないw
特に、俺モダンなエンジニアですぅ的なチャラいウェブ系の連中
ChromiumやFirefoxをビルドしたことすらない、JavaScriptエンジンが中で何やってるかも知らないくせに
有能気取りの雑魚ばかりでほんとに笑えるわ
一生真のプログラマの掌の中で遊んでろw
>>32
挙げたような重要な基幹コードに関与できれば。
残念ながら日本国内からはそういうポジションは消滅しつつあるかもしれん
地盤沈下ですな。 >>34
なんだ。結局言語じゃなくて、
仕事内容と会社に左右されるんじゃないか。 C++使えば、同じウェブアプリ作ってても
10倍稼げるっていうのなら話を聞くけどさ。
地べたに落ちてる小銭を拾うか
金脈を探し当てるまで掘りまくるかの違い
>>35
そのとおりだよ‥長期的に儲かる仕事というのがあって‥ 長期的の儲かる会社ってCOBOL使ってる所とかだよ。
生成演算子と消滅演算子
消滅演算子を仮想関数化
生成演算子の初期化連鎖
この使い方と便利さを理解したらC++は最良と思える
最悪なのはreallocがないこと、boostが変態なこと
テンプレート機能は作らず使え
reallocが無いとはどう言うこと?
vector内部でplacement newなmove(copy)コンストラクタ使ってOO対応なrealloc相当は実現しているじゃない?
>>42
確保した領域に追加拡張ってコンパイラやランタイムの実装からみれば無理な注文だしね
そこは理解している。
いつも大人しくnewしてコピーしている >>43
文法にrenewのような機能がないって意味
連続領域の後方拡張のみを行ってメモリを充当。元の領域をコピーする時間を省く仕組みが求められる
まあ代替できるからc++の欠点とは言い過ぎた vector にしても、reserve した領域を使い切ってしまったら、realloc() は new 相当になっているわけで
まあ、あえて realloc() を表にだすこともないよね、てことで
コンパイラの話が出てるので、ついでに書いてみる。
以前、構文解析器の生成系を書いてみた。
当初、OOPで書いたんだけど、全体的に見通しの悪い感じになった。
教科書通りの手続きを並べるような形に変えたら、かなりすっきりした。
OOPになじまないものは確かにあるね。
先の見えないものを後々の拡張性重視で作るためだから
取り敢えず文法を作って構文木生成まで作ったけど、やっぱり形になっている生成系が欲しい
C++で実装したんだが、生成コードを字句や構文を要素256や一定数のテーブルに当てる方式にすると、
なんとなくライブラリコードにテーブル渡すだけのコード生成が要らない実装で用が済みそうな感触
まあこれだと速度が犠牲になるのかな。
なんかちら裏になってしまった
(&ar)[N] とか、range_iterator< T[N]> が出てくる時点でオカルトだわ。
BoostでC++03規格使って、こんなとんでもコードでうまくいったのをC++11、14
では裏に隠したと考えたい。
つまり、上みたいな「病気コード」は一般プログラマはタッチしない方がいい。
魔界に釣れてイカレテ精神的に病むわ
spirits は触ったことないけど
いつも二言目には気持ち悪いコードだと毛嫌いされてるなw
>>57
Boost.Spiritはやめといたほうが良いよ。
テンプレートでここまでできるという感動はあるけど、実用性は無い。 spirit、構文エラーに対する対処方法が難しくて俺には無理だった
高生産性と大々的に宣伝した新言語が高生産性だった試しがない
生産性より環境依存の何かを手動で解消するための道具
いつも完成間近で急にモチベーションが落ちる時期が来る
>>8
3Dゲームこそシェーダーの普及でC++使ってる奴などいない。
PS4ですらC#からHLSL互換コードを流し込む時代だぞ。 そもそもjavaって生産性高いか?
同じ事するのに書かなきゃいけない
コード量はc++よりむしろ多めな
気がするのだが
中学生にプログラミング言語教える時に、
どっちが大変そうかを考えればいいんじゃないかな。
少なくともhello worldならc++の方が簡単じゃね。
文字列操作も
そこら辺のチュートリアルだと
deleteどころかnewすら要らない
classも作らずmainだけで終わるし
>>68
一定数量のマンパワーが集まることにより生産性が高い Hello worldで比較ってアタマ沸いてんのか
>>73
横レスですが、本当にわからないのであれば、私が説明しましょうか? C++の生産性が低いわけではないだろ
学習に時間が必要なだけだろ
C++11やC++14のまともな書籍っていつ出るの?
英語ならいくつか出てるけど、日本語は出ないと思う。
C++11/14の言語仕様を説明する本はコンパイラ屋しか買わないだろ
言語を使う読者に必要なのは、その結果を説明した情報
どのようなコードが生成されるのか?って観点の本ね
>>82
> どのようなコードが生成されるのか?って観点の本ね
それ言語仕様じゃないだろ
言語仕様はどう動作するかを書いたもんだよ
どんなコード吐くかはコンパイラ屋さんの内部資料だわ エンジニアになりたいと言う人(若い女の子)が面接に来ていたので話を立ち聞きした
どんな分野やりたいのか聴かれてweb系のエンジニアと言ってたが
どんな勉強してきたのかという問いにはC/C++をやりましたと
なぜC/C++なの?と聞かれて
色んな言語の基礎になる言語だからだと教えてもらったので・・・
と答えていた
面接してる会社はデザイン会社だった
面接の男性:なぜうちにコンタクトしたの?
若い女の子:webで検索して最初に出て来たので・・・
面接の男性:じゃあこのサイトうちで作ったんだけど君のスマホでアクセスしてダメ出ししてみてくれる?
女の子:なんかもうちょっとヌルヌル動いてくれないですかねぇ
>>86
× 女の子:なんかもうちょっとヌルヌル動いてくれないですかねぇ
○ 女の子:私なら C/C++ でちゃちゃっとヌルサクにできますよ gccですか?VCですかそれともObjective-Cですか?と聞かなかった会社が糞
>>93
IE 並みのブラウザをちゃちゃっと実装できる能力あるなら是非とも雇いたいわ w ヌルヌルってそういう意味で使うのか
その女の娘はネラーなのか?
女の子「XulrunnerでGecko埋め込みアプリ作ったで、どや、うまいやろ編集したからな」
cもC++もたいして変わらんだろ?
どっちを使ってるかわからない人も多いしな。
>>98
どっちを使ってるか分かってない初心者は確かに多いが
ある程度学んだ段階で、中身がまるで別物であることを理解しなきゃならない RustがC++駆逐しねえかなぁ、とちょっとだけ期待している。
標準ライブラリが充実してるので、Javaは生産性が高いのではないでしょうか。
gccがc++で書かれるようになったって情報を見かけるのだけど、 どこら辺がそうなったの。adaがadaで書かれてるのと似たよう な事をc++で書かれてる言ってるには聞こえない語弊があると思 う。
私のgitがおかしいのかそのbranch全然進んでないね。
vimをモダンなコードで書き直すとかいうのと同じ系か。
もしgccがc++で書かれたらopenbsdに移るよ。あそこは受け入れないだろう。
>>105
> 2012-08-14: The branch has been merged into trunk. There is no code left in the branch for now. ... ごめん英語力低いのでしょっぱな過ぎてspaceで飛ばして流し読んだ。
5.1でcだけbuildしようとしたらc++もbuildするねと言われた。
ただc++がhostに必要かどうかは時間かかるのでやってないけど。
まだ全然gccのsourceとか読んでないうちに次々変化していく。
こういうのに付き合って良かった事無いので、もちろん今の環境に留まって勉強するけど。
エリカが例えてあげる
エリカが碁盤の目のような都市だとすると
C++はフラクタル構造を持つ九龍城
どの一部を取っても九龍城よ
>>67
シェーダはgpu上の処理やで
一般的なcpu上の言語でgpu上で動くものは無い 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
SFC9J
.net frameworkのクラスはタイプ数が多いからC++のほうが楽と思うこともある。