トップページ⇒tech
1001コメント285KB

【肥大化】C++ を見捨てたヤシ【複雑化】

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2008/01/29(火) 09:52:47
文法面での機能拡張しすぎ。
C++の構文解析とか、もうワケワカメ。
マイクロソフト拡張大杉。
gcnew とか使うぐらいなら素直に Java でも C# でもつかえ!!!

0232デフォルトの名無しさん2008/03/12(水) 13:43:10
ふーん、その欠陥品を模造したものがSTLドトネト→STL.CLIでつか。
0233デフォルトの名無しさん2008/03/12(水) 15:21:31
見捨てた奴スレのレベルの低さから、何かが解るような気がする・・・
0234デフォルトの名無しさん2008/03/12(水) 16:10:56
>>231
だからと言って標準ライブラリに代わりがあるわけではないし、
C++を使わない決定的な理由にならない。
0235デフォルトの名無しさん2008/03/12(水) 19:43:05
http://www.nicovideo.jp/watch/sm2482689

C++のエラーは黒魔術
0236デフォルトの名無しさん2008/03/12(水) 19:58:38
キャスト演算子のオーバーロードをしたいと言うとき、
C++の場合はポインタが足枷になる
大抵は派生クラスにして終わりなんだが、newできないクラスのラッパを作る時に不便だ
勿論getterも書くが…個人的にはgetterはあまり増やしたくないな
0237デフォルトの名無しさん2008/03/12(水) 21:48:56
10年間変わっていない。
しかもあと10年は変わりそうにない言語を
肥大化というのもおかしくないか。
0238デフォルトの名無しさん2008/03/12(水) 23:12:57
>>231
まだVC6使ってんのか?
0239デフォルトの名無しさん2008/03/13(木) 00:44:51
かれこれ20年近くC++を使ってきたが・・・
まぁ、いろいろな意味と理由で負の遺産となりつつある。
場合によってはCOBOLより凶悪な事態を招きかねない、早いうちに廃棄処分方針をとった方が良いだろうとは思う、さすがに。
固執する人もいるが、そういった人には一度離れて別の言語を見て回ってみろと言いたい、
開発環境・コンパイラといった物から、言語使用その他あらゆる点で時代遅れになっているので……
唯一進んでいるのはboostとその周辺だろうが、これらがメインになるのは恐らく難しいだろう。
0240デフォルトの名無しさん2008/03/13(木) 01:02:01
そもそも元になってるCに言語としての一貫性と言うか、仕様の一貫性が無いのが気に入らないんだ。
変数宣言は「型、名前」っていう順番で統一するべきだった。
ポインタを複数宣言する時は
char *a, *b, *c
ではなく
char* a, b, c
のほうが自然だし、そもそも char* を typedef していれば
pchar a, b, c
と書けるという事を考えると。

関数ポインタにしても
void (*hoge)(char*, char*)
ではなく、単に
(void (char*, char*)) *hoge
としてくれた方が素直だったのでは。
0241デフォルトの名無しさん2008/03/13(木) 01:13:00
それもそうだが、まずtypedefの構文をもっとまともにすべきだったね。
0242デフォルトの名無しさん2008/03/13(木) 01:15:23
問題はC++の次が何か?ってことで、Cの上位互換なら
Objective-Cという選択肢も一応あるんですがねえ…。
0243デフォルトの名無しさん2008/03/13(木) 01:16:00
C言語から引き継がれた機能のうち最大の問題はプリプロセッサだと思うけどね。

