アカウント名:
パスワード:
-- cooper
なんつーか、「便利なC」ぐらいの使われ方をされてるような・・
溝はやったら広くて深いくせに、
僕自身もこのあたりまでしか理解してないので これより上の段階はわからないんですけどねえ。
溝はやったら広くて深いくせに、for_eachの先だとアルゴリズム一通りでしょうか。 algorithmは確かに溝だと思うけど、1週間もあれば超えられないかな。
ああ、でも perl で作ると何処行ってもそのまま使えて良いんだけどな。いっそのこと perl で CLI 作ったらそのままいろいろな OS で使えて良いんじゃないか? (笑) # Java VM も。
私みたいにサーバサイドばっかりの人間だと, C, COBOL, Javaそれにperlか何かのスクリプト言語だけなんで, C++なんて何それって感じですね.
オブジェクト指向で設計しても, 実装をオブジェクト指向言語でしなければならないということでも無いし, 複数の開発言語を混在して使うのが当たり前の状況だと, C++は非常に中途半端な位置づけにあるように思えます. 万能なのは確かなんですけどね.
ただたんにgccだと開発環境が辛いからでしょ。 流石にtemplate系のデバッグとかだとなぁ。
VC++だろうがなんだろうが テンプレートの絡むエラーは読みにくいでしょ。
#大昔コピーコンストラクター付け忘れたクラスを #vectorにぶち込んで酷い目に
#単純にコピーして構わないメンバだけならいいんでしょうが。
UNIX系で C++ が流行らないのは gcc がバグっているからのよーな気がする、、、
どうバグってますっけ? (というか、最近使ってみました?)
g++-2.96はヘッダファイルがちょっと足りないのと、template ネストしまくったりするとたまに落ちるけど許容範囲、 んでg++-3.2はそのへんクリアして感動モノの出来だけどなぁ。 個人的には。
うちはエロゲの開発をC++ と Cの混在でやってます。 下のほうのライブラリは、Cでオブジェクト指向もどきで 書いたものを作ってて、上のほうのゲーム本体は C++で 書いてます。他でも流行ってるのかどーかは知りませんが、 C++はやっぱり便利です。
基本的には「便利なC」的な使い方ではあるんですけどね。 名前空間の分離がしっかりしてて、データに関連した機能を まとめて扱うことができる便利な構造体なイメージ。 テンプレートは vector とか list とかを便利につかわせて もらってます
最近VC6でMFCを触り始めましたが、"構造体を用意して - メンバ変数のいくつかに直接値をセットして - いくつかの変数は放置しておいて - コンストラクタやらなにやらに渡す" なんていうコーディングが結構出てきますよね。
GUI/Windowsに依存しない部分をSTLとboostでC++的に書いていると、 上記のような部分との落差に眩暈がして精神衛生上よく ありませんねえ・・
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
「科学者は100%安全だと保証できないものは動かしてはならない」、科学者「えっ」、プログラマ「えっ」
「廃れる」の条件を満たせるほど (スコア:1)
# 本気で反論ってわけじゃないんですが、つい…
周りで template ゴリゴリ書いたり、Loki [freshmeat.net] や Boost [boost.org] をブンブン言わせながら使い倒してるような人ってあんまりいないですよね?(そんなことない?)
もちろん、こんな使い方してるからって「流行ってる」ってことにはならないのは確かですが、ひとつの目安として、もうちょっと C++ 独自の仕様を活用したアプローチが日常的に見られてもいいんじゃないかなあ、と思ったりします。
個人的には夜も眠れなくなるくらい「C++ 大好きっ!!!」なんですけど C# もいい言語だと思いますね。細かいスペックはまだ把握してないけど、interface とか delegate、override(これは諸刃っぽい気もするけど…)をサポートってだけでも、なかなか興味深いです。
ISO 取ろうが取るまいが、どうせ仕事で使う予定なんで、今のうちから好きになっておきます。:^)
-- cooper
Re:「廃れる」の条件を満たせるほど (スコア:2, 興味深い)
流行ってると言うより,私も夜も眠れなくなるくらい「C++ 大好きっ!!!」ですね。私にとっちゃCは構造化アセンブラだし,C++にしたところでオブジェクト指向アセンブラなわけで,その低水準っぷりに惚れています。画像処理なんかやってると,ピクセルをいじりまわすのに,raster[y * h + x]とかやるよりポインタでアクセスしたほうが,書きやすく読みやすくなるとか,24bitカラー画像とグレースケール画像に同じアルゴリズムを適用するのに,templateが涙が出るほどありがたいとか,要するにポインタ演算とテンプレートが使いたくて,C++やってるみたいなところがあります。例外はあまり使わないし,RTTIは全く使わないけどね...
# ポインタ至上主義者なのでAC
Re:「廃れる」の条件を満たせるほど (スコア:2, 興味深い)
理解できないまま使いこなせていない人がほとんどでした。
私は日本で C++ を本当の意味で使いこなしている人種は
ごくごく一部だと推測しています。
(ほとんどは、望ましくないコードのオンパレードだと思う.
私の環境が悪かったのかもしれないが...)
そういう私は C++ を使い始めたのは、かなり昔ですが、
いろいろな言語を触ったあとで C++ を使ってみると、
その "複雑さ加減" というか、"いくらでも変態的な
コードがかけるところ" が返って気持ちよかったりします。
(マゾ的な気分を味わいます。)
でもC言語の延長としての C++ は嫌いですね。
template, STL, Design Pattern を使ってこそ C++ なりの
気持ちよさがあります。
# ついでに VC++(MFC) の設計は非常に嫌い
# 昔 Common C++ というライブラリを使ってたけど
# 最近は Loki, Boost なんていいものがあるのね。情報ありがとう
Re:「廃れる」の条件を満たせるほど (スコア:1)
なんつーか、「便利なC」ぐらいの使われ方をされてるような・・
C++って、いろいろ詰め込みすぎて使い倒せるようになるには量が多すぎる、という気がする。
#K&Rと比べて、ストラウストラップの本の分厚さよ。
あと、Cっぽい使い方でも結構いけてしまうので、わざわざC++らしい使い方を習得しようとする人が少ないのでは。
> 周りで template ゴリゴリ書いたり、Loki [freshmeat.net] や Boost [boost.org] を
> ブンブン言わせながら使い倒してるような人ってあんまりいないですよね?
templateも書けると便利なときがあるけど、使用頻度はあんまりないような気がする。
ライブラリに関しては、STLでことが足りることがほとんどだったり。
#Windows環境だと、それこそMFCべったりになっちゃうし。
Re:「廃れる」の条件を満たせるほど (スコア:1)
vector, map, list, string, for_eachから次の段階に進むと、C++がCとは決定的に異なる言語であることが分かると思いますが、そこの間にある溝はやったら広くて深いくせに、越えた先にそれほど魅力があるように見えないってのが難点なんでしょうかね。
でも好きだなあ。いくら歩き回っても出口が見えないジャングルみたいなところが、いい。
Re:「廃れる」の条件を満たせるほど (スコア:1)
会社にもよると思うんですけれどね。
コンパイラの方でSTL自体がこなれてきたのがここ最近なので、難しいかも。
LokiとかBoostとかのソースをみていると感動的ですよね。
Modern C++ Designを読むと目から鱗状態だったし。
おいらも好きですね。
kusanagi shin
Re:「廃れる」の条件を満たせるほど (スコア:1)
僕自身もこのあたりまでしか理解してないので これより上の段階はわからないんですけどねえ。
Re:「廃れる」の条件を満たせるほど (スコア:1)
それと並行して、iterator/algorithm/adaptorを自作するスキルが必要になりますよね。すると、それまでの「便利なC」の時とは一階上の抽象度で設計する必要がある。ここがまた遠い気がします。
しっかし、それとはまたまったく違う溝がboostやらLokiですねえ。
やったら広いboostとやったら動かないLoki(というよりテンプレートメタプログラム)。
VC++のない世界に行きたい(^^;;
#あとさすがに非標準ライブラリはなかなかお仕事で使う気になれない
#ってのも、スキルアップの障害かもしんない… > 特にboost
Re:「廃れる」の条件を満たせるほど (スコア:1)
私的流行デス。
最近はLinux上でgtkmmをいじるとか。
あえてQtは使わない。
周りにC++を薦めていますけど。
なぜかJava勢力が強いみたいです。
私は目の前にある言語は何でも使います。
好き嫌いはダメダメ。
PCにECC Registeredメモリの利用を推奨します。
Re:「廃れる」の条件を満たせるほど (スコア:1)
全然。(爆)
というか、どの程度使われていれば流行っていると言っていいのかわからないな。
まあでも俺も Windows 用プログラム作る時は C++Builder か Delphi を使うんだけどさ、それは何故かというと GUI 部分を作るのが面倒だから。GUIなしの場合は無料の Borland C++ Compiler をC言語のコンパイラとして使う程度かな(滅多にC++で作らない)。Cygwin の gcc は UNIX と同じソースにしたい時だけしか使わないな。
ああ、でも perl で作ると何処行ってもそのまま使えて良いんだけどな。いっそのこと perl で CLI 作ったらそのままいろいろな OS で使えて良いんじゃないか? (笑)
# Java VM も。
(´д`;)
Re:「廃れる」の条件を満たせるほど (スコア:2, 参考になる)
Re:「廃れる」の条件を満たせるほど (スコア:1)
ActiveState が開発しております。
CLI は JavaVM と比べて、対応しているコンパイラの言語の種類が段違いに多いというのも特徴です。
ML(F#) と Java(J#) でシームレスに相互呼び出し出来るというのはかなりの快感かと。
Re:「廃れる」の条件を満たせるほど (スコア:1)
ん?perl「で」ですか?失礼しました。
とりあえず、Perl6 になったらそれくらいのポテンシャルは……と、夢を見てみる。
Re:「廃れる」の条件を満たせるほど (スコア:1)
Win32が使えて、まともなIDE環境で、テンプレートがきちんと動くのってCodeWarrior以外にありますか?
# 古いバージョンからアップグレードするべきかどうか悩んでいます。
VCから移行しちゃおうかなんて思わなくもないんですが、ややマイナー気味な環境であることには変わりないので微妙に不安だったり。
C++好きな方、だれか教えてください。
Re:「廃れる」の条件を満たせるほど (スコア:1)
VC++ で動かしている人はいます。
Generic Programming with C++ Template [2ch.net]
by rti.
Re:「廃れる」の条件を満たせるほど (スコア:1)
私みたいにサーバサイドばっかりの人間だと, C, COBOL, Javaそれにperlか何かのスクリプト言語だけなんで, C++なんて何それって感じですね.
オブジェクト指向で設計しても, 実装をオブジェクト指向言語でしなければならないということでも無いし, 複数の開発言語を混在して使うのが当たり前の状況だと, C++は非常に中途半端な位置づけにあるように思えます. 万能なのは確かなんですけどね.
Re:「廃れる」の条件を満たせるほど (スコア:1)
めちゃ流行ってます。
すくなくとも、私の周りではオブジェクト指向でプログラムを組んでいない人はいません。
UNIX系で C++ が流行らないのは gcc がバグっているからのよーな気がする、、、
とか /. では危ない発言をしてみたりするテスト(w
by rti.
OOPLは言語非依存では? (スコア:2, 興味深い)
オブジェクト指向と相性が悪い言語だと思います。
C++でOOPLが出来る人は、CでもOOPLは出来るハズ。
gcc(g++) が プログラマの思う動作をしてくれないのは
いわゆるC++の規格が、どんどん拡張されている事にも一理あります。
しかし、規格が拡張され変化していることは、
それだけ利用者が多く広く実践的にC++が活用されていることの現れでもある訳で
どんどん変化しつつ 100年後もC++の子孫は 残っているような気がします。
Re:OOPLは言語非依存では? (スコア:1)
Re:OOPLは言語非依存では? (スコア:0)
慣れるとこれが快感に変わります。
ていうかC++は内部でどう動いているか分かりづらいので。
メモリイメージとか想像しながらプログラムできれば、
コピーコンストラクタがどうのこうの、という種類のバグが
混入する確率が減ると思うんですけど。
さすがに
Re:OOPLは言語非依存では? (スコア:0)
本気か?(藁
すごいバランス感覚だな。
Re:OOPLは言語非依存では? (スコア:0)
まあ冒頭の一行は半分冗談で、参照されていたCOOLには
全面的に賛同はできるとは言い難いところもありますが
(とくに命名規則のあたり。また多重継承は不要ですね)、
C++はFATすぎるのでCでOOPLするのが私にはテキトウ。
今年の夏くらいに、Interface 誌で素晴しい特集があったような...
Re:OOPLは言語非依存では? (スコア:0)
# 恥ずかしいのでAC
Re:OOPLは言語非依存では? (スコア:0)
OOPL = Object-Oriented Programming Language ですね。
だからCでOOPLする、ってヘンかも。CでOOPする、ならオッケー?
Re:OOPLは言語非依存では? (スコア:0)
誰も突っ込まないまま話が進んでいたので、別の意味の略語なのかと考え込んでました。
「CでOOPする」ならもちろんオッケーです。
Re:OOPLは言語非依存では? (スコア:0)
Re:「廃れる」の条件を満たせるほど (スコア:1)
流石にtemplate系のデバッグとかだとなぁ。
#大昔コピーコンストラクター付け忘れたクラスを
#vectorにぶち込んで酷い目にあった(爆)
kusanagi shin
Re:「廃れる」の条件を満たせるほど (スコア:0)
VC++だろうがなんだろうが テンプレートの絡むエラーは読みにくいでしょ。
Re:「廃れる」の条件を満たせるほど (スコア:1)
#単純にコピーして構わないメンバだけならいいんでしょうが。
Re:「廃れる」の条件を満たせるほど (スコア:0)
Re:「廃れる」の条件を満たせるほど (スコア:1)
コンパイルはね。
テンプレートのコンパイルエラーも含めてコンパイルなんて通ってトーゼン。
問題はいつもその先。
#ちゃんとプログラムしてます?(笑)
kusanagi shin
Re:「廃れる」の条件を満たせるほど (スコア:0)
Re:「廃れる」の条件を満たせるほど (スコア:1)
どうバグってますっけ? (というか、最近使ってみました?)
g++-2.96はヘッダファイルがちょっと足りないのと、template ネストしまくったりするとたまに落ちるけど許容範囲、 んでg++-3.2はそのへんクリアして感動モノの出来だけどなぁ。 個人的には。
抽象的で申し訳ない限りですけど。Re:「廃れる」の条件を満たせるほど (スコア:1)
by rti.
Re:「廃れる」の条件を満たせるほど (スコア:0)
Re:「廃れる」の条件を満たせるほど (スコア:1)
KDEがあるわけですしバグが理由というのは薄いと思います。
流行らない主な理由の一つは、あえてC++を選ぶ必要性が(Winと比べると)少ない、からだと思います。
Cでもオブジェクト指向プログラミングの利益は得られているし、
簡単に書くならshやperl、オブジェクト指向言語を使いたいならpythonなどで書けばいいですし。スクリプト言語のプログラムでも
実行バイナリとの扱いの差はWindowsほどにはないですから。
あと理由をあげるとすると、(CやPerlと比較して)情報源やユーザーベースの量などでネットワーク効果があがらないからでしょうか。
# とはいえUNIXでもC++プログラムは多く行われていると思います。
Re:「廃れる」の条件を満たせるほど (スコア:0)
C++だとせいぜいオブジェクト指向っぽい
Re:「廃れる」の条件を満たせるほど (スコア:1, 興味深い)
うちはエロゲの開発をC++ と Cの混在でやってます。 下のほうのライブラリは、Cでオブジェクト指向もどきで 書いたものを作ってて、上のほうのゲーム本体は C++で 書いてます。他でも流行ってるのかどーかは知りませんが、 C++はやっぱり便利です。
基本的には「便利なC」的な使い方ではあるんですけどね。 名前空間の分離がしっかりしてて、データに関連した機能を まとめて扱うことができる便利な構造体なイメージ。 テンプレートは vector とか list とかを便利につかわせて もらってます
Re:「廃れる」の条件を満たせるほど (スコア:0)
Windows ネイティブなソフトの八割くらいは MFC で書かれてますが。
Re:「廃れる」の条件を満たせるほど (スコア:0)
C++らしいコーディングがなされているかどうかなどは問題ではありません。
Re:「廃れる」の条件を満たせるほど (スコア:1)
最近VC6でMFCを触り始めましたが、"構造体を用意して - メンバ変数のいくつかに直接値をセットして - いくつかの変数は放置しておいて - コンストラクタやらなにやらに渡す" なんていうコーディングが結構出てきますよね。
GUI/Windowsに依存しない部分をSTLとboostでC++的に書いていると、 上記のような部分との落差に眩暈がして精神衛生上よく ありませんねえ・・
#ただの愚痴になってしまった。(-1: オフトピック)Re:「廃れる」の条件を満たせるほど (スコア:0)