>>241
typedef については、これ以上どうしろと・・・
0244デフォルトの名無しさん2008/03/13(木) 01:22:27
関数ポインタのことじゃない?
typedef void(FUNCP*)(int);
これは最初戸惑った。
typedef void(*)(int) FUNCP;
せめてこうなるべきなんじゃないか?と。
0245デフォルトの名無しさん2008/03/13(木) 01:25:07
>>244
それは、宣言の書き方であって typedef 関係ない
0246デフォルトの名無しさん2008/03/13(木) 01:36:55
typedefが記憶クラス指定子ってところがおかしいだろ。
0247デフォルトの名無しさん2008/03/13(木) 01:42:10
どこがよwwww
それでも問題ないし、そもそも記憶クラスじゃないし。
0248デフォルトの名無しさん2008/03/13(木) 02:01:56
>>247
そう、記憶クラスじゃないのに記憶クラス指定子にされているのがなんか気になる。
普段は意識しないし、実用上困ったこともないけどさ。
0249デフォルトの名無しさん2008/03/13(木) 10:56:42
>>240
そもそも char* 等は型ではない。
関数プロトタイプに char* と書くようになってから一貫性がなくなってきてるけどね。

>>247
typedef は Storage-Class Specifier ではない。

0250デフォルトの名無しさん2008/03/13(木) 18:50:53
>>240
でもそれって配列と文法をあわせてるからでしょ。
むしろ他の言語で配列の初期化周りが統一感ない文法が多くて気持ち悪いが。
0251デフォルトの名無しさん2008/03/13(木) 22:05:20
>>243
プリミティブ型からポインタ型や配列型を作れる言語では、
Cの構文以外で一貫性のある型表記を決めるとすると、
関数型言語みたいに「型から型を作る」という意識に立って
typedef &char charptr;
static (const int)*5 intarray;
(int, int) -> void func = { ... };
&((int, int) -> void) funcp;
のように表現せざるを得ない。
で、Cにはタプルもカリー化もないのだから、
わざわざ変数の使い方から乖離した型表記を作る必要はない。
0252デフォルトの名無しさん2008/03/14(金) 10:03:01
>>251
関数型の世界しか頭になさそうなアホちんですね
組み込み等では大変役に立ったモンですよ
0253デフォルトの名無しさん2008/03/14(金) 10:14:55
>>250
kwsk
>>251
レス番間違えてない?
>>252
よく読んでない悪寒
0254デフォルトの名無しさん2008/03/14(金) 10:28:57
熟読した上で、まるで理解できず見当違いの煽りに走った、が正解。
0255デフォルトの名無しさん2008/03/14(金) 12:10:49
>>253
いや、確かに前と後ろにつける違いがあるけど、どちらも変数につけるじゃん。宣言する時も使用するときも。
ポインタの文法は型にくっつけるべきだというなら、配列の宣言も[]は型にくっつけるべきだぜ。
0256デフォルトの名無しさん2008/03/14(金) 16:58:18
入れ子状の宣言文上で複数の変数を宣言するから分りにくくなるだけで
とどのつまり、変数は一つづつ宣言させればいいのさ
それはプログラマがそうすればいいだけの話で、一行に一個づつ変数を宣言しろと。
つか、型宣言はC言語の問題の中では一貫性があり重大な欠陥の少ない部類だろ
なんでこんな所にイチャモンつけてんだか
関数ポインタや、配列返し const volatile register の修飾先が分りにくくて初心者がパニックを起こすのはちと考え物だとは思うが。
0257デフォルトの名無しさん2008/03/14(金) 18:04:45
// C, C++
int *x,y; // xはintへのポインタ, yはint型
int x[N],y; // xはintの配列, yはint型

// C++ typedef
typedef int* pint;
pint x,y; // xとyはintへのポインタ

// java
int[] x,y; // xとyは int[]型

// C#
int* x,y; // xとyは intへのポインタ
int[] x,y; // xとyは int[]型

// D
int* x,y; // xとyは intへのポインタ
int[] x,y; // xとyは intの配列
int[3]*[5] x; // xは int の3要素配列 へのポインタ の5要素配列


いまさらC,C++の宣言の仕様が変わることは有り得ないけど、
新しい言語がCの宣言を否定しているので、
イチャモン?をつける人が出ても、まぁ致し方ないとは思う。

どうせ標準化委員会のメンバーでもないんだし、
気楽に論争(雑談)して良いと思うよ。
0258デフォルトの名無しさん2008/03/14(金) 18:44:16
Cのparserを書こうとすると、Cの宣言の構文が嫌になる。
型名と変数名を区別するのに苦労させられるのがたまらん。
0259デフォルトの名無しさん2008/03/14(金) 21:35:00
変数の宣言部分なんて、C++の話じゃなくて、Cの話だしな
0260デフォルトの名無しさん2008/03/15(土) 04:12:13
>>258
スキャナで適当に区別してしまえよ、せっかく1 passで解析できるように出来ている構文なんだからさ。
それより、古き良き時代で大変役に立った機能が、今、逆に大きな弊害になっている点に突っ込めよ。
インテリセンス・デザイナ・リファクタリングツール・テストツール
リンクを高速に処理可能な抽象度の高い中間ファイル
モダンな機能が組み込み困難になっている現状こそが問題だろ。
0261デフォルトの名無しさん2008/03/16(日) 01:54:31
[迷信] 識別子に使える文字は英数字と下線のみ
ttp://www.kijineko.co.jp/tech/superstitions/only-alnums-and-underscore-are-usable-for-identifier.html
0262デフォルトの名無しさん2008/03/16(日) 04:22:46
>>261
ヨーロッパのマが書いたコードを見れば結構出現頻度高いんだよ、それ
日本やアメリカではお目にかからないけど
0263デフォルトの名無しさん2008/03/16(日) 08:13:45
まぁ、javaやC#とかでも日本語識別子使えるけど、
文字列以外でASCIIでない文字を使うプログラマはカス

日本語プログラミング言語は別だけど
0264デフォルトの名無しさん2008/03/16(日) 15:05:19
もうウニコードベースにすりゃいいのに
0265デフォルトの名無しさん2008/03/16(日) 17:22:02
>>263
日本語ラベルは便利だぞ、C/C++だとラベルはラベル、実行コードは実行コードと分かれているが
リフレクションを持つJavaやC#では、構造体のラベル名を読み取って、そのまま活用できるから、
例えば表のタイトル文字列と、構造体のメンバの名前で表示するとか、XMLの内容をラベル名で出力するとか。
一箇所修正するだけで、全部修正完了するのは便利だ。
0266デフォルトの名無しさん2008/03/16(日) 20:41:58
まさに、そういう考えの人が多いからこそ嫌いなんだけどな
間違ってるとまでは言わないが

ただ、システムの識別子はリファクタリング以外では変えるべきじゃないし
表示名のような業務要件で変わる外部のものと、内部のものを密結合にされると
逆に面倒なことになることもある
0267デフォルトの名無しさん2008/03/17(月) 05:18:58
リファクタリグツールから名前を変更すれば、関わる "識別子=表示名" を根こそぎ全部置換してくれるから、変更漏れがなくていいと思うんだが。
それに、他人に説明するときに対応関係を説明する手間も省けるし。
0268デフォルトの名無しさん2008/04/23(水) 11:39:07
>>179
粘菌の本質をベースクラスとして定義し
そこから派生クラスで環境依存部分を定義する

後は、派生クラス側で
operator=()をベースクラスのコピーと派生クラスの初期化に定義し直せば、動的に粘菌の性質を変更できるんじゃないのか?
0269デフォルトの名無しさん2008/04/23(水) 11:48:50
俺はC++を見捨てたというより使いこなせるようになるのを諦めた。
0270デフォルトの名無しさん2008/04/24(木) 00:12:27
自分を見限ったという事ですか。
0271デフォルトの名無しさん2008/04/24(木) 00:37:32
そうでーす
0272デフォルトの名無しさん2008/04/24(木) 12:26:49
>>268
いや、そーじゃなくて、プログラミング言語以前に、粘菌とはこれだという定義ができないって話らしいお。
0273デフォルトの名無しさん2008/04/24(木) 16:04:17
>>272
定義できないなら、それが粘菌であるかどうかすらわかんないじゃん

例えば、
「晴れたら、小さな芋虫みたいになって、四方八方に散らばり」
「雨が降ったら、ぬちゃぬちゃで繊維質な物体になる」
って性質を持って居るように見えて
本当は、
「晴れたら、小さな芋虫に捕食され、雨が降ったら、その芋虫を養分に育つ」
のが本当の姿である可能性もあるじゃん

その場合、クラスだの、プロトタイプだの関係なく、オブジェクトの設計そのものに失敗しているってことじゃん
0274デフォルトの名無しさん2008/04/24(木) 16:20:48
名前考えるのめんどくさいよね。
日本語でおkになってほしい。
0275デフォルトの名無しさん2008/04/24(木) 16:27:56
>オブジェクトの設計そのものに失敗しているってことじゃん

ま、つまり、そういうことだ。
現実は、オブジェクト設計を失敗してるってこと。

【謎飼育】正体不明の謎生物を7年間に渡って飼育している動物園
ttp://karapaia.livedoor.biz/archives/51124187.html

遺伝子組み換えで、生物どころか単なるパーツが作られちゃうかも。
02762752008/04/24(木) 16:29:45
「現実は」ってのは、”現実世界は”ってことね。

クラス派生で生物が進化してきたわけじゃない。
グラデーション、みたいな。
02772752008/04/24(木) 16:32:24
もっというと、生物の進化は、単純化・複雑化の2方向があるが、現実は「複雑化」の一方。

今、要素を洗い出しても未来には違う要素が出てくる。
スタティックなクラスじゃ足りないってこと。
0278デフォルトの名無しさん2008/04/24(木) 16:34:28
めたふぁとしてのオブジェクトはもういいよ。
それ最初に本に登場したの1992だよ。
名前は日本語でいいが次のトレンドだよ。
0279デフォルトの名無しさん2008/04/24(木) 16:40:24
>例えば、
>
>って性質を持って居るように見えて
>本当は、
>
>のが本当の姿である可能性もあるじゃん

 ↑
これに具体例を入れるだけで、クラスベース言語の限界と問題点が明確になるテンプレ。
0280デフォルトの名無しさん2008/04/24(木) 16:53:29
> 例えば、
> 大きい
> って性質を持って居るように見えて
> 本当は、
> 小さい
> のが本当の姿である可能性もあるじゃん

ねーよwww
0281デフォルトの名無しさん2008/04/24(木) 17:02:34
まあ、ヒトクラスとサルクラスを作ったらその分化前の類人猿はどうするよ、と。
類人猿クラスを作ったらそれとヒトの間はどうするよ、と。
ミッシングリンクみたく、中間は無限にあるという問題になる。
0282デフォルトの名無しさん2008/04/24(木) 17:12:17
>>281
それ俺らが生まれる前の時代にさんざん議論されつくした話題じゃん。
結局ある種の制約がないとプログラミングできないんだから、その手の
問題がないほうが問題なんだよ。
制約があるのが正しい状態って結論が出て今があるわけ。

というわけで、いま必要なのは日本語でいいじゃんってことなんだよ。
0283デフォルトの名無しさん2008/04/24(木) 17:13:39
>>279
それは、クラスベース言語の問題点じゃなくて、オブジェクト指向の限界だろw

>>280
ねーよwww

>>281
それは、オブジェクト指向以前に、デジタル回路ととアナログ回路の違いからやり直した方がいいよ、たぶんw
0284デフォルトの名無しさん2008/04/24(木) 17:18:13
>>283
おまい無知なだけじゃん。
スタティックなOOがクラスベースっていうOOのイロハを知らないんだろ。

回線切ってケーブルで(ry
0285デフォルトの名無しさん2008/04/24(木) 17:19:54
>それ俺らが生まれる前の時代にさんざん議論されつくした話題じゃん。

ねーよwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww


昔あった議論は、OOじゃなくて構造化は是か非か。
その前は、汗じゃなくてCは是か非か。
0286デフォルトの名無しさん2008/04/24(木) 17:25:41
整数型 ねーよ = いいえ。
どうよこれ?
いいだろ?
0287デフォルトの名無しさん2008/04/24(木) 17:26:23
>制約があるのが正しい状態って結論が出て今があるわけ。


ねーよwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww


プログラミング言語はソフトウェアとともに進化して来てんだよ。
そしてソフトがクラスベース言語で表現できないものも扱い始めたんだよ。


おまいは市んだ法が良い。あどヴぁいすwwwwwwwwwwwwwwwwwwww
0288デフォルトの名無しさん2008/04/24(木) 17:31:46
あれか、人クラスを作ったとき
会社員クラスから学生クラスには出来ず、また学生クラスから会社員クラスにも出来ないから、クラスベースは静的で役に立たないってかw
0289デフォルトの名無しさん2008/04/24(木) 17:38:19
288=誤読乙!

ヴぁかは読解力が無いようでwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0290デフォルトの名無しさん2008/04/24(木) 17:42:13
>>288
is a関係とhas a関係とかいう奴だな。
そこで、property型を導入するんだよ。
日本語至上主義的には属性ってしたくなるけど、そこは肩書だな。
なんでかっていうと、肩書ってしとけば委譲するとき意味的に
ぴったしっぽいじゃん。
で、よくよく考えると他重軽傷でいいのか?とか思っちゃうんだけど、
そうするとまた最初に戻っちゃうので、肩書を導入すること推奨。
0291デフォルトの名無しさん2008/04/24(木) 17:47:48
芝君の話は難しすぎて判りませんね(棒読
0292デフォルトの名無しさん2008/04/24(木) 17:49:34
会社員や学生に「is-aヒト」問い合わせしたらtrueだろうが、
ヒト・サルに文化する前の類人猿に「is-aヒト」、「is-aサル」を問い合わせたら、true?false?
サルが派生してヒトになったわけじゃない。
類人猿が分化して夫々になったわけだし。
0293デフォルトの名無しさん2008/04/24(木) 17:51:36
C++0xに肩書が導入されたらどうするよ?
0294デフォルトの名無しさん2008/04/24(木) 17:52:57
>>292
いいえになるよ。
だっていいえだろ?
0295デフォルトの名無しさん2008/04/24(木) 17:53:41
誰だよふぁびょってるのは・・・
0296デフォルトの名無しさん2008/04/24(木) 17:55:35
>>292
その認識だと類人猿はヒト、サルの共通の祖先なので、
ヒトでもサルでも無い(false)。
ヒト、サルにis-a類人猿したら両方trueだろ。
0297デフォルトの名無しさん2008/04/24(木) 17:56:47
>>296
いいえになるよ。
折れるいじねんじゃないしw
0298デフォルトの名無しさん2008/04/24(木) 18:00:15
>>297
デジタルモンキー乙w
0299デフォルトの名無しさん2008/04/24(木) 18:02:12
略してでじもん乙。
0300デフォルトの名無しさん2008/04/24(木) 18:07:11
取り敢えず、芝君の仲間になりたくないから、俺はC++で頑張るわ
0301デフォルトの名無しさん2008/04/25(金) 00:14:14
芝君にとってのオブジェクト指向は、なんでも解決するスーパーテクニックの様です

傍迷惑でビッグなクラスとか、誰にも読めないプロトタイプの山が見えるな
0302デフォルトの名無しさん2008/04/25(金) 07:29:05
じゃぁ、クラスの肥大化を防ぐテクニックについて語ろうぜ。
クラスっていうのはえさを与えなくても勝手に大きくなっていくものだからな。
テンプレートも一つの解ではあるな。
0303デフォルトの名無しさん2008/04/25(金) 09:28:47
クラスを肥大化させないテクニックは
「馬鹿にクラス設計をさせない」
0304デフォルトの名無しさん2008/04/25(金) 09:43:35
>芝君

 ↑
これって何?
自演クンって意味?
0305デフォルトの名無しさん2008/04/25(金) 10:08:00
芝君の仕事は、2chのスレに芝を生やすことだぉ
0306デフォルトの名無しさん2008/04/26(土) 10:18:40
           _, ._ 
  んもー! ( ・ω・)    .  .
        ○={=}〇, ; .'´ `. ゙ ; `
        |:::::::::\,.'.;´," :´,´' . ゙ .` .
 .,,.,.,,,.,.,,,.,.,,,.,.,,,.,.,し,,.,.,`(.@)wwwwwwwwwwwww 
0307デフォルトの名無しさん2008/04/26(土) 11:43:10
>>302
テンプレートを使うとクラスの代わりに実行モジュールが肥大化します。
0308デフォルトの名無しさん2008/04/26(土) 11:53:54
>>302
テンプレートを使うとコンパイル速度も飛躍的に悪化します。
0309デフォルトの名無しさん2008/04/26(土) 13:32:46
>>302
テンプレート使っちゃうと、クラスに対するプロトタイプの利点が無くなるよぉw
0310デフォルトの名無しさん2008/04/27(日) 00:04:47
実行モジュールのサイズを縮小し、コンパイル速度も短縮して
ついでに生産性も縮小するわけですね、わかります。
0311デフォルトの名無しさん2008/04/27(日) 00:11:31
>>302
テンプレートを使うと >>310 の仲間になれるかもよ!
0312デフォルトの名無しさん2008/04/27(日) 01:20:43
>>307-309,>>311
std名前空間使用禁止ワロタw
0313デフォルトの名無しさん2008/04/27(日) 01:21:04
>>302
クラスが肥大化するのは、設計が悪い場合もあるけど、
提供する機能が多いっていう場合もあるんだよな。
後者の場合、どんなやり方をとったとしても、大きなクラスかたくさんのクラスを作るかせねばならん。
0314デフォルトの名無しさん2008/04/27(日) 01:52:27
クラスを使っても肥大化、テンプレートを使っても肥大化。言語仕様も益々肥大化。
むしろ C++ ユーザは肥大化を求めているんじゃないかな。実際どうかは別として、
肥大化すればするほど生産性が上がるという教義だから。
0315デフォルトの名無しさん2008/04/27(日) 01:55:43
バグの生産性ですね分かります
0316デフォルトの名無しさん2008/04/27(日) 04:35:53
別に肥大化したところで、使いたいと思わない機能は使わなきゃいんじゃね?
Bjarne氏もD&Eでそう言ってたし。「使わない機能はコストを発生させない」っていう
原則もあることだし。肥大化することで初心者が不幸になることもないと思う。
ただまぁ、何から学べばいいかわかりにくくなるor勉強する(べきだと思われる)ことが
多すぎてしょんぼりくる可能性はあるが。
0317デフォルトの名無しさん2008/04/27(日) 10:42:23
肥大化はC++がというより
C#がという方がより適切と思うが
LINQとか
0318デフォルトの名無しさん2008/04/27(日) 12:54:40
使ってる人間の殆どが肥大化嗜好だから、使いたいと思わない機能は
使わないという当たり前の選択を貫徹するのは不可能に近い。
0319デフォルトの名無しさん2008/04/27(日) 13:34:57
>>318
まあな
使わないと選択する為には
少なくともその機能を知っておかなければ
ならない訳で、もうその時点でラーニングコストは
発生している。初めから無理なことを言っている。
0320デフォルトの名無しさん2008/04/27(日) 13:50:34
プロの道具なので仕方ない。
プロでない人は自分が使いやすい言語を選ぶと良い。

言語の機能の習得ごときでいっぱいいっぱいなら、
組み込み系、DB、マルチメディア処理、ドライバ開発とかの
言語以外ので学習で鼻血出るだろうな。
0321デフォルトの名無しさん2008/04/27(日) 14:25:09
プロキター!

プロならもっと道具を選べよ…
その4つの中で C++ が他の言語より優れているのって
マルチメディア処理だけだな。
0322デフォルトの名無しさん2008/04/27(日) 14:30:01
でもすべての言語をその4つの平均点で比べるとC++はかなり有能だろ
0323デフォルトの名無しさん2008/04/27(日) 14:40:11
>>321
その他の言語ってのそれぞれ教えてくれないか?
C言語以外でw
03243202008/04/27(日) 15:01:09
>>321
どう読んだのか知らないが、俺の趣旨は
 ・学習用の言語でないので、言語機能を理解力の低い人に合わせる必要は無い。
 ・言語の機能の習得と、専門知識の習得では、後者の方が難しい。
ということなんだが。

その4つは例を挙げたに過ぎないし、
それらにC++が適しているとも言っていない。

特にDBは俺が最近DB周りのチューニングとかしてたので、
たまたま脳裏に出てきただけだ。言語はC++じゃない。

道具を選べ、というのは同意する。
他のメンバーやプラットホームの都合があるので、
好きに選べるわけじゃないけどな。
0325デフォルトの名無しさん2008/04/27(日) 16:07:21
>>323
C++ 使いには C にコンプレックス持ってる人間が多いな。
道具は使いようだぜ。

組み込み(つっても色々あるが…) -> C
DB(まあ Oracle だと思いねえ) -> Java
マルチメディア(画像処理とか) -> C++
ドライバ(Win は知らんけど…) -> C

>>324
分野別の知識は言語の習得とは直行した課題だと思うよ。
専門知識の習得は、言語が難しかろうが簡単であろうが必要となる事なんだから、
言語の習得は簡単な方が良いとも言えるんじゃないかな。
0326デフォルトの名無しさん2008/04/27(日) 16:14:10
ところで、上の方でOO云々語ってる奴らはJavaやらC++の
対象.メッセージ(値,値);
構文しか知らんのだろうな、例えば
[対象 メッセージ:値 メッセージ:値];
やら
Send(対象,メッセージ,値,値);
とか、
メッセージ(対象,値,値);
(メッセージ 対象 値 値)
なんかを知ってればもっと増しな議論が
出来るだろうに。
せめてクラスや継承は必要悪でありOOの本質でないと気付いて貰いたいものだ。
0327デフォルトの名無しさん2008/04/27(日) 16:23:54
知っているに越したことはないが、それはまたC++とは別の世界。
C++のOOでメッセージを持ち出してくるのもどうかと思う。
http://d.hatena.ne.jp/sumim/20040525/p1
0328デフォルトの名無しさん2008/04/27(日) 16:43:41
>>327
確かにそうだがC++で

template<class T>void F(T &対象)
{
 対象.メッセージ();
}

//対象1と対象2は同じメッセージを持つ
//意外何ら関連性は無い
型1 対象1;
型2 対象2;

//Fは対象が何であれ構造を気にせず
//処理を行える。
F(対象1);
F(対象2);

という文を見ると、静的ではあるが
メッセージを意識せざる得ない。
アラン・ケイがRubyを誉める理由も
これを動的且つ素直に実装できる事が
一因しているように思う。
0329デフォルトの名無しさん2008/04/27(日) 16:54:23
>>325
> C, Java, C++, C
完全に予想通りの回答ありがとうw
0330デフォルトの名無しさん2008/04/27(日) 16:57:27
>C++のOOでメッセージを持ち出してくるのもどうかと思う。
もともとC++はオブジェクト指向できるようにはできていないんだよ、だからSTLなんだ。
しかしオブジェクト指向を考えるならメッセージを考えないというのは論外。

自分は 326 じゃないが
>せめてクラスや継承は必要悪でありOOの本質でないと気付いて貰いたいものだ。
これはオブジェクト指向においては核心部分だぞ。
0331デフォルトの名無しさん2008/04/27(日) 17:16:33
C++使ってる奴がCにコンプレックスってのは考えられないな

C95とは基本的に互換だから、気にするのはC++の構文が使えない程度
C99との差異は理解の上では大したことないし
精々STLが使えなくて面倒ってとこだろ
■ このスレッドは過去ログ倉庫に格納されています