消えてなくなれよ >オブジェクト指向 part.3
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/06/01(月) 12:30:25http://pc12.2ch.net/test/read.cgi/tech/1237672679
0002デフォルトの名無しさん
2009/06/01(月) 13:14:10言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
0003デフォルトの名無しさん
2009/06/01(月) 13:16:320004デフォルトの名無しさん
2009/06/01(月) 15:36:17オブジェクトファイルなってしまえば関係ないわけだが
0005デフォルトの名無しさん
2009/06/01(月) 16:21:52>>4
>>4
0006デフォルトの名無しさん
2009/06/01(月) 18:53:380007デフォルトの名無しさん
2009/06/01(月) 19:50:55京大だけに、狂ったように研究熱心なのさ
0008デフォルトの名無しさん
2009/06/01(月) 20:57:390009デフォルトの名無しさん
2009/06/01(月) 20:58:380010デフォルトの名無しさん
2009/06/01(月) 21:39:04全てがオブジェクトな言語だと
1+1でもスレッドが起動されることになるが…
なんという無駄
0011デフォルトの名無しさん
2009/06/01(月) 21:56:11ナンデ?
0012デフォルトの名無しさん
2009/06/01(月) 22:20:55>>8 の肩を持ちたいとは思わんが
非同期 = スレッド
ってのは、ちゃうと思う
つ 遅延評価
0013デフォルトの名無しさん
2009/06/01(月) 22:26:42遅延評価と非同期は全く関係ないが
0014デフォルトの名無しさん
2009/06/01(月) 22:28:190015デフォルトの名無しさん
2009/06/01(月) 22:32:030016デフォルトの名無しさん
2009/06/01(月) 22:33:24オブジェクトでthisコンテキストにアクセスできるようになったのと引替えに
再利用のために、関数なら引数のことだけ考えれば良かったが
オブジェクト単位で再利用を考えない意図いけないようになった。
そのため、継承・仮想メソッド・インタフェース・デザインパターン・ジェネリック
などのテクニックでその欠点を補っているのではないだろうか。
0017デフォルトの名無しさん
2009/06/01(月) 22:36:15そんな元レスと話の絡まないレスでは意味がわからん
0018デフォルトの名無しさん
2009/06/01(月) 22:36:34比べるなら、
片やオブジェクト郡、
片や関数郡とそれに渡されるであろうパラメータ郡。
そう考えると、再利用がどうかはさておき、
オブジェクトを中心にすえて考えていくほうが、
少なくとも、「散らかってない」と思う。個人的に。
0019デフォルトの名無しさん
2009/06/01(月) 22:37:160020デフォルトの名無しさん
2009/06/01(月) 22:40:58すべてオブジェクトにするからおかしくなる。
そんなのは理論屋がやってろ。
0021デフォルトの名無しさん
2009/06/01(月) 22:47:27メッセージに使える単語を制限したらどうか。
オブジェクト指向じゃなくなるか。
0022デフォルトの名無しさん
2009/06/01(月) 22:48:33さっさと埋めれば良かった
0023デフォルトの名無しさん
2009/06/01(月) 23:12:20クライアントとしては使いやすいとは思うけどね。
まあ速度とか気にしだせば結局再利用なんて無理でしょ。
0024デフォルトの名無しさん
2009/06/01(月) 23:16:46魔法のように何でも再利用できる!みたいなのは違うのは確かだが
0025デフォルトの名無しさん
2009/06/02(火) 02:05:24オブジェクト指向な関数型言語のocaml使えw
0026デフォルトの名無しさん
2009/06/02(火) 03:53:360027デフォルトの名無しさん
2009/06/02(火) 08:42:50再利用の単位が関数よりも大きいだけと言うことか
オブジェクト指向のメリットって理解のしやすさと言うことだけ?
0028デフォルトの名無しさん
2009/06/02(火) 08:43:31ホットスポットの解析もせずにライブラリに文句をいう厨房ですか?
0029デフォルトの名無しさん
2009/06/02(火) 09:32:05理解のしやすさ、というかなんというか。
メリットは色々あるんじゃないかな。
オブジェクトという単位でモジュール化できて、
内部構造としての、変数の表現、メソッドの実装を隠す。
んで、そのオブジェクト郡のインタフェースには関連が見出せたりして、
実行時にはポリモーフィズムで一括して扱える。
あくまで、オブジェクト郡の相互作用で作っていく。
OOPでの再利用云々は、設計の正しさの拠ってると思われる。
再利用しやすい単位で、使用される文脈に想定をおいたりせず、
他のオブジェクトを無闇に知っていたりせず、うまいこと作る。
逆に、そこんとこをきちんとしてないとうまく再利用できないだろうし、
それもってOOPの力不足としてしまうなら、なんか違う気がする。
明白な特性をひとつだけ与えられたクラスは長持ちすると思う。
特性があいまいだったり、コブが着いてたりすると、弱いと思う。
0030デフォルトの名無しさん
2009/06/02(火) 09:43:490031デフォルトの名無しさん
2009/06/02(火) 12:48:310032デフォルトの名無しさん
2009/06/02(火) 13:10:49運用費を100万円削るために開発費1000万円上乗せすればいい。
0033デフォルトの名無しさん
2009/06/02(火) 13:36:31そういや、Javaで基本型がオブジェクトじゃないのは、現在の視点で見ても、
良い判断だったんだろうか?
0034デフォルトの名無しさん
2009/06/02(火) 14:12:39俺なら1週間で作れるモノを。
0035デフォルトの名無しさん
2009/06/02(火) 14:14:380036デフォルトの名無しさん
2009/06/02(火) 14:18:410037デフォルトの名無しさん
2009/06/02(火) 15:13:59誰にでも出来るのに誰もやる気を出さない
0038デフォルトの名無しさん
2009/06/02(火) 15:34:41つまらない受験勉強を継続的にこなしてきたんだから。
途中で飽きて投げ出すようなやつがFランに行くんだよな。
継続性ある性格が成功を生み出すんだよ。
0039デフォルトの名無しさん
2009/06/02(火) 15:37:18別にイレギュラーを探してるわけじゃないので^^;
0040デフォルトの名無しさん
2009/06/02(火) 16:10:37コロンブスの卵は、そんな話じゃないだろwww
0041デフォルトの名無しさん
2009/06/02(火) 19:03:090042デフォルトの名無しさん
2009/06/02(火) 19:27:36OOだと対話環境って無いし、あってもほとんど意味ないよな
関数型なら一行でかける関数作りまくればいいだけだし、無名関数も書きやすいから
エディタすら無しでいろいろできるわ。
間違いなくこれらは学習のコストと効率とモチベーションに大きく影響するね。
0043デフォルトの名無しさん
2009/06/02(火) 19:29:380044デフォルトの名無しさん
2009/06/02(火) 19:30:200045デフォルトの名無しさん
2009/06/02(火) 19:36:040046デフォルトの名無しさん
2009/06/02(火) 19:49:08そうだな
>>45
スクリプトとOOPは直交する概念
0047デフォルトの名無しさん
2009/06/02(火) 19:59:59その場でがしがし付け足していけるのは楽そうだなと思うけど、
そういうコーディングしてても、保守は大丈夫なの?
関数型言語使ったこと無いから感覚がわからんけど。
0048デフォルトの名無しさん
2009/06/02(火) 20:10:23python, ruby (irb), CINTなど色々あるのを知らないのか?
関数型言語でもToplevelをそのまま使うなんて面倒なことはしないで
Emacsのmajor-modeを使ったりするのが普通だと思うが。
0049デフォルトの名無しさん
2009/06/02(火) 20:41:31rubyのirbとか普通に使えるよ。
OOP言語だと役に立たないって意味分からんね。
まさかOOPの概念を対話型環境で勉強したいって言ってんのかな
0050デフォルトの名無しさん
2009/06/02(火) 20:45:05対話環境を関数型パラダイムで理論武装したいんだと思う
0051デフォルトの名無しさん
2009/06/02(火) 21:24:14どうかと思う。特にC++などの手続き型言語においては、OOを使わない場合と比べて
メンテナンス性が向上するのは明らかだし。
0052デフォルトの名無しさん
2009/06/02(火) 22:08:45言語と実行環境って、分けて議論するべきものじゃないのかな?
0053デフォルトの名無しさん
2009/06/02(火) 23:22:040055デフォルトの名無しさん
2009/06/02(火) 23:29:46なんで区別したいの?
話聞いてやるから詳しく話してみろ
0056デフォルトの名無しさん
2009/06/03(水) 00:08:37OOとOOAとOOPと手続き型を全部厳密に定義してみろよ
0057デフォルトの名無しさん
2009/06/03(水) 00:27:530058デフォルトの名無しさん
2009/06/03(水) 00:31:29俺等は違いなんてどうだっていいもんw
全部同じぃ〜で問題ないよw
0059デフォルトの名無しさん
2009/06/03(水) 00:33:50一緒に語られたくなかったら定義しろよってことだ。その程度も分からんか?
0060a36 ◆K0BqlCB3.k
2009/06/03(水) 00:36:080061デフォルトの名無しさん
2009/06/03(水) 00:37:39いや、だから俺等はOO,OOA,OOPに違いはないよ組でいいんだろ?
0063デフォルトの名無しさん
2009/06/03(水) 00:51:410064デフォルトの名無しさん
2009/06/03(水) 02:17:570065デフォルトの名無しさん
2009/06/03(水) 02:26:470066デフォルトの名無しさん
2009/06/03(水) 10:58:26ドッカン
m ドッカン
=====) )) ☆
∧_∧ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( )| |_____ ∧_∧ < おらっ!出てこい>>53
「 ⌒ ̄ | | || (´Д` ) \___________
| /  ̄ | |/ 「 \
| | | | || || /\\
| | | | | へ//| | | |
| | | ロ|ロ |/,へ \| | | |
| ∧ | | | |/ \ / ( )
| | | |〈 | | | |
/ / / / | / | 〈| | |
/ / / / | | || | |
/ / / / =-----=-------- | |
0067デフォルトの名無しさん
2009/06/03(水) 21:03:39俺の話についてこれる奴がいない
0068デフォルトの名無しさん
2009/06/03(水) 23:21:240069デフォルトの名無しさん
2009/06/03(水) 23:32:480070デフォルトの名無しさん
2009/06/04(木) 01:21:010071デフォルトの名無しさん
2009/06/04(木) 01:23:43は?
0072デフォルトの名無しさん
2009/06/04(木) 01:35:270073デフォルトの名無しさん
2009/06/04(木) 02:31:27ドッカン
m ドッカン
=====) )) ☆
∧_∧ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( )| |_____ ∧_∧ < おらっ!出てこい>>67
「 ⌒ ̄ | | || (´Д` ) \___________
| /  ̄ | |/ 「 \
| | | | || || /\\
| | | | | へ//| | | |
| | | ロ|ロ |/,へ \| | | |
| ∧ | | | |/ \ / ( )
| | | |〈 | | | |
/ / / / | / | 〈| | |
/ / / / | | || | |
/ / / / =-----=-------- | |
0074デフォルトの名無しさん
2009/06/04(木) 03:08:510075デフォルトの名無しさん
2009/06/04(木) 06:55:090076デフォルトの名無しさん
2009/06/04(木) 07:04:200077デフォルトの名無しさん
2009/06/04(木) 07:28:520078デフォルトの名無しさん
2009/06/04(木) 07:37:390079デフォルトの名無しさん
2009/06/04(木) 10:25:310080デフォルトの名無しさん
2009/06/04(木) 18:49:010081デフォルトの名無しさん
2009/06/04(木) 20:13:580082デフォルトの名無しさん
2009/06/04(木) 20:15:15|┃三 / ̄\
|┃ | |
|┃ \_/
ガラッ. |┃ |
|┃ ノ// ./ ̄ ̄ ̄ \
|┃三 / ::\:::/:::: \
|┃ / <●>::::::<●> \
|┃ | (__人__) |
|┃三 \ ` ⌒´ /
|┃三 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ \
0083デフォルトの名無しさん
2009/06/04(木) 23:46:030084デフォルトの名無しさん
2009/06/05(金) 00:06:110085デフォルトの名無しさん
2009/06/05(金) 00:41:56文を並べると、逐次で実行してね、と
言わない限り全部並列に実行されてしまう
言語が主流になれば、並列度も上がる
だろうなあ。
0086デフォルトの名無しさん
2009/06/05(金) 01:41:090087デフォルトの名無しさん
2009/06/05(金) 01:51:31どんなパラダイムがおすすめですか?
0088デフォルトの名無しさん
2009/06/05(金) 01:53:58好きなプログラミング言語はなんですか。
よく利用するプログラミング言語はなんですか。
趣味で使うプログラミング言語はなんですか。
やっぱりシンプルなC言語ですか。
0089デフォルトの名無しさん
2009/06/05(金) 02:01:26お前らも努力すればハッカーになれるから頑張れ。
0090a36 ◆K0BqlCB3.k
2009/06/05(金) 02:21:42ノイマン型コンピュータの仕組み自体が手続き的なのだから。
0091デフォルトの名無しさん
2009/06/05(金) 05:44:210092デフォルトの名無しさん
2009/06/05(金) 08:31:50こいつはとんだインチキハッカーだな。
どこかでハッカーは、 Cとlispを使うとでも洗脳されたのだろうか。
自分の利用する言語の正式名称も言えないなんてハッカーの資格無しだ。
lispってなんだよ。あのMITのトイレで生まれたというevalとatomとlistのことか。
どれだけ方言があると思っているんだよ。
0093デフォルトの名無しさん
2009/06/05(金) 10:33:43オブジェクト指向とかは作法の違いにすぎず、
本質的な違いはない。
0094デフォルトの名無しさん
2009/06/05(金) 10:58:05〜とかは。焦点があいまい。
0095デフォルトの名無しさん
2009/06/05(金) 13:40:500096デフォルトの名無しさん
2009/06/05(金) 13:54:25それぞれが勝ち負けを判断するような密な結合より、
グーチョキパーの関係性を記述するために特化したMediatorオブジェクトを用意し、
グーチョキパー事態は互いを知らなくていい、
ポーとかペーとかが発生した場合に修正を個々にしなくていい、
という緩い結合にしておくことに、そこにメリットを見出すため。
0097デフォルトの名無しさん
2009/06/05(金) 13:54:520098デフォルトの名無しさん
2009/06/05(金) 14:04:30単に独立した判定役がいればいいわけで,
object とか class じゃなくてもええんちゃう
CLOS 的には審判 object(審判 class)は作らんな, たぶん
0099デフォルトの名無しさん
2009/06/05(金) 14:19:00有限/無限は量概念なのに、「質的に有限」ってw
0100デフォルトの名無しさん
2009/06/05(金) 14:31:33審判作りたくないのなら、
プレイヤー同士で判定して、合意の下に
勝負を付ける仕組みでいいんじゃないか?
0101デフォルトの名無しさん
2009/06/05(金) 14:35:58じゃんけん大会の内容に応じて取り替えられればいいだけなんで、
別にobjectでもええんちゃう
0102デフォルトの名無しさん
2009/06/05(金) 14:47:27と言うのと同じな気がしてきました。
0103デフォルトの名無しさん
2009/06/05(金) 19:01:47変化とか量産とかが無いとオブジェクト指向で書くメリットはあんまりないよ
グーチョキパーの勝ち負けのルールが変わるとか
非同期で同時に100個のジャンケン判定しないといけないとか
そういうのが無いと
0104デフォルトの名無しさん
2009/06/05(金) 19:33:20設計だけオブジェクト指向でやって実装はオブジェクト指向にしないって現場もあるが。ゲーム開発とか。
0105デフォルトの名無しさん
2009/06/05(金) 20:19:04設計と実装を分けて論じてはいけないスレです。
0106デフォルトの名無しさん
2009/06/05(金) 20:27:050107デフォルトの名無しさん
2009/06/05(金) 20:36:300108デフォルトの名無しさん
2009/06/05(金) 20:43:230109デフォルトの名無しさん
2009/06/05(金) 21:30:19同じソースコードにいっしょくたに書かれてるんで
ソースコードから特定の抽象レベルだけを抽出したものを論じるなり何なりすればいい
0110デフォルトの名無しさん
2009/06/05(金) 21:38:41それ以前に日本語してない
0111デフォルトの名無しさん
2009/06/05(金) 23:20:25常識的に考えたら、設計がオブジェクト指向なら実装もオブジェクト指向じゃないの?
オブジェクト指向言語(機能)を使わない、オブジェクト指向実装じゃないの?
0112デフォルトの名無しさん
2009/06/05(金) 23:31:40実際にオブジェクト指向の設計をどう非オブジェクト指向な実装に落とすのか
具体例を出してもらえる?
0114デフォルトの名無しさん
2009/06/05(金) 23:42:30それはレイヤーが違う。
設計->ある言語による実装と、ある言語での実装->バイナリを混同するな。
0115デフォルトの名無しさん
2009/06/06(土) 00:35:06でも、プログラムの世界はもっと情報同士が密結合で信頼性も高い。
そういう世界でオブジェクトみたいな殻を作ると、無駄な伝言と依存性の不透明さが増して、
弊害が大きいと思うんだよね。
特にすべてがオブジェクトとか言われると。
# それはおまえの設計が悪いとか言わないでね。
# 不都合な事は全部設計が悪くてOOのせいじゃないというセリフは聞き飽きた。
0116デフォルトの名無しさん
2009/06/06(土) 00:43:53すべてがオブジェクトというやり方も、それが常にベストな解では無いと思うが、
LLなどではそういうやり方もありだろう。
0117デフォルトの名無しさん
2009/06/06(土) 00:47:37いや、私が言いたいのは効率の話じゃなくて。
メッセージングやオブジェクトという仕組みでは、プログラムの秩序がより乱されてる
だけだと思う訳です。
0118デフォルトの名無しさん
2009/06/06(土) 00:56:28それぞれに適した書き方すればいいんじゃないの
汚い部分を一手に引き受けるクラスとかがあっても問題ないでしょ
デザインパターンのfacadeみたいな
0119デフォルトの名無しさん
2009/06/06(土) 01:02:11メッセージングはいいけど、たとえばJavaやSmalltalkでのオブジェクト間のメッセージングはただの関数呼び出しだよね?
たくさんのオブジェクトが存在する中で、実行中なのが常に一つっていうのはちょっと変じゃないのって話。
それって実世界の間隔とはかけ離れているよね。
0120デフォルトの名無しさん
2009/06/06(土) 01:03:30○感覚
0121デフォルトの名無しさん
2009/06/06(土) 01:09:48「なんでも自由にお触りください」というものを使ってきれいに仕上げるのには
強い心が必要になるけど、あらかじめ「可能な操作はこれだけです」と決めておけば
心の支えにはなるでしょ。
0122デフォルトの名無しさん
2009/06/06(土) 02:25:26前半はいまいち理解できない(普段そのように感じてはいない)けど、後半は納得。
> 特にすべてがオブジェクトとか言われると。
特にこういう部分がOO(の教祖、信者)のダメなところだと思う。
以前会社の後輩が設計、実装したプログラム(C++)では、
普通の数学的な意味の関数を作るだけですむような計算処理を、
あえてクラスとして実装していた。
このため、計算処理を行うためには、そのクラスのインスタンスを生成し、
そのインスタンスのメソッドを呼ばなくてはならなかった。
(そのメソッドを呼んだあとはインスタンスは用済みなのでインスタンスの破棄まで
しなければならない。)
0123デフォルトの名無しさん
2009/06/06(土) 03:28:02ユーティリティクラスにしたりすると思うんだが。
問題は後輩がOOPの信者だったことではなくて、単に経験が
足りなかったことなのではないかと。
0124デフォルトの名無しさん
2009/06/06(土) 03:48:11普通そういうのはnamespaceに閉じ込めた関数にするか、OO信者でどうしても
クラスにしたかったとしてもstaticメソッドにするはず。
C++をあまり知らないから何でもインスタンスメソッドにしたがるんだろう。
0125デフォルトの名無しさん
2009/06/06(土) 07:28:12一旦OODで機能とデータを洗い出してから、
機能毎にモジュールを切り直してCで実装、
ってのは結構ありがちなパターンだったりする。
0126デフォルトの名無しさん
2009/06/06(土) 09:02:38つまりはそういうことだ
Needless Complexityは避けろって普通は言われる
0127デフォルトの名無しさん
2009/06/06(土) 09:29:30文字列操作のように、関数にするよりもクラスにして操作するほうが自然な物だったりしてな
0128デフォルトの名無しさん
2009/06/06(土) 10:16:19オブジェクトというまとめ方しか知らない・出来ないのは不幸だ。
0129デフォルトの名無しさん
2009/06/06(土) 10:18:030130デフォルトの名無しさん
2009/06/06(土) 11:35:10それが、オブジェクト指向
0131デフォルトの名無しさん
2009/06/06(土) 12:23:500132デフォルトの名無しさん
2009/06/06(土) 12:41:53「関数呼び出しにたとえるのはダメ」と言われることがある。
関数呼び出しを使わないOOPの実装もありえると言いたいんだろう。
でも、一般論の前にまず特定の実装を知るべきだよな。
一般論だけを語りたがる風潮にも問題があると思う。
0133デフォルトの名無しさん
2009/06/06(土) 13:57:18ということを実行時におこなうのが普通の「関数呼び出し」だと主張するのなら、
OOPLでのメッセージ送信の多くの実装は関数呼び出しと言えるかもしれないけどね。
実際には普通の「関数呼び出し」では呼び出される関数はコンパイル時に確定しているから、
OOPLでのメッセージ送信の多くの実装は単なる関数呼び出し以外のこともやっているよね。
0134デフォルトの名無しさん
2009/06/06(土) 14:02:00>>119
0135デフォルトの名無しさん
2009/06/06(土) 14:05:04>>133は>>119への反論だと思うが?
0136デフォルトの名無しさん
2009/06/06(土) 14:09:410137デフォルトの名無しさん
2009/06/06(土) 14:13:58永遠に理解できないなんて、なんてえらそうな技術。
それがオブジェクト指向という宗教。サイエンスのかけらもない。
0138デフォルトの名無しさん
2009/06/06(土) 15:09:22処理系はバリバリ書いてきた方が、
それはともかくとしてなんで処理系を書いたことがないと>>119みたいな発想になると思うのか、
その論理のつながりが解らん。
0139デフォルトの名無しさん
2009/06/06(土) 15:15:13ありがとう
0140デフォルトの名無しさん
2009/06/06(土) 15:15:36前スレで出ていないような新規の主張をするならいいが、そうとは思えないぞ。
0141デフォルトの名無しさん
2009/06/06(土) 16:53:14実際には処理系を書いたことがないから、わからないんじゃないかなあw
0142デフォルトの名無しさん
2009/06/06(土) 17:11:59俺にはお前が口先だけの奴に見える
0143デフォルトの名無しさん
2009/06/06(土) 17:18:25では、インターフェース型の変数がメッセージレシーバになっている場合の
メッセージ送信をおこなうために必要な処理をCで書いてみなさい。
同様に、簡易版でいいからC風の言語のコンパイラも書いてみなさい。
この2つの実装がまるで別物だということがよく理解できるから。
0144デフォルトの名無しさん
2009/06/06(土) 17:19:03できるが、お前の態度が気に入らない
0145デフォルトの名無しさん
2009/06/06(土) 17:20:50今度は人格攻撃ですか。なるほど。
0146デフォルトの名無しさん
2009/06/06(土) 17:22:47それ以前に言ってることが意味不明だし。
0147デフォルトの名無しさん
2009/06/06(土) 17:25:25もったいぶらずに違いを教えてくれよ(*´∀`*)
さあさあ。
0148デフォルトの名無しさん
2009/06/06(土) 17:26:37本当にこいつは自分が言ってることが解って言っているのかと疑問に思えてくる
0149デフォルトの名無しさん
2009/06/06(土) 17:28:14こういう非現実的なことを押し付けようとする奴って何様なんだろうかね。
0150デフォルトの名無しさん
2009/06/06(土) 17:28:47本人も周りもそのほうが幸せになれる。
0151デフォルトの名無しさん
2009/06/06(土) 17:29:12それっぽいこと語りたいガキだろ
0152デフォルトの名無しさん
2009/06/06(土) 17:29:29そもそもオブジェクト指向はメッセージングじゃない。
ただの関数呼び出しだ。
0153デフォルトの名無しさん
2009/06/06(土) 17:29:470154デフォルトの名無しさん
2009/06/06(土) 17:30:48早く「俺はまだまだ未熟でした、ごめんなさい」と言えよw
潔く負けを認めないかぎり、お前のスキルは一歩も前に進めないんだぞ。
0155デフォルトの名無しさん
2009/06/06(土) 17:36:17自分の言葉で簡潔に表現できないw
あと、文章を引用してきて朗読するだけとかw
0156デフォルトの名無しさん
2009/06/06(土) 17:39:24> そもそもオブジェクト指向はメッセージングじゃない。
> ただの関数呼び出しだ。
それを言うのなら、
「そもそも現在のOO実装は関数呼び出しがベースになっているから、
メッセージングによる本来のオブジェクト指向じゃない」
だろう。
0157デフォルトの名無しさん
2009/06/06(土) 17:43:220158デフォルトの名無しさん
2009/06/06(土) 17:43:54だから、本来のオブジェクト指向は必要ないんだな。
>>127
関数が外部の変数に依存しないときは関数を作る。
関数の外側の変数を使いたいときはクラスを作る。
これで間違いない。
0159デフォルトの名無しさん
2009/06/06(土) 17:45:26メソッド探索+関数呼び出しという実装を、
ごちゃごちゃにするから混乱してるんじゃね?
0160デフォルトの名無しさん
2009/06/06(土) 17:46:27たぶんお前が一番レベル低い。
0161デフォルトの名無しさん
2009/06/06(土) 17:48:21そういうことだな
0162デフォルトの名無しさん
2009/06/06(土) 17:48:24> 関数が外部の変数に依存しないときは関数を作る。
> 関数の外側の変数を使いたいときはクラスを作る。
キミ、どこの土方よ?
0163デフォルトの名無しさん
2009/06/06(土) 17:50:17AからBに(関数呼び出しによる)メッセージを送ったばあい、Bのメソッドを実行する実体は
Aのスレッドだったりして、そういうのが気持ち悪いと思うことはある。
0164デフォルトの名無しさん
2009/06/06(土) 17:53:090165デフォルトの名無しさん
2009/06/06(土) 17:54:050166デフォルトの名無しさん
2009/06/06(土) 17:55:44レッテルを貼るだけでは何の意味もないだろ
0167デフォルトの名無しさん
2009/06/06(土) 17:55:590168デフォルトの名無しさん
2009/06/06(土) 17:59:02俺は、無い!(´;ω;`) 一番処理系に近づいたのはRHGを読書した時w
0169デフォルトの名無しさん
2009/06/06(土) 18:09:27実装と無関係な抽象モデルを作っても無駄じゃないの
関数呼び出し前提でモデル作ればいいじゃん
0170デフォルトの名無しさん
2009/06/06(土) 18:16:50コンパイラ書けとか言うなら、せめてお前さんがASTに落とすまでのフロントエンドと
中間形式に変換した以降のアセンブリコードを吐くまでのバックエンドを自分で
書いて用意したらどうだ?これらの部分はお前さんの主張を「理解させる」上で
本質的ではないからな。
人にやれと言うくらいだから、この程度は簡単に書けるだろ?
0171デフォルトの名無しさん
2009/06/06(土) 18:27:12実装ありきでモデルを作るんじゃなくて
まずモデルがあってそれを実現するために実装があるんだぞ
0172デフォルトの名無しさん
2009/06/06(土) 18:42:40デスマを防ぐためにモデルを作るっていう発想はないんだな
絶望した
0173デフォルトの名無しさん
2009/06/06(土) 18:42:55頭が硬くてプログラムを作れなくて使うのをあきらめますた。
0174デフォルトの名無しさん
2009/06/06(土) 18:43:080175デフォルトの名無しさん
2009/06/06(土) 18:53:40そうじゃなくてモデルを作る時は
実装時に変な足かせになったりしないように抽象的な書き方をするのが基本だろ
論点ずらしもいいとところだぞ
0176デフォルトの名無しさん
2009/06/06(土) 18:59:59関数呼び出しを前提にすることが、変な足かせになるの?
0177デフォルトの名無しさん
2009/06/06(土) 19:37:18メッセージパッシングの理想型だったりするのか?
オブジェクトがそれぞれ別のスレッド(もどき)で動いてて、それぞれの
メールボックスに入ってるメッセージを順次読み出して実行・返信みたいな。
0178デフォルトの名無しさん
2009/06/06(土) 21:23:35結局 OO なんてのは「明確な定義もないただの幻想」
ってのが、前スレの結論じゃなかったのか?
0179デフォルトの名無しさん
2009/06/06(土) 21:30:10前スレで一番最後に目立っていた香ばしい強弁のことだよね。
0180デフォルトの名無しさん
2009/06/06(土) 21:31:130181デフォルトの名無しさん
2009/06/06(土) 21:43:080182デフォルトの名無しさん
2009/06/06(土) 21:45:00クラスが役に立たないわけじゃないが、
クラスに似た方言がたくさんあって統一できてない感じがする。
0183デフォルトの名無しさん
2009/06/06(土) 21:53:49お前らは市販の参考書でお勉強した程度のレベルだ
0184デフォルトの名無しさん
2009/06/06(土) 21:55:37それは暴言だろ?
Fランだって大学は大学だろうに…
0185デフォルトの名無しさん
2009/06/06(土) 22:16:28まともな議論が出来る土台がソフトウェア技術を大幅に進歩させている中、
OOに関する議論はメッセージだのオブジェクトだのカプセル化だの、相変わらず不明確で不毛な論争が続くのみ。
これはOOが属人的なノウハウの域を脱していない証拠。
さて、ではOOをまともな議論の土台に載せるにはどうすればいいのでしょう?
やっぱりσ計算?
0186デフォルトの名無しさん
2009/06/06(土) 22:17:290187デフォルトの名無しさん
2009/06/06(土) 22:18:030188デフォルトの名無しさん
2009/06/06(土) 22:34:31操作的意味論があるなら、そこからクラス設計の優劣が定量的に計れたりしないだろうか?
総合的なものじゃなくても、特定の側面(結合度とか)だけでもいいので。
そういう論文が読みたい。
0189デフォルトの名無しさん
2009/06/06(土) 22:56:090190デフォルトの名無しさん
2009/06/06(土) 23:11:13ありがとう。こんなに親切な御仁がいるとは思わなかった。
実はσ計算についても殆ど何も知らないので、OOの特徴(例えばMLのモジュールとの違い)を
σ計算の言葉で言い直すことができる事を期待して勉強してみます。
五十嵐先生まんせー。
0191デフォルトの名無しさん
2009/06/06(土) 23:18:41Amazon.com: A Theory of Objects (Monographs in Computer Science): Martin Abadi, Luca Cardelli: Books
http://www.amazon.com/dp/0387947752/
簡単に概要を知るだけならLuca CardelliのサイトのPaperの
Objectカテゴリにある論文を見ればいいんだけど
0192デフォルトの名無しさん
2009/06/06(土) 23:26:44> さて、ではOOをまともな議論の土台に載せるにはどうすればいいのでしょう?
> やっぱりσ計算?
それ以前に OO の明確な定義付が必要だってば
何見てもオレオレ定義じゃん
0193デフォルトの名無しさん
2009/06/06(土) 23:32:13ベースはFω<:かぁ。ふむふむ。
0194デフォルトの名無しさん
2009/06/06(土) 23:38:57まともに議論できる土台であるσ計算の言葉でOO(に似たなにか)を言い替えてみる。
↓
これをOOの定義にしよう!(というコンセンサスが広がる)
↓
うまー
0195デフォルトの名無しさん
2009/06/06(土) 23:51:27職業プログラマなので、学生乙は禁止。
0196デフォルトの名無しさん
2009/06/07(日) 01:50:45http://www.ddj.com/architect/217701907
この人は学者じゃないが、まあ言ってることは大体正しいな。
0197デフォルトの名無しさん
2009/06/07(日) 02:11:53日本でも雑誌出してたよな。
0198デフォルトの名無しさん
2009/06/07(日) 05:35:370199デフォルトの名無しさん
2009/06/07(日) 08:07:29いきなりCを関数型言語だとか言う奴がいたり、それに食ってかかる奴等がいたり
このスレに似てるな。
http://tech.slashdot.org/story/09/06/06/0210229/How-Software-Engineering-Differs-From-Computer-Science
0200デフォルトの名無しさん
2009/06/07(日) 08:11:23VBScript(否.NET)なめんな
0201デフォルトの名無しさん
2009/06/07(日) 11:53:58スパゲティ指向ってのは言いえて妙かもしれない
0202デフォルトの名無しさん
2009/06/07(日) 12:33:100203デフォルトの名無しさん
2009/06/07(日) 12:54:040204デフォルトの名無しさん
2009/06/07(日) 12:58:05分析と実装がどうの、現実世界=オブジェクト、メッセージがうんたら、
これをばっさり捨てたらよかったのにね。
0205デフォルトの名無しさん
2009/06/07(日) 13:00:33ユーザ定義の抽象型上の動的多態と拡張されたホーア論理を使ったよる制約プログラミング
0206デフォルトの名無しさん
2009/06/07(日) 13:16:43何故か、そのソーメンで昼飯を作っちゃうみたいなwwww
0207デフォルトの名無しさん
2009/06/07(日) 14:53:38> 分析と実装がどうの
この人たち OO を出せば客が尊敬してくれると思ってる連中だと思うよ
一昨年かな、急遽、長年付き合いのある映像関連のシステム作ってる
会社の手伝いをする羽目になった。
内容としては「既にあるシステムの出力フォーマットをMP4でラップしたい」だった
最初に頼んだところは、「いまから OO 分析してどーたらこーたら」と言うばかりで
実質的には何もしなかったそうだW
0208デフォルトの名無しさん
2009/06/07(日) 15:47:00instance.method()とmethod(instance)の違いくらいしかないんじゃないの?
0209デフォルトの名無しさん
2009/06/07(日) 15:53:550210デフォルトの名無しさん
2009/06/07(日) 15:58:20そういう不用心な事を言うと、マルチプルディスパッチこそがOOの肝だろうが、
って言われちゃうぞ。
0211デフォルトの名無しさん
2009/06/07(日) 16:41:26・継承
・ポリモーフィズム
0212デフォルトの名無しさん
2009/06/07(日) 17:20:380213デフォルトの名無しさん
2009/06/07(日) 17:33:44カプセル化とか言うアホとは?
0214カプセル化
2009/06/07(日) 17:34:490215デフォルトの名無しさん
2009/06/07(日) 17:40:19ドッカン
m ドッカン
=====) )) ☆
∧_∧ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( )| |_____ ∧_∧ < おらっ!出てこい>>212
「 ⌒ ̄ | | || (´Д` ) \___________
| /  ̄ | |/ 「 \
| | | | || || /\\
| | | | | へ//| | | |
| | | ロ|ロ |/,へ \| | | |
| ∧ | | | |/ \ / ( )
| | | |〈 | | | |
/ / / / | / | 〈| | |
/ / / / | | || | |
/ / / / =-----=-------- | |
0216デフォルトの名無しさん
2009/06/07(日) 17:47:52クラス定義でアクセス属性決定する意味あるのか?
0217デフォルトの名無しさん
2009/06/07(日) 18:13:30ご冗談をwww
0218デフォルトの名無しさん
2009/06/07(日) 18:15:290219デフォルトの名無しさん
2009/06/07(日) 18:18:42|┃三 / ̄\
|┃ | |
|┃ \_/
ガラッ. |┃ |
|┃ ノ// ./ ̄ ̄ ̄ \
|┃三 / ::\:::/:::: \
|┃ / <●>::::::<●> \
|┃ | (__人__) |
|┃三 \ ` ⌒´ /
|┃三 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ \
0220デフォルトの名無しさん
2009/06/07(日) 19:07:16議論してる奴らもUMLとC/C++とJavaぐらいしか知らない奴ばっかりっぽいから、
知識不足で底が浅い議論になってるように見える。
0221デフォルトの名無しさん
2009/06/07(日) 19:08:120222デフォルトの名無しさん
2009/06/07(日) 19:59:430223デフォルトの名無しさん
2009/06/07(日) 20:05:52他でやれば結構面白い議論に発展するかもしれんが。
0224デフォルトの名無しさん
2009/06/07(日) 20:25:530225デフォルトの名無しさん
2009/06/07(日) 21:57:07最高だ この力・・・
0226デフォルトの名無しさん
2009/06/07(日) 22:06:550227デフォルトの名無しさん
2009/06/07(日) 22:19:270228デフォルトの名無しさん
2009/06/07(日) 22:39:06・継承はinterfaceのみ可
・ポリモーフィズムは↑に反しない限り自由
0229デフォルトの名無しさん
2009/06/07(日) 23:00:04それはww構造的www部分www型ww
0230デフォルトの名無しさん
2009/06/07(日) 23:14:46OOPが原因でアウトソーシングなんて発生したんだよ?
0231デフォルトの名無しさん
2009/06/07(日) 23:33:59なんでもかんでもオブジェクト指向のせいにするな アホ
OOを使う人間が無能だっただけでOOが悪いわけじゃないということにいい加減きづけよな
0232デフォルトの名無しさん
2009/06/07(日) 23:46:22実際経営者というか管理の上流は
OOすることにより、製造業の部品が簡単に作れると勘違い
するようになった。もう複雑なOSなんて知らなくてもいいし
OOするだけで製造コストが劇的に下がると妄想を抱くようになった。
もし構造化のみだったらそんなこと無かったよ
コンサルなんて意味のない職業が台頭することもなかったし
管理のみの上流工程とか意味のない職種も誕生しなかった
全てがC++やJavaなどに代表されるOOがもたらした弊害でしょ
ジョエルもJavaスクール(笑)の影響でITがおかしくなったと言ってるぞ
金融破たんだって、JavaなんかのOOで簡単かつ乱雑にマネーゲームを
しかけることができるのが原因の1つだし
OOが無ければこれだけ異常な下請けや不況は起きなかった
0233デフォルトの名無しさん
2009/06/07(日) 23:52:41日本の業界だと一緒くたにされがちだけど
0234デフォルトの名無しさん
2009/06/07(日) 23:57:32最後の方はさすがに飛躍し過ぎ
0235デフォルトの名無しさん
2009/06/07(日) 23:58:28なぜかというと、彼らは
0236デフォルトの名無しさん
2009/06/08(月) 00:04:23>OOを使う人間が無能だっただけでOOが悪いわけじゃない
もう聞き飽きたよ、そのセリフは...。
はいはい、私は無能です。
0237デフォルトの名無しさん
2009/06/08(月) 00:09:18Javaなんかはバージョン上がる度にがどんどん複雑になるが生産性が
Java1.3や1.4の頃とかわらない
Rubyなんて10年前からあるけど脚光浴びてるだけで
なんら普通の生産能力しかない。むしろ無い部品が多いから
キャッキャとエテコウのようにオナプロ実装しているに過ぎない
そしてC++はいまだに0xの仕様を最終局面まで詰めれないし
このまま永遠に仕様策定ごっこして終わり
つまりだ、OOはその仕組みを作ることからして莫大で無駄な時間を浪費
する悪魔でしかないのだよ。技術の技術として仕上げていくことに対して
OOは無駄なことが多い単なる技術屋が金を長期間搾取できるための悪材料
でしかないんだよ
0238デフォルトの名無しさん
2009/06/08(月) 00:11:44普通筏と思われ。
0239デフォルトの名無しさん
2009/06/08(月) 00:17:530240デフォルトの名無しさん
2009/06/08(月) 00:24:160241デフォルトの名無しさん
2009/06/08(月) 07:44:14> もし構造化のみだったらそんなこと無かったよ
> コンサルなんて意味のない職業が台頭することもなかったし
コンサルは構造化以前から台頭していましたが何か?
> 管理のみの上流工程とか意味のない職種も誕生しなかった
ウォーターフォールは構造化以前から存在していましたが何か?
> OOが無ければこれだけ異常な下請けや不況は起きなかった
メインフレーム時代はもっとひどかったぞ。
0242デフォルトの名無しさん
2009/06/08(月) 08:01:50理解していない素人が分かった気になってコンサルタントとか名乗り出して
美辞麗句を並べた。で、経営者もそれに騙されて無駄金使った挙句、結局
ろくな成果が出なくてOO自体が忌み嫌われる存在になってしまったのが
一番の悲劇だろうな。
OOのテクニック的には基本的に構造化の延長だし、そこまで筋は悪くないのに。
0243デフォルトの名無しさん
2009/06/08(月) 09:03:580244デフォルトの名無しさん
2009/06/08(月) 09:18:450245デフォルトの名無しさん
2009/06/08(月) 09:22:21滅茶苦茶な翻訳、訳語の混乱があったこと。
更にオレオレオブジェクト指向が大量に出現したこと。
混乱がありすぎた。
0246デフォルトの名無しさん
2009/06/08(月) 09:28:080247デフォルトの名無しさん
2009/06/08(月) 09:42:24便利な機能を使いすぎると、かえって複雑になる。
バランスが非常に難しい。
C++なんて、マルチパラダイムとか言ってるが正気じゃない。
あれもこれも詰め込んだら、普通の人には適材適所で使うのが難しい。
0248デフォルトの名無しさん
2009/06/08(月) 10:14:00× 普通の人には
〇 土方の人には
0249デフォルトの名無しさん
2009/06/08(月) 12:10:35よく見るけれども、それほど良いものならなぜOOPLを駆逐して
広く普及しなかったのだろう? 皮肉ではなく、純粋な疑問として。
0250デフォルトの名無しさん
2009/06/08(月) 12:24:27関数型言語なんて知らなくても使えるようにならないと流行らないよ。
0251デフォルトの名無しさん
2009/06/08(月) 12:24:47ポピュラーなオブジェクト指向言語はC++やJavaなどのCの派生言語だから。
MLやHaskellなどは考え方を結構変えないと理解しがたいから、取っつきにくかったから。
0252デフォルトの名無しさん
2009/06/08(月) 12:26:10MSができる前から関数型言語は存在したけど、PascalやCよりずっとマイナーだった。
0253デフォルトの名無しさん
2009/06/08(月) 12:32:33アレは人間の扱うもんじゃないと思うw
0254デフォルトの名無しさん
2009/06/08(月) 12:38:21> OOには、goto的なものが多すぎる。
具体例を挙げよ (2点)
0255デフォルトの名無しさん
2009/06/08(月) 12:42:05そしてLispのシンタックスが抽象構文木そのものだったというのも
一般に広めるという上では仇になったと思う。
関数型も慣れれば非常に快適なんだけどね。
0256デフォルトの名無しさん
2009/06/08(月) 12:45:030257デフォルトの名無しさん
2009/06/08(月) 12:47:49知ってるプログラミング言語は何って聞かれてHTMLって答えるタイプ?w
0258デフォルトの名無しさん
2009/06/08(月) 12:52:43SQLはDBからデータをざっくり(下手すりゃ全行)引っ張るのだけに
使って、あとはJava等々で手続き的に処理したがる御仁も多いよう
ですが・・・手続き型の呪縛は強い。
0259デフォルトの名無しさん
2009/06/08(月) 13:00:51関数型より手続き型言語の方が理解しやすいように出来ているの
だと思う。関数型言語を使うには一段階脳の改造というか訓練を
必要とするというか。
0260デフォルトの名無しさん
2009/06/08(月) 13:22:250261デフォルトの名無しさん
2009/06/08(月) 13:24:420262デフォルトの名無しさん
2009/06/08(月) 13:26:52つまり関数型言語が普及しない理由は短期記憶の容量が少ない奴
が多いからであると。
それなら初めっから普及の面で関数型に勝ち目なんて無いじゃん。
0263デフォルトの名無しさん
2009/06/08(月) 13:32:07短期記憶の容量が少なくて済む代わりに、型バグ・副作用バグに悩まされるんだよね。
0264デフォルトの名無しさん
2009/06/08(月) 13:33:410265デフォルトの名無しさん
2009/06/08(月) 13:35:11ご隠居さんの戯れ言や長老達の世迷い言からも解放される
0266デフォルトの名無しさん
2009/06/08(月) 13:38:480267デフォルトの名無しさん
2009/06/08(月) 13:39:59どっちにしろラムダ計算を知らない奴らには荷が重いだろ。
0268デフォルトの名無しさん
2009/06/08(月) 13:41:07しかも実務経験に乏しいのとか…
0269デフォルトの名無しさん
2009/06/08(月) 13:46:07そういうのは大学とかIT系以外に多いんじゃね?
0270デフォルトの名無しさん
2009/06/08(月) 13:48:07情報系の学科で関数型言語を使った講義が無い大学ってあるのか?
それとも文系上がりのなんちゃってOOプログラマが多いのか?
0271デフォルトの名無しさん
2009/06/08(月) 13:51:590272デフォルトの名無しさん
2009/06/08(月) 13:53:36関数型よりユーザー少ないような
0273デフォルトの名無しさん
2009/06/08(月) 14:07:18職業プログラマじゃなくても仕事でプログラマしてる奴はいくらでもいるだろ?
0274デフォルトの名無しさん
2009/06/08(月) 14:10:210275デフォルトの名無しさん
2009/06/08(月) 14:10:48そっちの方が速ければ、そうする。
0276デフォルトの名無しさん
2009/06/08(月) 14:11:31s/仕事でプログラマ/仕事でプログラム
0277デフォルトの名無しさん
2009/06/08(月) 14:25:19・歴史はある
・情報系の人間ならまず習う
・短期記憶が足りなくてもどうにかなる
それでもマジョリティになり切れない関数型言語って
どうなのさ。なんか根本的に残念なところとかある
んじゃないのかな。
0278デフォルトの名無しさん
2009/06/08(月) 14:31:450279デフォルトの名無しさん
2009/06/08(月) 14:35:130280デフォルトの名無しさん
2009/06/08(月) 14:37:19それはない
0281デフォルトの名無しさん
2009/06/08(月) 15:50:40Turingという言語があったけど、ちっとも広まらなかったよw
0282デフォルトの名無しさん
2009/06/08(月) 17:02:36モナドもHaskellも知らない奴が「モナドを知らないとHaskellではプログラミングできない」と言い張る
0283デフォルトの名無しさん
2009/06/08(月) 18:02:391箇所の変更の影響が広範囲にわたること。
高階関数に微妙なバグがあると、
バグを特定してインパクトの小さな修正をするのが困難
0284デフォルトの名無しさん
2009/06/08(月) 18:06:23あれはもう何年経ってもアカデミックな界隈でしか使われない。
誰がやってるのか、どこの会社がやろうとしてるとか等を考慮すれば、
F#とScalaだけに注目してればいい。
0285デフォルトの名無しさん
2009/06/08(月) 18:15:04いや、影響はその関数の中だけでは?
要は関数ってのは入力と出力だよ。
出力以外の状態に変化が無いことが保証されているから、
入力されたデータに対する出力だけを見ていれば正常に動いているかどうかが一目瞭然なんだよ。
正しい入力をしたとき正しい出力が出ていればそれは正しい関数。
バグの特定は普通にprintデバッグとかいろんなデバッガを使ったデバッグでするところは他の手続き型言語と何も変わるところはないね。
0286デフォルトの名無しさん
2009/06/08(月) 18:19:04> 現代の関数型言語を語る時にLisp系の話を持ち出すのは間違い。
> あれはもう何年経ってもアカデミックな界隈でしか使われない。
アカデミックな界隈ではLispは古くさいってイメージしかない。
使っているのは長老だけでは?
0287デフォルトの名無しさん
2009/06/08(月) 18:31:23それは、関数型言語の中でも特に誰も本番で使ってないといわれる、
純粋関数型言語の話でしょ。
オブジェクト指向言語の話する時にSmalltalkを大前提に語るぐらい
意味のない行為。
0288デフォルトの名無しさん
2009/06/08(月) 18:37:55純粋関数型言語HaskellはOCamlやF#より話題に上りやすい言語なんだが。
0289デフォルトの名無しさん
2009/06/08(月) 19:58:52それは lisp のように代入を許してる言語の話だろ?
だからと言って, ダイナミックバインドがある汚染された関数型言語でも,
スペシャル変数の使いどころとか理解できない糞には触ってほしくはない
# つか, クラス変数より遥かに役に立つダイナミック変数
0290デフォルトの名無しさん
2009/06/08(月) 20:11:04Lisp, Schemeは関数型言語の仲間だけど、理論的な背景は無い。
そういう意味では、基礎の無いOOと同じ。
0291デフォルトの名無しさん
2009/06/08(月) 20:15:41書かないだけで, 書こうと思えば純粋関数的に書けるわな > lisp 系
そもそもが型なしラムダ計算なんだから
0292デフォルトの名無しさん
2009/06/08(月) 20:26:08いや、書けてしまうという時点で純粋じゃないんだよ。
そもそも純粋関数型言語であるのは機械的な解析がしやすいこと。
それはデバッグの自動化への将来性を意味する。
0293デフォルトの名無しさん
2009/06/08(月) 21:14:33チューリング完全な任意の言語は
純粋関数型言語に機械的に翻訳できるが、それでも解析がしやすいと言うのか?
0294デフォルトの名無しさん
2009/06/08(月) 21:17:08> それはデバッグの自動化への将来性を意味する。
実際には型エラーのデバッグだけでも自動化にはほど遠いけどな。
型推論自体がNP完全問題という現実を忘れないように。
0295デフォルトの名無しさん
2009/06/08(月) 21:27:07まぁ、いろいろ研究があるから調べると良いよ。
特に奈良先端とかいっぱい論文出してる。
0296デフォルトの名無しさん
2009/06/08(月) 21:30:530297デフォルトの名無しさん
2009/06/08(月) 21:32:370298デフォルトの名無しさん
2009/06/08(月) 21:37:16型について質問することでバグを特定するシステムなら知ってるよ。
俺もその研究に関わってたことあるし。
でもあれは自動化の対極だ罠。質問に対して人間が適切に返答することが前提。
つーか、自動化は不可能なことが証明されているのに何を今さら?って感じ。
0299デフォルトの名無しさん
2009/06/08(月) 21:47:54お前の知識は古すぎる
0300デフォルトの名無しさん
2009/06/08(月) 21:48:560301デフォルトの名無しさん
2009/06/08(月) 21:57:26では、型エラーのデバッグを完全に自動化することに成功した論文を挙げてくれ。
0302デフォルトの名無しさん
2009/06/08(月) 22:06:510303デフォルトの名無しさん
2009/06/08(月) 22:08:48関数型言語ではそもそも型エラーが起こりえないだろ?w
0304デフォルトの名無しさん
2009/06/08(月) 22:12:13それはオブジェクト指向を正しく理解していない。
オブジェクトが並列で動くイメージで作るんだよ。
でも実際にスレッドで並列で動かすと無駄が大きくなるから並列じゃないんだけどね。
どうしても本当の並列が必要になったときだけスレッドを使えばいい。
0305デフォルトの名無しさん
2009/06/08(月) 22:12:59型推論がNP完全?決定不能の間違いでは?
NP完全は計算量のオーダーの話。
決定不能(undecidable)は計算可能性の話。
まぜるな危険。
0306デフォルトの名無しさん
2009/06/08(月) 22:19:140307デフォルトの名無しさん
2009/06/08(月) 22:21:13>そもそもが型なしラムダ計算なんだから
Lispは形なしλ計算ではない。セルとその操作(carやcdr)を基礎とする言語。
一方λ計算とは、値とλ抽象とλ適用を項とし、βリダクションによって計算を進めるもの。
全く異なります。
0308デフォルトの名無しさん
2009/06/08(月) 22:22:42○型なしλ計算
0309デフォルトの名無しさん
2009/06/08(月) 22:23:54オブジェクト指向のほうが、現実のモデル化には適している。
問題は、モデル化にこだわって、かえって複雑になりがちなことだ。
0310デフォルトの名無しさん
2009/06/08(月) 22:39:10>それはオブジェクト指向を正しく理解していない。
属人的なノウハウであるオブジェクト指向に「正しい」なんてないと何度言ったら(ry
0311デフォルトの名無しさん
2009/06/08(月) 22:44:180312デフォルトの名無しさん
2009/06/08(月) 22:44:39問題はモデル化と称していらんものをやたらと詰め込むこと。
0313デフォルトの名無しさん
2009/06/08(月) 22:45:52関数ポインタで済むところでもクラス+仮想関数を使わせるのは不自然。
0314デフォルトの名無しさん
2009/06/08(月) 22:47:540315デフォルトの名無しさん
2009/06/08(月) 22:52:49そんなことを言ってるんじゃないのw
属人的な要素が強いなら先輩の言うことは聞きなさい。
0316デフォルトの名無しさん
2009/06/08(月) 22:54:11関数とオブジェクト指向で言うところのオブジェクトは別物だろ。
関数自体にメッセージを送れるか?
関数自体がメッセージを受信するか?
0317デフォルトの名無しさん
2009/06/08(月) 22:55:45ファンクタがあるよ。
0318デフォルトの名無しさん
2009/06/08(月) 23:17:11Lispがラムダ計算じゃないなんて馬鹿丸出しだぞ。
お前はChurch encodingも知らないのか?偉そうな事を言うなら少しは勉強してからに
したらどうだ?consもcarもcdrもラムダ式で表せるんだよ。
0319デフォルトの名無しさん
2009/06/08(月) 23:17:53日輪となる唯一の言語
Scalaこそ最強
Scalaこそ救い
0320デフォルトの名無しさん
2009/06/08(月) 23:27:00ドシロート意見だけど引数とは違うのん?
0321デフォルトの名無しさん
2009/06/08(月) 23:29:54>consもcarもcdrもラムダ式で表せるんだよ。
λ計算で表現できる事とλ計算の定義とを混同していませんか?
Lispはλ計算の定義(>>307で簡単に書きました)をその基礎に採用していません。
これではLispはλ計算だと言えないと思います。
本当にλ計算を基礎としているのはMLです。
0322デフォルトの名無しさん
2009/06/08(月) 23:46:01属人的だから、ノウハウで高い給料もらえるんじゃん。
0323デフォルトの名無しさん
2009/06/08(月) 23:46:19関数は状態を持たないでしょう?
だから前に送ったメッセージの事は覚えてない
0324デフォルトの名無しさん
2009/06/08(月) 23:48:14はいはい、習ったことを言いたいのは解るけど、恥ずかしいからやめてね
0325デフォルトの名無しさん
2009/06/08(月) 23:51:52Lispが型無しかどうかはラッセルパラドックスが成り立つかどうかで調べれば良いんじゃないの。
0326デフォルトの名無しさん
2009/06/08(月) 23:52:34Lispって処理系の実装法まで定義してるのか?
基本的にLispのコードはラムダ式で表せるのだから、後はbeta reductionすれば
良いだろう、というのが俺の意味するところなんだが。
0327デフォルトの名無しさん
2009/06/08(月) 23:56:55スレッドなんて作ったって並列になんて動かないじゃん
こっちちょっと動かして、そっちちょっと動かしてを繰り返すのはまったくいっしょ
スレッドにしてなにか変わることあるの?
一定時間毎に呼び出したいとかハード的な何かのメッセージを待ってとか
通信でメッセージを待つとか
そういうコールバック的な用途でしか使う機会ないんだけど
スレッドって俺等PGにとって並列に処理するためのもんか?(いや、定義は知らんけどね)
0328デフォルトの名無しさん
2009/06/08(月) 23:59:19コールバックとスレッドは全く違う。
コールバックって関数の中の処理が終わるまで他のところに処理が移れないじゃん。
0329デフォルトの名無しさん
2009/06/09(火) 00:04:52いいたい事の意味は分かります。
Common Lispは言語仕様ですが、その基礎的な仕様に例えばS式の定義があります。
その中でS式とは、シンボルとそのペアによって成り立つと定義されています。
これはλ項(値とλ抽象とλ適用によって成り立つもの)とは異なります。
もちろん、Lispのプログラムはλ計算に変換可能(だと思う。証明したことないけど)ですが、
それをもってLispはλ計算だという表現は拡大解釈だと感じます。
0330デフォルトの名無しさん
2009/06/09(火) 00:21:46「値」じゃないよ。variableは「変数」
0331デフォルトの名無しさん
2009/06/09(火) 00:24:17いや、コールバックじゃねぇなw
なんだっけ?
ポーリングだwポーリングw
0332デフォルトの名無しさん
2009/06/09(火) 00:26:32つまりよ
ハード的な要因があって何かを監視する必要があってそれと辻褄を合わせる的な用途でもないと
無理やりスレッドって形でプログラムを組む必要ってないじゃんってこと
0333デフォルトの名無しさん
2009/06/09(火) 00:27:220334デフォルトの名無しさん
2009/06/09(火) 00:33:19> 関数自体がメッセージを受信するか?
普通に受信しますがそれが何か? w
| func |
func := SmallInteger compiledMethodAt: #+.
func valueWithReceiver: 3 arguments: #(4) "=> 7 "
0335デフォルトの名無しさん
2009/06/09(火) 00:34:17どうも。うっかりしてました。
いい機会なので、λ項の定義を書いておきます。
1. 変数a,b,c,...はλ項である
2. M,Nがλ項のとき、(M N)はλ項である (関数適用)
3. Mがλ項、xが変数のとき、(λx.M)はλ項である (λ抽象)
0336デフォルトの名無しさん
2009/06/09(火) 00:34:23副作用があるから関数ではない
0337デフォルトの名無しさん
2009/06/09(火) 01:11:56マルチコア/マルチプロセッサになると違ってくるよ。
シングルコアだと動いてるのに、マルチコアにすると不具合が出るソフトは、
大抵スレッドがらみのバグだね。
プログラミング面から見たら、それぞれのタスクが独立して動いてくれた方が
楽なことがあるんだよ。もちろん、独自のタスク管理システムつくっても
いいんだけど、それはそれで面倒くさい。
0338デフォルトの名無しさん
2009/06/09(火) 02:11:12スレッドのバグは状態を共有するところに問題の種がある。
だからこそ状態を共有しないメッセージングが重要なんだよ。
0339デフォルトの名無しさん
2009/06/09(火) 02:34:340340デフォルトの名無しさん
2009/06/09(火) 03:29:50一瞬解ったような気もしたけどやっぱり解らないのですが・・・
状態を共有する以前に、各スレッドが状態を持っていること自体が
問題の種だと思うのだけど、違うのかな。
0341デフォルトの名無しさん
2009/06/09(火) 03:40:11各スレッドが状態を持っていると問題になる具体的な例を挙げてもらえますか?
各スレッドが状態を持つ問題点というのはおおよそ手続き型故の問題だと思いますが。
0342デフォルトの名無しさん
2009/06/09(火) 04:19:40> 関数型言語ではそもそも型エラーが起こりえないだろ?w
↑こいつ馬鹿?
0343デフォルトの名無しさん
2009/06/09(火) 04:27:31Type inference with simple selftypes is NP-complete
ttp://portal.acm.org/citation.cfm?id=640132
0344デフォルトの名無しさん
2009/06/09(火) 04:36:07状態を共有しているから相互干渉が発生するんだよね?
状態を共有せずにメッセージングで疎に結合しておけば
それぞれのスレッドの問題はそれぞれのスレッドに閉じるよね?
0345デフォルトの名無しさん
2009/06/09(火) 05:13:260346デフォルトの名無しさん
2009/06/09(火) 05:18:14selftype無しの言語だとP-completeじゃねーかよ
>>294は嘘つきも大概にしろよ
0347デフォルトの名無しさん
2009/06/09(火) 05:23:59型推論一般ではNP-completeということじゃ?
0348デフォルトの名無しさん
2009/06/09(火) 05:29:29selftypeってOO言語で使う物だろ
関数型言語の話をしている時にそういう言い方をするのは詭弁
0349デフォルトの名無しさん
2009/06/09(火) 05:40:470350デフォルトの名無しさん
2009/06/09(火) 06:08:36Cardelli厨乙
0351デフォルトの名無しさん
2009/06/09(火) 06:41:410352デフォルトの名無しさん
2009/06/09(火) 06:42:54全体はNP完全になるだろ常識
0353デフォルトの名無しさん
2009/06/09(火) 07:07:300354デフォルトの名無しさん
2009/06/09(火) 07:08:320355デフォルトの名無しさん
2009/06/09(火) 07:30:02まぁ世の中なんでもかんでもオブジェクトですよ。
0356デフォルトの名無しさん
2009/06/09(火) 07:32:25状態の共有がオブジェクトの共有に変わっただけだな。
直接アクセスせず関数を経由すると便利になるのは当たり前のこと。
0357デフォルトの名無しさん
2009/06/09(火) 07:40:56バグなんて発生しない
0358デフォルトの名無しさん
2009/06/09(火) 07:43:32スレッドの原型であるlightweight processがactorモデルと相性よかったという歴史的背景があるわけだが。
0359デフォルトの名無しさん
2009/06/09(火) 08:31:02じゃ、普通の処理で済むところをスレッドにすることで扱いやすくなるの?
解釈間違ってんじゃない?
0360デフォルトの名無しさん
2009/06/09(火) 08:35:16委譲したり継承したりできるわけだが
0361デフォルトの名無しさん
2009/06/09(火) 08:35:330362デフォルトの名無しさん
2009/06/09(火) 09:05:32メイン使用言語は大抵
オブジェクト指向との親和性が微妙なのは何故?C++とかJavaとか
0363デフォルトの名無しさん
2009/06/09(火) 09:37:060364デフォルトの名無しさん
2009/06/09(火) 09:38:59Excelの裏で動くVBAとか?
0365デフォルトの名無しさん
2009/06/09(火) 09:52:130366デフォルトの名無しさん
2009/06/09(火) 11:53:43少なくとも強く型付けされたHaskellなどの言語では実行時の型エラーはありえなくね?
0367デフォルトの名無しさん
2009/06/09(火) 11:58:060368デフォルトの名無しさん
2009/06/09(火) 12:00:22そんなやばい関数があるのか。
FFI用だろ 女子高生
0369デフォルトの名無しさん
2009/06/09(火) 12:08:07危険なところと安全なところを切り分けて考える事は重要だしね。
0370デフォルトの名無しさん
2009/06/09(火) 13:07:10>>オブジェクト指向との親和性が微妙なのは何故?C++とかJavaとか
オブジェクト指向との親和性って何?
C++とJavaの何処が微妙なんだ?
0371デフォルトの名無しさん
2009/06/09(火) 13:53:4930越えてるなら今のうちにコボラにごめんなさいしとけ
多分お仲間になる
0372デフォルトの名無しさん
2009/06/09(火) 14:22:37そういうこと言ってる人って、大学に行かずにプログラマになった人で、40歳ぐらいの人に多いんだけど。。
3人ぐらい同じような事を言ってる奴がいたけど、全員大学は出ていなかった。
一方で関数型言語やオブジェクト指向をバリバリやってる人は会社の社長さんに多かった気がする。
てか俺の周り社長大杉w
0373デフォルトの名無しさん
2009/06/09(火) 15:20:28つまり、オブジェクト指向やってる奴は協調性が無くて長く会社にいられないから、
起業する奴が多いということか。
0374デフォルトの名無しさん
2009/06/09(火) 18:36:02往生際わるすぎ
0375デフォルトの名無しさん
2009/06/09(火) 18:42:37お前、ム板で暴れてる奴だろ?
0376デフォルトの名無しさん
2009/06/09(火) 19:08:44ここはどこ? >>374 ってよそでもやってるの???
0377デフォルトの名無しさん
2009/06/09(火) 20:11:170378デフォルトの名無しさん
2009/06/09(火) 21:09:32の定義が山ほどあるから、みんな、困ってるんじゃないか?
とくに OOA とか OOD とか言ってる連中と、その他の設計理念の立ち位置とか
C++/Java で言ってるカプセル化の位置付けとか
よそから見たら単なるオナヌーだろ?
0379デフォルトの名無しさん
2009/06/09(火) 23:25:01ハード屋とか組み込み屋連中はシステムの安定度とかを計算するための
数式的手法を山ほど持ってて, 有効に使ってシステム組んでるわけだが
実は, そのたぐいってOOにも応用可能なことが分かってるのに, OO屋が
そうゆうの使わないのは, なんか理由があるのか?
0380デフォルトの名無しさん
2009/06/09(火) 23:27:50昔からあるだろ形式言語使って
調べるとかそんなのは日の目みないだけで
腐るほど研究されてるぞ
OO使い特にJAVAスクール(笑)に通ってるような
奴らには数式なんて理解できないでしょう
0381デフォルトの名無しさん
2009/06/09(火) 23:39:54> 数式なんて理解できないでしょう
要はOO屋ってのはアホの集団ってことか?
0382デフォルトの名無しさん
2009/06/09(火) 23:47:160383デフォルトの名無しさん
2009/06/09(火) 23:50:08>よそから見たら単なるオナヌーだろ?
オナニーして悦に入ってる奴に限って
他人にも押し付けて来るんだよなぁ
ああいうのは本当に邪魔だ
0384デフォルトの名無しさん
2009/06/09(火) 23:55:58そんなツール山ほどあるんじゃないの
メトリクスで検索したら山ほど引っかかるぞ
ウチの職場でも富士通の使ってるし
0385デフォルトの名無しさん
2009/06/09(火) 23:57:26そうOO屋はアホの集合体
特に日本は設計もできないし、問題を解決する道具
としてOOをまともに使えないから世界でもカスレベル
のアホ集団といっても問題無い
0386デフォルトの名無しさん
2009/06/10(水) 00:01:48あの設計段階ではほとんど全く役に立たない奴ね
その手のツールとは違うだろ, ハード屋とか組み込み屋が使ってる設計手法は?
0387デフォルトの名無しさん
2009/06/10(水) 00:16:110388デフォルトの名無しさん
2009/06/10(水) 00:21:52> ハードウェアとかでの設計
って言ってるのは、図面を引くところで
それ以前の工程のでやるべきことはほとんど同じなんだけどな
使ってる手法は大きく異なる
0389デフォルトの名無しさん
2009/06/10(水) 01:37:38ソフトウェア開発では、その手のものはまず役に立たないから。
0390デフォルトの名無しさん
2009/06/10(水) 01:46:12「ソフトウェア開発では、その手のものを役立たせる能力をもった人材が
ほとんどいないから」
の、間違いだろ
0391デフォルトの名無しさん
2009/06/10(水) 07:01:51君、ソフトウェア工学についてちゃんと系統立った教育を受けてないでしょ?
学んでいれば、ハードウェアにはないソフトウェア固有の問題を知っているはずだ。
0392デフォルトの名無しさん
2009/06/10(水) 07:12:04>>196 >>199
0393デフォルトの名無しさん
2009/06/10(水) 09:44:44仕様から数式的に記述して、できたプログラムを検証するとか、
理論的研究としてはいいところまで行ったが、
オブジェクト指向が出てきて振り出しに戻ったw
0394デフォルトの名無しさん
2009/06/10(水) 09:49:30アルゴリズムを考える手段としてはあまり役に立たないように俺は思うよ。
0395デフォルトの名無しさん
2009/06/10(水) 10:04:43悔しいのか?
0396デフォルトの名無しさん
2009/06/10(水) 10:14:43頭おかしいの?死んじゃうの?
0397デフォルトの名無しさん
2009/06/10(水) 10:17:18仕様を形式化できるような分野の話をしても意味が無いと思うが。
それこそ、なんでもOO厨と変わらないだろ。
0398デフォルトの名無しさん
2009/06/10(水) 10:22:28必 死 だ な
Software engineering will never be a rigorous discipline with proven
results, because it involves human activity.
0399デフォルトの名無しさん
2009/06/10(水) 10:22:44で、仕様を変更したら、プログラムの中で修正すべき部分が色つきで表示されるとか。
0400デフォルトの名無しさん
2009/06/10(水) 10:26:270401デフォルトの名無しさん
2009/06/10(水) 10:39:13その英文を読んで、理由がそこに直接挙げられているものだけだという主張だと解釈するのなら、
おまえは二度と英文を読まないほうがいい。おまえ本人にとってもおまえの周囲にも不利益にしかならない。
0402デフォルトの名無しさん
2009/06/10(水) 10:44:25オーバースペックな学問やってると応用を考えるのが大変だな
0403デフォルトの名無しさん
2009/06/10(水) 10:51:100404デフォルトの名無しさん
2009/06/10(水) 10:51:48読まずに反論してるのが丸分かりだな。まあ全部読んでから反論しろよ。
それともこの程度の量も楽に読めない程英語に不自由しているのか?
0405デフォルトの名無しさん
2009/06/10(水) 10:59:51すごい妄想だな。
やはりお前は>>391が言うようにSoftware Engineeringの基本中の基本がわかっていない。
VBScriptを自習したクチか?
0406デフォルトの名無しさん
2009/06/10(水) 11:09:14革新的なヒット商品が生まれる。
だけど、それと、オブジェクト指向には、
なんかすっきりした設計・開発の法則がないんじゃないか?
という話も、また別の問題だろう。
過去の定跡を破る前に、その定跡がどうもはっきりしない。
0407デフォルトの名無しさん
2009/06/10(水) 11:34:41余計なことはいいから、読んだのなら内容について反論しろよ。
それが出来ないなら英語に不自由していると思われて当然だ。
0408デフォルトの名無しさん
2009/06/10(水) 11:36:56人を妄想だと言っておきながら自分も妄想を並べ立てるとか
自己矛盾も甚だしいぞw
0409デフォルトの名無しさん
2009/06/10(水) 11:48:24基礎を知らないので、応用が出来ないのと同じ理屈だよ
0410デフォルトの名無しさん
2009/06/10(水) 16:55:45ミエミエの自演とはいえ、もうちょっと時間をおくとかしたほうがいいぞ。
あとな、おまえちゃんと全文読んでないだろ。読んでたら>>392のようなマヌケなことはしない。
0411デフォルトの名無しさん
2009/06/10(水) 17:06:39第三者から見てもお前の方が100倍ぐらい痛いぞ
0412デフォルトの名無しさん
2009/06/10(水) 17:08:000413デフォルトの名無しさん
2009/06/10(水) 17:32:000414デフォルトの名無しさん
2009/06/10(水) 19:59:10オブジェクト指向が理解できない可哀想な人たちの巣でしたか
0415デフォルトの名無しさん
2009/06/10(水) 20:39:310416デフォルトの名無しさん
2009/06/10(水) 20:43:55それがまっとうな技術者なら、誰でもある程度身に付くなら、そこから議論しないと。
0417デフォルトの名無しさん
2009/06/10(水) 21:11:320418デフォルトの名無しさん
2009/06/10(水) 21:44:17なんせ継承が無い
0419デフォルトの名無しさん
2009/06/10(水) 21:50:520420デフォルトの名無しさん
2009/06/10(水) 22:16:36「オブジェクトの状態を調べる」というほうが、素人に分かりやすい。
関数って、実体が感じられないんだよね。
0421デフォルトの名無しさん
2009/06/10(水) 22:27:580422デフォルトの名無しさん
2009/06/10(水) 22:29:52銀の弾丸はありません。
0423デフォルトの名無しさん
2009/06/10(水) 22:34:06どっちもいっしょだろ。
c じゃ返ってくる値じゃ使い物にならんから
しゃーないってのはあるが。
0424デフォルトの名無しさん
2009/06/10(水) 22:36:11って言うと、インスタンス変数なりクラス変数なりの参照をイメージするが…
0425デフォルトの名無しさん
2009/06/10(水) 22:37:14素人の意見で決めるのかw
0426デフォルトの名無しさん
2009/06/10(水) 22:42:260427デフォルトの名無しさん
2009/06/10(水) 22:46:45その辺がハード屋とは大きく違う。
0428デフォルトの名無しさん
2009/06/10(水) 22:55:36教育の話だけど、すごく単純なプログラムで、
関数とオブジェクトのメソッドを教えようとしたら、
メソッドのほうが教えやすいということに気づいた。
文系脳でも大丈夫。
0429デフォルトの名無しさん
2009/06/10(水) 23:02:52自演?なにそれ?
妄想や抽象論はいいからさっさと内容について具体的に反論しろよ。
お前本当に英語読めないんだな。
0430デフォルトの名無しさん
2009/06/10(水) 23:16:55手続き型は何だかんだ言いつつも変数を箱として視覚的に表現
したりと工夫する事で初心者にも処理の流れを理解させやすい。
OOPは犬や猫をなかせたりとやや迷走気味だけど、まだ努力
は見せている。
前にここで関数型言語における初心者向けの良い例え話を
尋ねたらラムダ演算が答えとしてかえってきた。
説明下手なうちは普及も難しいだろうなと正直思った。
0431デフォルトの名無しさん
2009/06/10(水) 23:19:430432デフォルトの名無しさん
2009/06/10(水) 23:57:06普通に中学・高校で習う関数と一緒だと思うが。
高階関数のこと?
0433デフォルトの名無しさん
2009/06/11(木) 00:00:38それ未満の内容でたとえ話っているのか?
0434デフォルトの名無しさん
2009/06/11(木) 00:15:24じゃぁ例え話なしで
君のまわりの鼻たれ小僧に関数型言語について教えてみて
例え話を使った所で"理解"にそのまま至ることは無いが
"どの程度話が通じるか"に差が出る
0435デフォルトの名無しさん
2009/06/11(木) 00:16:37まずは、日本語を正しく書けるようになれ
0436デフォルトの名無しさん
2009/06/11(木) 00:34:04OOと関数型とを比べてもつまならい。どっちもまぁ頑張れとしか言いようがない。
それよりも、一定以上の規模かつ一定以上の品質という条件を両立したプログラムを書ける
レベルまでにどれだけスムーズに到達できるようになるかを比べたい。
0437デフォルトの名無しさん
2009/06/11(木) 00:44:280438デフォルトの名無しさん
2009/06/11(木) 00:47:28基本的な機能まではすぐに分かるのだけれど、クラス設計をしようとした途端難しくなる。
これがネック。
そして少し分かりかけてきたかなと思っても、規模についていけずに破綻する。
一方でHaskellやOCamlのような関数型言語では、型や関数やモジュールの基礎は難しくなく、
そこまで分かれば一定以上の規模に耐えられる。
それ以上難しい型の応用やファンクターの活用などになると壁があるけど、
そこはもうプラスαの世界。
0439デフォルトの名無しさん
2009/06/11(木) 00:54:18旧世代言語みたいなキモイ文法が無ければ流行る
OCaml最高〜
Java(笑)市ねw
0440デフォルトの名無しさん
2009/06/11(木) 00:56:07自分でオブジェクトを作ろうとするからややこしいんであって、利用するだけなら馬鹿でも出来るし
VBScriptを使いこなせるようになってからC++なりJAVAなりC#なり好きな言語を使えばいいんでないの?
まあ、VBScriptを使いこなせるようになったら、わざわざ他の言語に移る必要性を感じるかどうか...
馬鹿避けには良い言語だよマジで
0441デフォルトの名無しさん
2009/06/11(木) 00:56:580442デフォルトの名無しさん
2009/06/11(木) 00:59:300443デフォルトの名無しさん
2009/06/11(木) 01:02:220444デフォルトの名無しさん
2009/06/11(木) 01:30:55って事で、Scala最高。
0445デフォルトの名無しさん
2009/06/11(木) 02:18:15と思いつつもclojureに心惹かれてる俺
0446デフォルトの名無しさん
2009/06/11(木) 05:36:35俺はOCamlでいいや
0447デフォルトの名無しさん
2009/06/11(木) 07:28:13その高校で習う関数が分からないんだよ。
文系脳では、1行で書けない関数は理解不能。
Fortranの文関数が限界。
0448デフォルトの名無しさん
2009/06/11(木) 08:27:18プ
0449デフォルトの名無しさん
2009/06/11(木) 13:48:24大丈夫。そいつ等は日本語も読めない連中だから切って捨てても無問題
0450デフォルトの名無しさん
2009/06/11(木) 18:10:11抽象概念としては中学で習う関数と同じでも、
扱う対象が数だけではないところが関数プログラミングの難しさだとおもうが。
リストや文字列という概念を理解した上で、関数という概念と結びつけるのが
一番の難関だと思う。
たとえば、関数は関数でも、
f(x) = a * x + b
と
f x (y:ys) = (str (x y)):(f x ys)
では理解するために必要な抽象力がまるで違うだろ?
0451デフォルトの名無しさん
2009/06/11(木) 18:46:15関係のグラフ、値の対応付け等の概念を知れば
どんな○○でも簡単に理解できるようになるでしょう
0452デフォルトの名無しさん
2009/06/11(木) 18:55:04抽象力(笑)なんて言われたら、ますます想像力が低下するんだろうなぁ
0453デフォルトの名無しさん
2009/06/11(木) 20:42:12関数と言うよりテンプレートという感じだろう。
xの場所を数字に置き換えて計算するという感じ。
何か関数という実体があるというイメージはない。
大学で理系の学部に進学する人間以外は、この程度の理解。
0454デフォルトの名無しさん
2009/06/11(木) 20:46:29高度な抽象化のわりには、それほど生産性上がるのかどうか微妙な感じ。
オブジェクト指向の仮想関数にも同じようなところがあるんだけど。
0455デフォルトの名無しさん
2009/06/11(木) 22:15:56「あの人はオブジェクト指向を知ってるから工数は普通の人の2分の1でいいよ」
なんて死亡フラグ以外なんでもないなw
0456デフォルトの名無しさん
2009/06/11(木) 23:06:510457デフォルトの名無しさん
2009/06/12(金) 00:38:14使い捨てのプチツールなんか、アホらしくて綺麗な構造なんて考えないけどね
0458デフォルトの名無しさん
2009/06/12(金) 00:40:500459デフォルトの名無しさん
2009/06/12(金) 00:43:51とリファクタリングの本にも買いとった
0460デフォルトの名無しさん
2009/06/12(金) 00:46:10決まってくるんで、そんなに苦痛でもないけどな。
0461デフォルトの名無しさん
2009/06/12(金) 01:36:50赤いまん丸の風船があったとして、
これに「ポンジュース」って書かれた
蛇口をつっこむと、ポンジュースが出てくる。
これがメソッドです。風船はオブジェクト。
0462デフォルトの名無しさん
2009/06/12(金) 01:41:340463デフォルトの名無しさん
2009/06/12(金) 03:26:32犬やら猫やらその親クラスの動物やらで説明されてた時はよく意味が解らんかったが
文字列や配列がクラスってのを学んだらピコーンと来た
でもまだその時点じゃレベル1だった
「文字列化」するメソッドを学んだ時にレベル2になったかな
0464デフォルトの名無しさん
2009/06/12(金) 05:25:430465デフォルトの名無しさん
2009/06/12(金) 06:12:58少数精鋭で耕して豊かな土地にしてくれるのならそれでも良いけど、
そこまでの頭数も一人あたりの根性もあるとは思えない。
良い技術であっても広まらないと社会にはクソほどの役にも立た
ないんだけどね。ここでFP持ち出してOOP叩く面々にはFPを振り
かざしはしても普及させようとかそういう気は全然無いみたい。
0466デフォルトの名無しさん
2009/06/12(金) 07:48:19これっぽっちも工数を削れない
数字に出せないってことは駄目なんだよ
数字をみないとなにやっても駄目
いつまでも無駄なことを延々とやり続ける
0467デフォルトの名無しさん
2009/06/12(金) 08:47:00全世界市場に向けてリリースするパッケージの開発者、とか
そういう連中の言うことに自己同一化して
単なる下請けコーダーがたけえ本買ってんのは滑稽といえば滑稽だな
辞めちゃえばいいんだよ
業界が腐ってんのはホントのことなんだから
辞めて自分のシステム作ってそれ運用して食っていけばいい
WEBサービスとかシェアウェアとかのこと言ってんじゃないよ
0468デフォルトの名無しさん
2009/06/12(金) 09:44:35顧客専用のシステムを作成するのに、OOなんてこれっぽっちも役に立つわけがないだろうが
将来的に使うかも?
そんなもん使えるかよ!!!
同じことをするのでも、未来の自分の方が上手いコードを書けるだろうよ!!!
OOが役立つのは、プログラム開発をしている奴だけだよ
プログラム作成している奴には、何の役にも立たないよ
0469デフォルトの名無しさん
2009/06/12(金) 09:52:220470デフォルトの名無しさん
2009/06/12(金) 09:57:330471デフォルトの名無しさん
2009/06/12(金) 10:21:44という馬鹿がいるのが驚きだ
VBScript程度でも使えば再利用の重要性が分かると思うんだが
まあ、VBScriptを使ってても、再利用しているとは思ってない可能性があるけどなwwww
0472デフォルトの名無しさん
2009/06/12(金) 10:26:12なので、いまだにCで書く奴が多すぎるわけですよ
0473デフォルトの名無しさん
2009/06/12(金) 10:37:00再利用再利用と言ってる言語が、再利用しにくいように言語仕様を変える。
0474デフォルトの名無しさん
2009/06/12(金) 11:05:140475デフォルトの名無しさん
2009/06/12(金) 11:23:38馬鹿だからか理解できん
0476デフォルトの名無しさん
2009/06/12(金) 12:53:15オブジェクト指向がまともに使われてるのってコーディングレベルくらいじゃん。
コーディングレベル以上のオブジェクト指向なんとかって、オカルトとかいんちきばっかり。
0477デフォルトの名無しさん
2009/06/12(金) 13:32:200478デフォルトの名無しさん
2009/06/12(金) 13:38:37投機的な仕事しかできない仕組みになってる。
0479デフォルトの名無しさん
2009/06/12(金) 16:52:430480デフォルトの名無しさん
2009/06/12(金) 18:27:33まず、これを脳みそに擦り込むべき
0481デフォルトの名無しさん
2009/06/12(金) 18:32:530482デフォルトの名無しさん
2009/06/12(金) 20:29:39オーバーエンジニアリング(の強要・またはそれをどこまでも進める馬鹿)なのかもしれない
0483デフォルトの名無しさん
2009/06/12(金) 20:40:56再利用をしやすいように機能が追加されているのだが、
仕様が変わるということ自体が、再利用の妨げになっている。
もちろん、機能は過去との互換性を考えて追加されてるのだが、
プログラミングスタイルが変わるし、心理的にも抵抗が生まれる。
C++0xなんて、お化けだよ。
もう別の言語作って、C++の機能を使えるようにすればいいのに。
Javaも仕様追加してぐだぐだな感じになってきた。
0484デフォルトの名無しさん
2009/06/12(金) 20:44:53必死になって覚えたっていうものでもないし。
0485デフォルトの名無しさん
2009/06/12(金) 21:11:14再利用するのに、ちょっと気が進まなくなったりしないか?
そこでちょっと手直ししようかな、なんて思ったりするとドツボ。
0486デフォルトの名無しさん
2009/06/12(金) 21:46:50オブジェクト指向とまるで関係とは思うけどテンプレートを乱用することが
オブジェクト指向だと思ってる馬鹿はほんとぶんなぐってやりたい
0487デフォルトの名無しさん
2009/06/12(金) 21:52:06本当にそうかもしれないし、本人がレベル低いだけかもしれないし、
具体的な話じゃないと同意しづらいよな。
0488デフォルトの名無しさん
2009/06/12(金) 22:14:15C++は色んな方向に進化(?)しすぎてるから全部に文句言ってたら切りがないかと
0489デフォルトの名無しさん
2009/06/12(金) 23:18:41到達しないとOOなんてつかえねーしな
0490デフォルトの名無しさん
2009/06/12(金) 23:21:12それでも工数は減らないけどなw
0491デフォルトの名無しさん
2009/06/12(金) 23:26:43こんがらがったスパゲッティなんて食えたもんじゃないよ。
0492デフォルトの名無しさん
2009/06/12(金) 23:35:00スパゲッティのがましだよ
だってスパゲッティは大抵長いだけだし
テンプレート地獄は構造がすでに死んでる
誰も触れないし触りたくない
そもそもvector string list以外で必要なもんなんてねぇよマジで
なんで自分で作ったんだこんなチンケな機能ってのが多いな
恥ずかしくねぇのかってぐらい無意味なところで使ってるのが多い
0493デフォルトの名無しさん
2009/06/12(金) 23:37:370494デフォルトの名無しさん
2009/06/12(金) 23:48:29http://d.hatena.ne.jp/yaneurao/20090104
0495デフォルトの名無しさん
2009/06/12(金) 23:57:10>私はそのプログラムのごく一部のclassを流用したかっただけなのだけど、芋づるがひどすぎて切り離せない。
設計腐ってんだよ>やね
0496デフォルトの名無しさん
2009/06/13(土) 00:17:30やつら、机上の空論で標準化とか言い出すからな。
0497デフォルトの名無しさん
2009/06/13(土) 00:23:51バイナリサイズも巨大になるし。
0498デフォルトの名無しさん
2009/06/13(土) 01:47:17スパゲッティってのは長いコードじゃなくて構造化されてないコードのことだと思うのだが。
0499デフォルトの名無しさん
2009/06/13(土) 02:09:04たしかに長いだけだが、読みたくない。
0500デフォルトの名無しさん
2009/06/13(土) 04:58:18しかもフレームワークのバージョンごとに標準が違うwww
0501デフォルトの名無しさん
2009/06/13(土) 15:39:29・ OOPLは土方やゼネコンには不要
- 逆に生産性が低下するとの事例あり
・ OOPLは能力が高いプログラマ向け
- 実験的プロジェクトで高い生産性と品質に有用
- 能力が高いプログラマのコードをコンポーネント化
0502デフォルトの名無しさん
2009/06/13(土) 15:43:04低い奴はそれを使うのが、オブジェクト指向
0503デフォルトの名無しさん
2009/06/13(土) 15:51:13そう分離できたら
かなりすっきりするのだが
仕事では無理だろ
同人ゲームで自分が仕切ってたなら
くらいの状況でもなきゃ実現できん
0504デフォルトの名無しさん
2009/06/13(土) 15:58:27OOPに限った話じゃないな
0505デフォルトの名無しさん
2009/06/13(土) 16:11:16仕事だったら、ぐちゃぐちゃにされるのは覚悟の上で指導するしかないわな。
そうでもしなければ、いつまでたってもそいつは土方コーダーから抜け出せないからな。
0506デフォルトの名無しさん
2009/06/13(土) 16:35:57殴るだけでいいのか?
俺なら殴った後、蹴りを入れてやる。
0507デフォルトの名無しさん
2009/06/13(土) 17:13:01学生時代からプログラミングで生活費を稼いでいたりする連中だ。
中には例外もいるかもしれないが、ここ10年ぐらいの傾向では、
大学受験よりも先にプログラミングをはじめた奴は当たりが多いね。
そういう連中は手続型でも仕事できるが、OOPLならもっと良い仕事をする。
1の仕事をさせれば、そこから10の仕事に使えるコードを残してくれる。
入社してからプログラミングを教わった連中だと、せいぜいが土方のカシラがいいとこだ。
OOPL使わせても他人のコードに文句つけるばかりで、ゴミしか残さない。
0508デフォルトの名無しさん
2009/06/13(土) 17:22:530509デフォルトの名無しさん
2009/06/13(土) 17:27:390510デフォルトの名無しさん
2009/06/13(土) 17:46:39どういう物をプログラムしたんだよ。
RDB引いてウンタラするだけの中間とか?
0511デフォルトの名無しさん
2009/06/13(土) 18:09:12今までそう思っていたが、土方のレベルは想像以上に低いことに気が付いた。
DSLでも作って、そこだけ書かせたほうが良いんじゃないかと思い始めている。
土方使わないのが、ベストだけどね。
0512デフォルトの名無しさん
2009/06/13(土) 18:12:460513デフォルトの名無しさん
2009/06/13(土) 18:27:130514デフォルトの名無しさん
2009/06/13(土) 18:58:57土方にDSL使わせる?
DSLを理解するのに時間かかる上に、
自分の無能力をDSLのせいにするだけ。
0515デフォルトの名無しさん
2009/06/13(土) 19:05:59やっぱ考えなくていいのは楽でいいなぁ
0516デフォルトの名無しさん
2009/06/13(土) 19:07:38これだからプログラミング脳は困る。実装する事しか頭に無いとはね。
土方を教育するフレームワークを作れば済むこと。
0517デフォルトの名無しさん
2009/06/13(土) 19:12:00今まで社内教育フレームワークで土方を量産してきただろ。
そしてその品質の低さに>>507がダメ出ししてるわけだが?
0518デフォルトの名無しさん
2009/06/13(土) 19:13:200519デフォルトの名無しさん
2009/06/13(土) 19:14:32なぜ気付かないのだろうか・・・
0520デフォルトの名無しさん
2009/06/13(土) 19:18:46馬鹿が張り切って仕事しても碌なことにならに無い
昔から言うだろ、触らぬ神に祟りなしって
0521デフォルトの名無しさん
2009/06/13(土) 19:20:21それはお前がVBScriptであれば考えなくていいレベルだから。
土方にどんな言語をあてがっても上手く行くはずがない。
0522デフォルトの名無しさん
2009/06/13(土) 19:31:39クラスは有っても、クラスを使う場面が無いのがVBScript
オブジェクトの利用は出来ても、オブジェクトの定義が出来ないのがVBScript
それで一体何処で頭を使えと...
0523デフォルトの名無しさん
2009/06/13(土) 19:46:360524デフォルトの名無しさん
2009/06/13(土) 20:07:01VBScriptで出来ないことを上げるほうが難しくね?
0525デフォルトの名無しさん
2009/06/13(土) 20:19:400526デフォルトの名無しさん
2009/06/13(土) 21:36:49スレタイから言うと、どうすれば現場からOOを消せるかという問題を話し合いたい。
「消せるか」という問題なので、始めからCOBOLやFORTRANしか使ってないような
現場は無視します。OOしない事を端的にどの言語を使うかという面から見ると、
1. C言語メインで。
2. HaskellもしくはOCaml(without object)メインで。
3. Lisp, Schemeメインで。
という選択肢が考えられる。perlは最近はOO言語になり下がっているので候補外。他には?
0527デフォルトの名無しさん
2009/06/13(土) 21:52:470528デフォルトの名無しさん
2009/06/13(土) 22:01:02オブジェクト指向開発じゃないってことでいいんじゃないの?
それなら、CのFILE*みたいなもので、
便利なモジュール(ライブラリ)というだけだ。
だから、そういう意味ではPerlもあり。
C++でも、メンバ関数作らないで、継承もしないならありだ。
逆に、GNOMEのGObjectとかはダメ。
0529デフォルトの名無しさん
2009/06/13(土) 22:04:21オブジェクト指向を使わずに組めるんだから。
0530デフォルトの名無しさん
2009/06/13(土) 22:14:06イケメンとブサメンの理論で考えれば自明
0531デフォルトの名無しさん
2009/06/13(土) 22:25:28OOP!OOP!
0532デフォルトの名無しさん
2009/06/13(土) 22:28:340533デフォルトの名無しさん
2009/06/13(土) 22:34:25オブジェクトにしている分にはいいんだよ。
つまり、誰にも明らかなモデル化ならいい。
ところが、何から何までオブジェクトにして設計しようとすると、
どこかに変なところが出てくる。
そういう一部分から、全体に混乱が広がっていく。
0534デフォルトの名無しさん
2009/06/13(土) 22:34:49調達規約だとOOあるものは
製品として採用できないはずだけどな
0535デフォルトの名無しさん
2009/06/13(土) 22:37:40そんな、OSごと否定する仕組み作る気かよwwww
0536デフォルトの名無しさん
2009/06/13(土) 22:37:41オブジェクトにするとムリがあるものってたとえばどういうの?
0537デフォルトの名無しさん
2009/06/13(土) 22:42:25http://ja.wikipedia.org/wiki/%E6%8A%BD%E8%B1%A1%E3%83%87%E3%83%BC%E3%82%BF%E5%9E%8B
0538デフォルトの名無しさん
2009/06/13(土) 23:07:35ソフトウェアの機能をオブジェクトに分解しようとすると、
どこかに入れなきゃいけないけど、どこに入れてもなんかしっくりしない
みたいな機能が出てきたりする。
つまり、その機能を、どのオブジェクトにやらせるのか。
0539デフォルトの名無しさん
2009/06/13(土) 23:23:360540デフォルトの名無しさん
2009/06/13(土) 23:42:220541デフォルトの名無しさん
2009/06/13(土) 23:45:320542デフォルトの名無しさん
2009/06/13(土) 23:58:05何処に入れてもしっくり来ないなら、そのものをオブジェクトにすべきなんじゃない?
0543デフォルトの名無しさん
2009/06/14(日) 01:18:31足りないのは君の経験。精進しなさい。
0544デフォルトの名無しさん
2009/06/14(日) 03:36:51そういや、どこぞのサイトに「COBOLは体育会系言語」って書かれてたような
0545デフォルトの名無しさん
2009/06/14(日) 11:04:43んなことするならクラスメソッドじゃなくて普通に関数として
用意した方が直観的だったりする。
java じゃ仕方ないけど。
0546デフォルトの名無しさん
2009/06/14(日) 11:39:03全てをオブジェクトとして扱うと言うのを
全てをクラスorプロトタイプとして扱うなんて考えたら駄目だろう
変数も、関数も、クラスも、プロトタイプも、定数も、全てをオブジェクトとして捉えろよ
全てをオブジェクトとして捉えることが出来るようになれば、
"定数は名付けろ、マジックナンバーを使うな"
って意味が理解できるようになる
0547デフォルトの名無しさん
2009/06/14(日) 12:05:410548デフォルトの名無しさん
2009/06/14(日) 12:16:35数値、参照、配列、コード、識別子、関数、クラス…
ただ、どこかで折り合いは付ける必要があるんだが。
0549デフォルトの名無しさん
2009/06/14(日) 13:04:030550デフォルトの名無しさん
2009/06/14(日) 13:27:33プログラムの実行時に影響を与えるもの全てだろ
0551デフォルトの名無しさん
2009/06/14(日) 13:40:100552デフォルトの名無しさん
2009/06/14(日) 14:23:05実行時に影響を与えないものの例って何かある?
0553デフォルトの名無しさん
2009/06/14(日) 15:06:03その中で「参照」だけはあんまりオブジェクトとして
とらえたくはないな。
0554デフォルトの名無しさん
2009/06/14(日) 15:15:59仕様をクラスに落とす便利さをコーダーの勝手な理屈で排除してない?
仕様書から落としてきたクラスと
コードレベルの都合でできちゃったレベルのクラスが
同列の扱いになってしまってるようなソースってのは大抵馬鹿の書いたソース
0555デフォルトの名無しさん
2009/06/14(日) 15:24:21冗談は染んでから言えよw
関数と構造体だけで正しくプログラムは書ける
仕様書も作成可能だ
0556デフォルトの名無しさん
2009/06/14(日) 15:31:37コメント
0557デフォルトの名無しさん
2009/06/14(日) 15:33:14俺のレスにその内容のレスって意味わかんない
0558デフォルトの名無しさん
2009/06/14(日) 15:34:250559デフォルトの名無しさん
2009/06/14(日) 15:37:53Haskell が真の能力を発揮するのは、複雑で巨大なシステムを書くときです。
一般に、プログラムは実現したいシステムが複雑になるにつれて、可読性はどんどん落ちていきます。
しかし、Haskellは違います。記述の簡潔さ、モジュールによって提供される名前のスコープの管理、関数合成による直接な記述など、他の言語に比べて機能は強力です。
何よりも型を自由にかつ厳密に書くことがすばらしい。これにより、コメントはほぼ必要なくなります。
ちろん、プログラムにコメントを付け加えておけば、それは HTML に自動的に翻訳され、そのままドキュメントになります。
0560デフォルトの名無しさん
2009/06/14(日) 15:38:55haskellとか興味ない
マイナーなの広めようと必死なのわかるけど
やめてくれない?
0561デフォルトの名無しさん
2009/06/14(日) 15:44:24でもほとんどのプログラマーはマイクロソフトに影響されて頭がbasic脳なんで
糞言語しか理解できないんです。
だから斬新な言語ほどマイナーになってしまうんでしょうね。
0562デフォルトの名無しさん
2009/06/14(日) 15:47:58いいかどうかは関係ない
haskellとか興味ないから
0563デフォルトの名無しさん
2009/06/14(日) 16:05:54簡潔に書くことに労力を取られ、肝心のシステム構築に支障が出る予感wwww
0564デフォルトの名無しさん
2009/06/14(日) 16:31:270565デフォルトの名無しさん
2009/06/14(日) 16:50:04バッチ処理に向いてそうだけど、どうなんだろう?
0566デフォルトの名無しさん
2009/06/14(日) 16:54:53色々拡張するのも自由自在だけど、
そういうのができないような構造だと非常に面倒な事になる
0567デフォルトの名無しさん
2009/06/14(日) 17:38:27そういや、以前はオブジェクト指向言語の紹介をするのに、
死ぬほど引数並べてウィンドウを構築するCのコードと、
シンプルなコンストラクタ+プロパティいじりたいところだけアクセッサ
呼び出しするオブジェクト指向言語を対比してみせるのが流行ってたな。
0568デフォルトの名無しさん
2009/06/14(日) 19:14:07関数型のエッセンスを取り入れたマルチパラダイム
pythonかlisp(系)か
でも大規模開発にもっていこうと思えば、
例えばCだと三項演算子は使わないこと(読めない人が居るから)、とか
一関数一ファイル(管理しやすいから)、とか
なんか連番の機能ID(SKJD001020みたいな)だかなんだかをソースファイル名とか関数名とかに使う
なんて規約作っちゃったりしてスポイルされてしまうのは目に見えてるw
0569デフォルトの名無しさん
2009/06/14(日) 19:19:48国際ルールだろ
0570デフォルトの名無しさん
2009/06/14(日) 20:17:151関数5行以内を遵守してる大規模オープンソースプログラムを教えくれよ。
俺が読んだ限りでは、apache httpdもopensslもそんな事にはなってないぞ。
国際ルールなんだろ?
0571デフォルトの名無しさん
2009/06/14(日) 20:19:36> GUIはイベントハンドラが書きやすい言語なら何でもいいんじゃない?
継続
0572デフォルトの名無しさん
2009/06/14(日) 20:28:51脳内乙
0573デフォルトの名無しさん
2009/06/14(日) 20:31:170574デフォルトの名無しさん
2009/06/14(日) 20:34:02VisualStudio2010にはOCamlの改造版であるF#が標準搭載されます。
Windowsをメインターゲットに開発している技術者なら、注目に値するはずです。
Software Design 2009年04月号ではHaskellでWebアプリを作る特集がありました。
Haskellの記述力の高さと安全さと並列性は、Webアプリ開発者としての責任を果たすなら
「知らなかった」では済まされません。
そもそも関数型言語の特徴(特にクロージャーやバリアント)などは次々にOOPLに取り込ま
れています。それらがなぜ取り込まれたのか、その元を知っておきたくはありませんか?
0575デフォルトの名無しさん
2009/06/14(日) 20:36:570576デフォルトの名無しさん
2009/06/14(日) 20:49:05HaskellでGUI作ったという話。
この例だと、結局、状態変数作って共有してる。
これなら、OOPのほうが素直。
0577デフォルトの名無しさん
2009/06/15(月) 01:04:11つうか電卓の機能本体をみろよw
こういうのをオペレータクラスだのなんだのゾロっと揃えて書くことになるんだろ
0578デフォルトの名無しさん
2009/06/15(月) 01:09:05思ってしまうんだが。
0579デフォルトの名無しさん
2009/06/15(月) 01:19:45Calculatorクラスつくって、そこに入力を放り込むってとこじゃね?
0580デフォルトの名無しさん
2009/06/15(月) 01:25:40まあそりゃそうか
数式処理と勘違いしたw
0581デフォルトの名無しさん
2009/06/15(月) 01:31:54それこそlogoでも。
0582デフォルトの名無しさん
2009/06/15(月) 05:48:59なるほど、それはあんまりオブジェクトとして扱いたくないなw
0583デフォルトの名無しさん
2009/06/15(月) 10:26:30未だに改修コメントとか残しているバカどもを説得する材料にはなるかもな。
0584デフォルトの名無しさん
2009/06/15(月) 10:40:280585デフォルトの名無しさん
2009/06/15(月) 11:09:53使えばいいのではないか。いまどきのエディタは、かなり高度な編集機能を持つので
コピーや改変は容易である。そうすれば、継承などのプログラム言語の機能は何も
習得せずに、プログラムの再利用が出来て便利である。
0586デフォルトの名無しさん
2009/06/15(月) 11:15:30できる奴が書いたコードは長ヒョロくてもしっかり考えて書いてあるし、
アフォが書いたコードは短かく切ってあっても余計トレーサビリティ落とすだけ。
結局は書いた奴の能力で全て決まるんだよ。
あとは、優れた能力を持つ技術者がその能力を生かせる言語を選ぶだけ。
これならOOの糞宗教も不要だし、土方のせいでOOの評価を落とされることもない。
みんな幸せになれるんじゃないの、優秀なら。
0587デフォルトの名無しさん
2009/06/15(月) 11:47:250588デフォルトの名無しさん
2009/06/15(月) 11:50:250589デフォルトの名無しさん
2009/06/15(月) 11:54:41一瞬で相手の周囲の大気ごと氷結させる
相手は死ぬ
V
∧_∧
( ´・ω・`) ∧_∧
/ \ (´Д` )
.__| | .| |_ / ヽ
||\  ̄ ̄ ̄ ̄ / .| | |
||\..∧_∧ (⌒\|__./ ./
||. ( ) ~\_____ノ| ∧_∧
/ ヽ \| ( )
| ヽ \/ ヽ.
| |ヽ、二⌒) / .| | |
.| ヽ \∧_∧ (⌒\|__./ /
0590デフォルトの名無しさん
2009/06/15(月) 12:08:37・゚・。・゚・ 。。・゚・。・゚・ 。・゚・彡゚・。・゚。 0 o *彡 ・゚・ 。・゚・ 。・ ,.。 ο 彡
彡 0 ∧_∧ 。・゚・彡。・゚・ 。・ ・。・ 。・゚・ 。・゚・。・゚・゚・。・ . . 。 0 o彡 。・゚・。・゚・
o 彡 ( ´・ω・`) ∧_∧ 。・゚・。・゚・ 彡 。・ ,.。 ο
゚。・彡゚・。 / \ (´Д` ) ・ 。・゚・ 。・゚・。・゚・
゚。.__| | .| |_ / OO ヽ 。 ο ,.。 ο
||\  ̄ ̄ ̄ ̄ / .|指向| | 。・ 彡 。・゚・。・゚・ 。・゚・。・゚・ 。・゚・ 。・゚・ 彡
||\..∧_∧ (⌒\|__./ ./ 。・ 。・゚・。。・゚・。・゚・。・゚・。・゚・。彡・゚・゚ ・。・゚・。・゚
||. ( ) ~\_____ノ| ∧_∧ 。・゚・。・゚・。・゚・。・゚・。・゚・ 。・゚・。・゚・。・
/ 関 ヽ \| ( ) 彡・。・゚・。・゚・。・゚゚・。・゚・。・゚・ 。・゚・
| 数 ヽ \/ 手 ヽ. ・。・゚・。・゚・。・゚゚・。・゚・。・゚・ 。・゚・。
;:''`'';"| 型 |ヽ、二⌒) / .| 続 | | ' '';;:' ''゚;:;:''"'';"'' :"' '゚ ''゚;:;:'";
.| ヽ \∧_∧ (⌒\|_き./ / ・゚・。・゚・。・゚・。・゚・ 。・゚・。・゚・。・
・゚・。・゚・。・゚・。・゚・ 。・゚・。・゚・。・
0591デフォルトの名無しさん
2009/06/15(月) 12:10:29∧_∧ /___/|
( ´・ω・`) .| ∧_∧ !/!
/ \ |(´Д` ) |/|
.__| |____| |______..| OO/ヽ|/|
||\/___/| /| .| 指向 | | _____
||\|..∧_∧ .|/.| (⌒\|__./ ./ |/|/____/.|
||. | ( ) |/.| ~\_____ノ |.| || ∧_∧ |/|
|/ 関//|/.| \|.!/ !!( )... | /.|
|| 数/ ..|/.| \.!/ /手 ヽl/ |
|| 型// | |二⌒) /|.|...|続/ | ll/|
|.|// .| | ヽ\∧_∧ (⌒\|_き./ /.!
0592デフォルトの名無しさん
2009/06/15(月) 12:26:23>エディタでプログラムの一部をコピーして使えばいいのではないか。
エディタがコピペの履歴を覚えていて、コピー元のコードを書き換える
とコピー先も書き換えてくれるようなリファクタリングを実現している
のであれば考えても良い。
0593デフォルトの名無しさん
2009/06/15(月) 13:17:52いつ他人に書き換えられるか分からんようなもの誰が使うのだ。
0594デフォルトの名無しさん
2009/06/15(月) 13:33:00同様の修正を施すべき場所が分散して管理できなくなることをなぜ恐れないのか
0595デフォルトの名無しさん
2009/06/15(月) 13:52:580596デフォルトの名無しさん
2009/06/15(月) 19:08:34それはバージョン管理システムを使って解決すべきでは
0597デフォルトの名無しさん
2009/06/16(火) 00:29:480598デフォルトの名無しさん
2009/06/16(火) 00:31:17存在するんだよ。
0599デフォルトの名無しさん
2009/06/16(火) 01:12:59OO指向の片方のOは何の略なんだ
0600デフォルトの名無しさん
2009/06/16(火) 05:14:370601デフォルトの名無しさん
2009/06/16(火) 13:56:230602名無し@18歳未満の入場禁止
2009/06/16(火) 15:33:380603デフォルトの名無しさん
2009/06/16(火) 19:00:040604デフォルトの名無しさん
2009/06/16(火) 19:18:180605デフォルトの名無しさん
2009/06/16(火) 19:36:181. 型の名前A
2. 型の具体的な表現T
3. 型Tに対する操作の実装
4. 型の表現や操作を包み込む抽象化
OOと違って明確な定義がある。
0606デフォルトの名無しさん
2009/06/16(火) 19:40:34module Counter : sig
type t
val make : unit -> t
val inc : t -> t
val get : t -> int
end = struct
type t = int
let make () = 0
let inc x = x + 1
let get x = x
end;;
0607デフォルトの名無しさん
2009/06/16(火) 20:47:23リスコフ(手続きとデータのセット。原義。広義)なのか、
ストラウストラップ(ユーザー定義型。クラスとほぼ同義)なのか、
クック(型による抽象化。手続きはデータに内包させない(つまりクラスはNG)。狭義)なのか
くらいははっきりさせとかないと。
0608デフォルトの名無しさん
2009/06/16(火) 20:50:560609デフォルトの名無しさん
2009/06/16(火) 20:56:07クックでよろ。
0610デフォルトの名無しさん
2009/06/16(火) 21:00:56ttp://www.cs.utexas.edu/users/wcook/papers/OOPvsADT/CookOOPvsADT90.pdf
0611デフォルトの名無しさん
2009/06/16(火) 21:02:15無理読めない和訳してね
0612デフォルトの名無しさん
2009/06/16(火) 21:04:410613デフォルトの名無しさん
2009/06/16(火) 21:13:30>>606の定義はCookのADTでは無いが。
0614デフォルトの名無しさん
2009/06/16(火) 21:27:20え?違うの?違いが分かりません。
型と操作が含まれていて、それらを抽象化できるんじゃないの?
0615デフォルトの名無しさん
2009/06/16(火) 22:34:48> クック(型による抽象化。手続きはデータに内包させない(つまりクラスはNG)。
モジュールに手続きを内包させるのは違うんでないの?
0616デフォルトの名無しさん
2009/06/16(火) 23:07:53>>610ではADTによる型と操作を分けたlistの実装やそのシグネチャーが言及されています。
それに、複数ヶ所でMLの抽象データ型にも触れられており、
cookのADTは>>605,>>606と捉えて問題ないように(私には)見えます。
0617デフォルトの名無しさん
2009/06/16(火) 23:16:38これはADTと呼べないの?>>606と同じことを実現してるんだが。
Counterが型だからそれだけでアウト?
template <typename T>
struct Counter
{
T t;
T make() = 0;
void inc(T& t) {t += 1;}
int get(T& t) {return t;}
};
0618617
2009/06/16(火) 23:29:49クラスが駄目なのは分かったが、Cで以下のようなコードをCounter.cという
モジュールにしたら、それはADTと呼べない?
ただ、Counterは例えとして良くないな。
typedef some_type Counter;
Counter c;
Counter * make() {return malloc(sizeof(Counter));}
void inc(Counter *c) {*c += 1;}
Counter get(Counter *c) {return *c;}
0619デフォルトの名無しさん
2009/06/16(火) 23:32:44Counterが型だからという理由ではなく、>>605の2(型の表現)や4(型や操作の抽象化)が
ないので、ADTの定義からは外れると思います。
型を抽象化したのではなくパラメータ化したと言う方が正しいかと。
0620617
2009/06/16(火) 23:43:08Simula and C++ support both ADTs and PDA in the same framework; ...
とあるからC++でもADTを表現出来ると思うんだが、純粋なADTじゃないから
駄目なのか?
0621デフォルトの名無しさん
2009/06/16(火) 23:57:56すみません、C++には詳しくなくて分かりません。
でもたぶん、typeid演算子を使えばできるぜというくらいの意味じゃないでしょうか。
0622デフォルトの名無しさん
2009/06/17(水) 00:06:12>>610の論文は1990年頃に出たと思うんだが、当時のC++にtypeidは無かった気がする。
0623デフォルトの名無しさん
2009/06/17(水) 00:52:52ttp://gd.tuwien.ac.at/languages/c/c++oop-pmueller/node4.html
やっぱり型と操作の分離や外部への抽象化がポイント。
0624デフォルトの名無しさん
2009/06/17(水) 02:52:13だからリスコフとストラウストラップとクックのADTくらいはさくっと見分けがつく程度にはしておこうよ。
そうであれば、たとえば623のリンク先はストラウストラップの流れのADT(OOのサブセット)とすぐ分かるから。
http://publications.csail.mit.edu/lcs/pubs/pdf/MIT-LCS-TR-561.pdf
http://www.research.att.com/~bs/whatis.pdf
http://www.cs.utexas.edu/users/wcook/papers/OOPvsADT/CookOOPvsADT90.pdf
0625デフォルトの名無しさん
2009/06/17(水) 04:42:10いくつも同名の別定義を作るくらいなら別名にすればいいのに
0626デフォルトの名無しさん
2009/06/17(水) 09:53:16dateが、今日の日付を表すのか、単なる日付を表すのか、彼女といちゃつく日を表すのか
それを文脈から読み取れるようにしようとしているだけだろ
空気の読めないプログラマに、空気を読むプログラムをするように言ってるようなもんだからなぁ
0627デフォルトの名無しさん
2009/06/17(水) 17:24:200628デフォルトの名無しさん
2009/06/17(水) 18:36:390629デフォルトの名無しさん
2009/06/17(水) 19:10:320630デフォルトの名無しさん
2009/06/17(水) 19:55:41ところで、MLのモジュールシステムってのはどうなの?OOより使いやすいの?
クラスベースと違って型は型として組み合せて作れるので、
その点は見やすくていいかなと思ってる
0631デフォルトの名無しさん
2009/06/17(水) 20:13:58出来上がったシステムとは何の関係もない
使ってうまくものが動けば正解なんだと思う
問題領域に最適な手法を使うのが正しい道だろ?
俺的には、信号処理とかだとOOなデザインするより、
伝達関数とか状態方程式が飛び交ってくれた方が
分かりやすい
0632デフォルトの名無しさん
2009/06/17(水) 20:28:21まだADTが良くわからん。>>620にあるように、CookのOOPvsADTnの論文で
C++でもADTが実現可能とあるけど、誰かC++でCookの言うADTを表現してみてよ。
0633デフォルトの名無しさん
2009/06/17(水) 20:52:21http://www.research.att.com/~bs/whatis.pdf
の6ページにOOの方が有効な一例が載ってる。
0634633
2009/06/17(水) 20:54:07当然のことだが、どちらが有効かは場合によるから臨機応変に選択すればよい。
0635デフォルトの名無しさん
2009/06/17(水) 21:10:516ページ目の話はなんだかexpression problemの事を言っているように見える
まー、1991年だし、バリアントを加えるのにはOO有利ってことか。
0636デフォルトの名無しさん
2009/06/18(木) 00:03:55expression problemがモジュールシステムの弱点とは言えないと思う。
0637デフォルトの名無しさん
2009/06/18(木) 00:20:080638デフォルトの名無しさん
2009/06/18(木) 00:39:08ちなみに6ページ目の例をpolymorphic variantsで実装するとどうなるの?
0639デフォルトの名無しさん
2009/06/18(木) 07:40:570640デフォルトの名無しさん
2009/06/18(木) 07:54:17定義
ttp://www.daimi.au.dk/~madst/tool/papers/expression.txt
>>638
その解法など
ttp://www.math.nagoya-u.ac.jp/~garrigue/code/ocaml.html
ttp://d.hatena.ne.jp/osiire/20090516#1242456737
0641デフォルトの名無しさん
2009/06/18(木) 18:00:29自分の言葉で語れよ
0642デフォルトの名無しさん
2009/06/18(木) 18:10:120643デフォルトの名無しさん
2009/06/18(木) 18:27:590644デフォルトの名無しさん
2009/06/18(木) 18:31:21またキチガイが無駄な屁理屈こねてんのか
0645638
2009/06/18(木) 18:34:24やはりそれが定義だったのか。ググってすぐに出てきたのがそれだったから。
polymorphic variantsで継承&仮想関数オーバーライドとほぼ同様のことが
出来るのは分かった。ただ少し記述が面倒だな。あと拡張したモジュール名を
使う必要があるのも面倒というか。
どちらにもそれなりの良さがあるから一概にどちらが良いとは言えないが。
0646デフォルトの名無しさん
2009/06/18(木) 19:00:48>自分のオリジナルな文章が主(量的にも質的にも)であり、引用部分が従であること
(ちなみにこの文は法律なのでおk)
つまり、リンクだけレスは著作権法違反
0647デフォルトの名無しさん
2009/06/18(木) 19:03:340648デフォルトの名無しさん
2009/06/18(木) 19:06:40引用と参照の違いが理解できない人がいるのは、
とても滑稽だと思った。
0649デフォルトの名無しさん
2009/06/18(木) 19:21:32どうした?
かかってこいよ
0650デフォルトの名無しさん
2009/06/18(木) 19:25:37人の作った法なんて巨大になって捻じ曲げようぜ
0651デフォルトの名無しさん
2009/06/18(木) 20:51:30>polymorphic variantsで継承&仮想関数オーバーライドとほぼ同様のことが出来るのは分かった。
気持ちは分かるけど、オブジェクト指向の枠組で捉え直そうという試みは
理解を助けるための最初の一歩だけにしておいた方がいいですね。
もっと素直に書くと、expression problemを解決する鍵は、
- polymorphic variantsは複数の型になり得る(多相)ので、
基の型と拡張後の型の両方に属すことができる
- モジュールシステムは元々操作を拡張することができる
という二点で成り立っている訳です。
0652デフォルトの名無しさん
2009/06/18(木) 21:33:50気持ちの問題は関係なくて、元々の話はStroustrapの6ページ目の例を
polymorphic variantsでどう解決できるかを聞いていたのであって、
だからこそ継承&仮想関数による表現がどのように対応するのかを確認したわけ。
> - モジュールシステムは元々操作を拡張することができる
これは具体的にどういう意味?当然の話だと思うけれど。
0653デフォルトの名無しさん
2009/06/18(木) 21:45:41単なるリンクは、引用じゃありません。
リンクは、文献参照と同じです。
著作権的にはまったく問題ありません。
問題あるというのなら、判例か何かを出してください。
0654デフォルトの名無しさん
2009/06/18(木) 21:47:13土方は放置すればいいだろ
0655デフォルトの名無しさん
2009/06/18(木) 22:01:28勝手な介錯だな
0656デフォルトの名無しさん
2009/06/18(木) 22:03:570657デフォルトの名無しさん
2009/06/18(木) 22:15:32あぁ、誤解していました。すみません。
OOでは継承と仮想関数によって「種類を増やす」事をしていた訳ですので、
polymorphic variantsが同様の役割を担っているのはおっしゃる通りです。
あと、
>モジュールシステムは元々操作を拡張することができる
というのは、"新しい操作を加えることができる"の間違いでした。
OOではこれをやろうとすると、visitorパターンを使わなきゃいけなくなります。
で、visitorパターンを使うと今度は種類を増やせなくなる。
つまり、expression problemはC++やJavaでは解決できません。
0658デフォルトの名無しさん
2009/06/18(木) 22:25:23ttp://www.graco.c.u-tokyo.ac.jp/~nishi/semi/tm.2004-02-18.xhtml
これと比べれば、polymorphic variantsによる解法が如何に簡潔か分かると思う。
0659デフォルトの名無しさん
2009/06/18(木) 22:39:20途中から総称型がもてはやされた時点で確信に変わった
次第にOOはどんどん隅に追いやられ、やがて名前だけの存在になった
つまりOOは、OOであることをやめてしまったのだ
0660デフォルトの名無しさん
2009/06/19(金) 00:56:110661デフォルトの名無しさん
2009/06/19(金) 01:01:090662デフォルトの名無しさん
2009/06/19(金) 01:19:170663デフォルトの名無しさん
2009/06/19(金) 02:05:57その文体飽きちゃった
0664デフォルトの名無しさん
2009/06/19(金) 11:01:28template <typename T, typename C> class stack {
typedef T value_type;
typedef C container_type;
public:
virtual value_type top(void) = 0;
virtual void pop(void) = 0;
virtual void push(value_type) = 0;
private:
container_type _container;
}
0665デフォルトの名無しさん
2009/06/20(土) 00:05:370666デフォルトの名無しさん
2009/06/20(土) 04:08:070667デフォルトの名無しさん
2009/06/20(土) 08:29:23バリアントの意味が違う
どの型でも代入できる変数なんてキモいやつの事じゃないからね
0668デフォルトの名無しさん
2009/06/20(土) 09:48:290669デフォルトの名無しさん
2009/06/20(土) 10:30:47どこが間違ってるのか探すのが面倒で、静的型の意味がないと思った記憶がある
0670デフォルトの名無しさん
2009/06/20(土) 10:31:110671デフォルトの名無しさん
2009/06/20(土) 10:54:32おまえ全然分かってないな
0672デフォルトの名無しさん
2009/06/20(土) 10:55:07それは、継承の使い方を間違っているだけじゃないの?
0673デフォルトの名無しさん
2009/06/20(土) 11:23:44「いらないこともある」だな。
継承あった方が便利って時もある。
0674デフォルトの名無しさん
2009/06/20(土) 12:51:11Lispみたいに変数の型を無くして値に型を持たせたらいいかもな。
0675デフォルトの名無しさん
2009/06/20(土) 13:03:22> 個人的には、オブジェクト指向抽象化が必要だと思ったことは一度もない。 Common Lispは
> 恐ろしいほど強力なオブジェクトシステムを持っているが、私は一度もそれを使ったことがないん
> だ。ハッシュテーブルにクロージャを詰め込むとか、弱い言語だったらオブジェクト指向テクニッ
> クが必要だっただろうと思えることはたくさんやってきたけれど、CLOSを使う必要に迫られたこ
> とは無かった。
0676デフォルトの名無しさん
2009/06/20(土) 13:37:55それで設計変わっちゃうのってどうよ?
0677デフォルトの名無しさん
2009/06/20(土) 13:59:46継承の代わりになり得るのはバリアントじゃなくて多相バリアントだ
0678デフォルトの名無しさん
2009/06/20(土) 14:08:00要約すると
「LISPのOOはCLOSがあるけど結局クセが強すぎて怖くて使わなかった
考えてみたらおりゃのやる範囲じゃOOいらなかった」
0679デフォルトの名無しさん
2009/06/20(土) 14:12:510680デフォルトの名無しさん
2009/06/21(日) 10:27:22それ、exhaustive checkの警告を華麗にスルーしてるだろww
0681デフォルトの名無しさん
2009/06/21(日) 11:16:47静的型システムとは相性が悪いんだよ。
Objective-C みたいに、別々に存在してるほうがいいんじゃないの。
0682デフォルトの名無しさん
2009/06/21(日) 18:09:220683デフォルトの名無しさん
2009/06/21(日) 21:32:03>やっぱり、無制限に新しい型を作れるオブジェクト指向と、
>静的型システムとは相性が悪いんだよ。
相性以前に、型なんて何にも考えずに作った構文やセマンティクスの上に
おまけで型を入れようとするから、静的にならないんじゃないかな。
0684デフォルトの名無しさん
2009/06/21(日) 22:29:23例えば型システムの古いバージョンと新しいバージョンを連携させることもできる。
0685デフォルトの名無しさん
2009/06/21(日) 23:47:28>型システムをおまけとして分離する
型安全とか型推論ってその言語で定義される値や構文の上に定義されるものだから、
分離すること自体が困難そうにみえるのだけど。
型システムをおまけとして扱う関連情報源ありますか?
0686デフォルトの名無しさん
2009/06/22(月) 00:55:42Objective-Cの話だと思うが
動的型付けが気に入らないなら、C++/CLIとか調べてみれば
0687デフォルトの名無しさん
2009/06/22(月) 08:19:34アノテーション使うヤツなら太古の昔から色々提案されてるだろ。
0688デフォルトの名無しさん
2009/06/22(月) 19:37:19それって python じゃね?
まあスピードもメモリも気にしないってことなら
いいんじゃないかと思うが。
0689デフォルトの名無しさん
2009/06/22(月) 19:50:590690デフォルトの名無しさん
2009/06/22(月) 19:52:510691デフォルトの名無しさん
2009/06/22(月) 20:00:330692デフォルトの名無しさん
2009/06/22(月) 20:19:360693デフォルトの名無しさん
2009/06/22(月) 21:07:360694デフォルトの名無しさん
2009/06/22(月) 22:21:36物によっては、基底クラスやオブジェクト自身の型さえ変えられる。
でも、他人のソースを読むときは、まさにカオス。
0695デフォルトの名無しさん
2009/06/22(月) 23:16:480696デフォルトの名無しさん
2009/06/23(火) 00:13:550697デフォルトの名無しさん
2009/06/23(火) 01:01:180698デフォルトの名無しさん
2009/06/23(火) 02:45:55コメントとして書く事にしてるよ。
0699デフォルトの名無しさん
2009/06/23(火) 05:27:32静的型の型検査も、動的型のフレキシブルな記述も、両方とも捨ててる。
0700デフォルトの名無しさん
2009/06/23(火) 09:04:49なにその一見同意しそうで、いやちょっとまてよ?ん?となる文章は。
0701デフォルトの名無しさん
2009/06/23(火) 09:07:37型シグネチャが必要な言語でいいじゃんって思うけど
強い静的型のLLなんてない(強いていうならHaskell?)現実
0702デフォルトの名無しさん
2009/06/23(火) 09:30:480703デフォルトの名無しさん
2009/06/23(火) 09:31:090704デフォルトの名無しさん
2009/06/23(火) 11:28:49そうでなくても全体をパースしちゃうのも多いから
純粋なインタプリタなんて今や希少種じゃね?
0705デフォルトの名無しさん
2009/06/23(火) 11:46:470706デフォルトの名無しさん
2009/06/23(火) 12:31:30スクリプトモードののScalaとか?
Rubyで、コメントにアノテーションとして型を明示する書法無いの?
なんかのライブラリのHTMLドキュメント見た時に書いてあったから、
そういうツールが出回ってるのかと思い込んでたけど。
0707デフォルトの名無しさん
2009/06/23(火) 13:27:32ああ、シェルスクリプトやバッチファイルはそうだっけ。
0708デフォルトの名無しさん
2009/06/23(火) 13:54:25具体的に言語名は?
ruby,pythonなんか遅いからそんなことやってないと思うが。
0709デフォルトの名無しさん
2009/06/23(火) 13:58:32RubyもPythonも最初に全体をパースしてなかったっけ?
0710デフォルトの名無しさん
2009/06/23(火) 14:03:54抽象構文木を解釈しながら実行するなら、インタプリタと呼ぶべきかと。
PythonなんかだとJITコンパイルをする実装もあるが。
0711デフォルトの名無しさん
2009/06/23(火) 14:16:08ただ、どっちにしても全体を最初に見るワケだから
「静的型+型推論」をするのにコンパイル言語である必要は無いんじゃないのか?と言いたかった。
言葉足らず過ぎてすまん。
0712デフォルトの名無しさん
2009/06/23(火) 14:30:20> ruby,pythonなんか遅いからそんなことやってないと思うが。
${PYTHON}/Doc/glossary.rst
bytecode
Python source code is compiled into bytecode, the internal representation
of a Python program in the interpreter. The bytecode is also cached in
``.pyc`` and ``.pyo`` files so that executing the same file is faster the
second time (recompilation from source to bytecode can be avoided). This
"intermediate language" is said to run on a :term:`virtual machine`
that executes the machine code corresponding to each bytecode.
0713デフォルトの名無しさん
2009/06/23(火) 17:24:08>別に今のLLだって最初に全体をプリコンパイルしてるの多いし
ここに反応してレスしたんだ。多いのだったらいくらでも例をあげられるだろう。
ruby,pythonをあげるととたんにパースしているはないだろう。
もしそういうのがあれば使ってみたい。
>>712
マシン語にならないのにプリコンパイルと言われても他の言語になっているだけ。
0714デフォルトの名無しさん
2009/06/23(火) 17:33:18> マシン語にならないのにプリコンパイルと言われても
>>704はこの考え方が古いって言っているんだよね。
中間言語へコンパイルしてさえいないのはいまや希少。
> もしそういうのがあれば使ってみたい。
v8 javascript engine
構文木からいきなりx86に変換して実行。
eval関数がある言語なのに。
REPLでも同じようにx86に変換して実行する。
0715デフォルトの名無しさん
2009/06/23(火) 17:35:500716デフォルトの名無しさん
2009/06/23(火) 18:10:55そのまま動かす方がオーバーヘッドが大きい
0717デフォルトの名無しさん
2009/06/23(火) 18:13:04> eval関数がある言語なのに。
lisp 系は昔から native 吐くやつざらにあるじゃん
0718デフォルトの名無しさん
2009/06/23(火) 18:50:43V8のソースを少し見てみたが、本当に抽象構文木Tから直接マシン語を
出力してるな。アセンブリ言語に近い中間言語に落として最適化を
かけてからコード生成というアプローチだとレイテンシー等の問題が
出るってこと?
0719デフォルトの名無しさん
2009/06/23(火) 20:01:37ほとんど全てのLispはインタープリタも持ってるでしょ。
(Scheme実装のStarlinみたいな処理系もあるけど)
だからS式のまま実行できる。
v8はインタープリタはない。そこが違う。
>>718
二度手間だって事でしょ。
WebではJavascriptのコードはソースで提供されるわけで、
PythonみたいにILを外部ファイルに持っておけるわけじゃない。
だったらJIT一発で実行した方がいい。
それからプロパティアクセスを高速化するためにはJIT必須という考え方。
Cの構造体フィールドアクセスと同じコードになってる。
「コンパイラ・スクリプトエンジン」相談室スレに移動した方がいいかな?
0720デフォルトの名無しさん
2009/06/23(火) 20:03:300721デフォルトの名無しさん
2009/06/23(火) 20:36:250722デフォルトの名無しさん
2009/06/23(火) 20:41:37IR無しだと最適化が二度手間になると思うんだが、ターゲットCPUが
x86, x86_64, ARMだけだから何とかなっているのかもしれん。
というかLLVMなどを使うより高速なコード生成が出来るなら
やっぱりGoogleは凄いってことだな。
0723デフォルトの名無しさん
2009/06/23(火) 20:43:32ピープホール的な事をちょっとやってるだけで。
0724デフォルトの名無しさん
2009/06/24(水) 00:00:59OOPは規制対象になるね税金の無駄遣いだし
0725デフォルトの名無しさん
2009/06/24(水) 03:21:05自民党だと派遣マンセーでjavaを強制的に使わされそうだし
この際OOP規制で良いb
0726デャtォルトの名無bオさん
2009/06/27(土) 14:12:33俺 「そんなやりかたじゃ規格が満たせません」
某SE「今までこの方法で動かなかったものはないんだからこれでいいんだ」
… … …
規格書の読み方も知らんのか? > OO できる SE
0727デフォルトの名無しさん
2009/06/27(土) 15:04:520728デフォルトの名無しさん
2009/06/27(土) 18:34:56よくあることである
0730デフォルトの名無しさん
2009/06/27(土) 20:57:130731デフォルトの名無しさん
2009/06/27(土) 21:04:35IT詳しい人に聞いたがやっぱり
OOPは禁止だと言ってた
それってレガシーなんでしょって言ってたよ
0732デフォルトの名無しさん
2009/06/27(土) 22:45:160733デフォルトの名無しさん
2009/06/28(日) 10:09:490734デフォルトの名無しさん
2009/06/30(火) 14:16:49あっちこっちに散らかしてわかりにくくしたものなのですね
と言ってみる
0735デフォルトの名無しさん
2009/06/30(火) 16:14:110736デフォルトの名無しさん
2009/06/30(火) 16:15:24あって当然使えて当然
ただ使えるだけで威張ってるのは馬鹿
「レイヤーを使わないと絵が描けません」と威張る言語も馬鹿
0737デフォルトの名無しさん
2009/06/30(火) 19:47:190738デフォルトの名無しさん
2009/07/01(水) 00:44:29出始めてる。ソフトウェア産業に害しか及ぼさないということで
原則使用禁止を国レベルで採択する方向が強まってるね
0739デフォルトの名無しさん
2009/07/01(水) 00:46:190740デフォルトの名無しさん
2009/07/01(水) 10:39:35何言ってんのお前
若年性認知症か?
0741デフォルトの名無しさん
2009/07/01(水) 22:53:57>>740
>>740
>>740
0742デフォルトの名無しさん
2009/07/01(水) 23:46:220743デフォルトの名無しさん
2009/07/02(木) 00:03:010744デフォルトの名無しさん
2009/07/02(木) 06:53:060745デフォルトの名無しさん
2009/07/02(木) 11:14:110746デフォルトの名無しさん
2009/07/02(木) 13:40:09変態構文だらけになってしまったもんなぁ > C++
0747デフォルトの名無しさん
2009/07/02(木) 13:55:390748デフォルトの名無しさん
2009/07/02(木) 15:19:330749デフォルトの名無しさん
2009/07/02(木) 19:17:27とてもC++とは思えないコードになるからな。
0750デフォルトの名無しさん
2009/07/02(木) 19:21:29http://d.hatena.ne.jp/yaneurao/20090701
0751デフォルトの名無しさん
2009/07/02(木) 19:27:310752デフォルトの名無しさん
2009/07/02(木) 19:53:260753デフォルトの名無しさん
2009/07/02(木) 20:18:19組み込み寄りの人かと思った
0754デフォルトの名無しさん
2009/07/02(木) 20:30:460755デフォルトの名無しさん
2009/07/02(木) 21:09:13でも、実験言語としては非常に優れている。
プログラムとデータが渾然一体としているから、
どんな革新的な機能でも追加できる。
ただし、文法がS式なことだけ我慢すれば。
0756デフォルトの名無しさん
2009/07/02(木) 21:16:31具象構文は普通にパーサ書けばいいだけ。
LISPは元々は自然言語処理のために開発されたことを忘れないで><
0757デフォルトの名無しさん
2009/07/02(木) 22:12:540758デフォルトの名無しさん
2009/07/02(木) 23:27:19時々それを勘違いしてる奴が居る。
0759デフォルトの名無しさん
2009/07/02(木) 23:34:500760デフォルトの名無しさん
2009/07/03(金) 00:13:040761デフォルトの名無しさん
2009/07/03(金) 01:09:080762デフォルトの名無しさん
2009/07/03(金) 14:56:07今時RLISPかよ
0763デフォルトの名無しさん
2009/07/03(金) 15:26:450764デフォルトの名無しさん
2009/07/03(金) 16:07:140765デフォルトの名無しさん
2009/07/03(金) 16:26:120766デフォルトの名無しさん
2009/07/03(金) 23:15:270767デフォルトの名無しさん
2009/07/03(金) 23:31:13C言語でいいじゃん
0768デフォルトの名無しさん
2009/07/03(金) 23:51:48使いなれてしまうと日常的にCを使いたくなくなるな
つか、俺にとってはCは未だに高級アセンブラ、C++は超高級マクロアセンブラ
なんでスペシャル変数を導入しないんだろ >C++
0769デフォルトの名無しさん
2009/07/04(土) 00:02:520770デフォルトの名無しさん
2009/07/04(土) 00:43:46たいていのことはこなせる。
Cより複雑なことをしたい場合は、PerlとかRubyとかのスクリプト言語にするよ
0771デフォルトの名無しさん
2009/07/04(土) 05:10:49それがプログラミング言語設計一般で使われる概念名称だと思ってるのかwww
ひさしぶりに腹かかえたwwwww
0772デフォルトの名無しさん
2009/07/04(土) 07:44:150773デフォルトの名無しさん
2009/07/04(土) 08:25:34これが使用中にしょっちゅう落ちる。でメンテしてめったに落ちなくしてついでに
いろんな関数を作って高級アセンブラ並にしたんだが結局Cを使った方が楽で使わ
なかった。LISPはおれにとって楽チンどころか苦痛を与えるためにあるようんもんだ。
0774デフォルトの名無しさん
2009/07/04(土) 09:12:52CやVBでさえまだ満足に使えてないのに、
周りがどんどんOOに進んでいくので、落ちこぼれ感が半端ない。
技術的というより、精神的に追い詰められる。
0775デフォルトの名無しさん
2009/07/04(土) 09:34:280776デフォルトの名無しさん
2009/07/04(土) 09:39:41もしくは、怠慢でついて来れないだけ。
0777デフォルトの名無しさん
2009/07/04(土) 09:43:580778デフォルトの名無しさん
2009/07/04(土) 10:18:36これだけ普及&定着しまくってるんだから
何かしら捨てられない理由でもあるんでしょう
0779デフォルトの名無しさん
2009/07/04(土) 10:28:50それ以外で無理に使う必要あるか?
0780デフォルトの名無しさん
2009/07/04(土) 10:30:56品質が上がらない要因といわれている
0781デフォルトの名無しさん
2009/07/04(土) 11:00:56単純なプログラムには必要ないね
0782デフォルトの名無しさん
2009/07/04(土) 11:04:44すごい複雑だけど1行もOOP使ってないけどね
0783デフォルトの名無しさん
2009/07/04(土) 11:12:270784デフォルトの名無しさん
2009/07/04(土) 11:21:38VistaはカーネルのコードC++で書いて
失敗した。だから全部Cで書き直したよ
0785デフォルトの名無しさん
2009/07/04(土) 11:59:260786デフォルトの名無しさん
2009/07/04(土) 12:06:500787デフォルトの名無しさん
2009/07/04(土) 12:13:00そんなん言ったら大半の組み込みプログラムが非OOPだわ
0788デフォルトの名無しさん
2009/07/04(土) 12:13:19嘘言うなよ
LinuxはVFS周りのコードがOOPだ
0789デフォルトの名無しさん
2009/07/04(土) 12:25:43ソースみたけど全部Cで書いてあるけど?
0790デフォルトの名無しさん
2009/07/04(土) 12:27:16CでのOOPに決まってるだろ
0791デフォルトの名無しさん
2009/07/04(土) 12:34:060792デフォルトの名無しさん
2009/07/04(土) 12:40:47CにOOPなんてねーだろ
バカなのアホなの?
0793デフォルトの名無しさん
2009/07/04(土) 12:52:43GObjectが何か調べてから物を言えよカスが
0794デフォルトの名無しさん
2009/07/04(土) 12:58:34お前はまずOOPとは何かを学んだほうが良いぞ
OOPLはOOPをしやすくした言語であってOOPLじゃないとOOPができないワケじゃない
0795デフォルトの名無しさん
2009/07/04(土) 13:17:000796デフォルトの名無しさん
2009/07/04(土) 13:27:350797デフォルトの名無しさん
2009/07/04(土) 14:21:060798デフォルトの名無しさん
2009/07/04(土) 14:25:090799デフォルトの名無しさん
2009/07/04(土) 14:32:23LinusがC++嫌いなのはその通りだけど、そんな簡単なものでもない。
http://www.tux.org/lkml/index.html#s15-3
0800デフォルトの名無しさん
2009/07/04(土) 14:38:580801デフォルトの名無しさん
2009/07/04(土) 14:41:080802デフォルトの名無しさん
2009/07/04(土) 15:48:38そう言って、Cでオブジェクト指向プログラミングができるって
テクニックを公開しているやつをなんども見てるけど、つかえそう
なのって、カプセル化、抽象データ型くらいで、継承とか多態
までいくと「おいおい、それはムリがあるだろ」って感じのばっかり
だな。
ああいうの真に受けるやつがいるから、広めるのやめてほしい。
0803デフォルトの名無しさん
2009/07/04(土) 15:55:45知らずに人生を終えるのはちょっともったいないと思うよ。
0804デフォルトの名無しさん
2009/07/04(土) 15:56:370805デフォルトの名無しさん
2009/07/04(土) 16:03:17GPって何?ゴールドポイント?
0806デフォルトの名無しさん
2009/07/04(土) 16:07:17グレートプログラム
0807デフォルトの名無しさん
2009/07/04(土) 16:23:57C++ のジェネリックプログラミング:
アイデアは全部よその言語のパクリ, あの変態構文を除けば… … …
0808デフォルトの名無しさん
2009/07/04(土) 17:02:270809デフォルトの名無しさん
2009/07/04(土) 17:07:01GPといったら普通は遺伝的プログラミング(genetic programming)の方かと
0810デフォルトの名無しさん
2009/07/04(土) 17:09:080811デフォルトの名無しさん
2009/07/04(土) 17:10:36generative programmingってのもある
0812デフォルトの名無しさん
2009/07/04(土) 17:18:56は今後も戦力外通告されない「潰しの効く」言語の一つたりえる。Bjarne
Stroustrup は C++ の原作者として、プログラマが言語学習に投資した
時間を無駄にするような言語仕様の変更を加えないよう、絶妙のバランス
感覚で手綱をしめてる。C++ は次の改訂でさらに初心者にやさしい使い
やすい言語になるよ。
0813デフォルトの名無しさん
2009/07/04(土) 17:21:37それは多態じゃなくて高階関数な。
0814デフォルトの名無しさん
2009/07/04(土) 17:27:260815デフォルトの名無しさん
2009/07/04(土) 17:38:060816デフォルトの名無しさん
2009/07/04(土) 17:48:030817デフォルトの名無しさん
2009/07/04(土) 18:43:29一般開発では既に利用禁止が大半となっている
0818デフォルトの名無しさん
2009/07/04(土) 18:47:510819デフォルトの名無しさん
2009/07/04(土) 20:19:45w
0820デフォルトの名無しさん
2009/07/04(土) 20:21:23というオナニーなんだろうが
lispに比べればはるかに多いだろ
lispが使われて無いのはかける奴がいないからに他ならないわけで
0821デフォルトの名無しさん
2009/07/04(土) 21:56:18電子回路設計ではSystemCとかいうC言語の亜種が出てるのにな
0822デフォルトの名無しさん
2009/07/04(土) 22:04:31あれも、オブジェクト指向はなしで、
関数型を取り入れたって感じだな
0823デフォルトの名無しさん
2009/07/04(土) 22:09:56C言語の変な仕様バージョンが圧倒的に多い
みためC言語だけどC言語仕様にはそってないの
なんちゃって?C言語?っての?
0824デフォルトの名無しさん
2009/07/04(土) 22:27:490825デフォルトの名無しさん
2009/07/04(土) 22:33:280826デフォルトの名無しさん
2009/07/04(土) 22:47:45何でもできることで、かえって現実のプログラマの集団を
うまく統制できない言語になってしまった。
言語機能の一部を使用禁止する命令とか作ったほうがいいんじゃないか?
0827デフォルトの名無しさん
2009/07/04(土) 22:53:18実際構文解析・チェックツール使って
スタイルに合ってないヤツを書き直させてる現場もあるよ
0828デフォルトの名無しさん
2009/07/04(土) 22:53:51いやだからEUでC++0xの仕様採択中止になったしょ?
ほらEUだとソフトウェアのレベル計測する基準とかあるだろ
あれで軒並みC++は該当外になっている。
0829デフォルトの名無しさん
2009/07/04(土) 23:05:50へーそうなんだ。ソースどこ?
0830デフォルトの名無しさん
2009/07/04(土) 23:36:500831デフォルトの名無しさん
2009/07/05(日) 00:03:58予約語が増える。
0832デフォルトの名無しさん
2009/07/05(日) 00:57:590833デフォルトの名無しさん
2009/07/05(日) 01:45:33こういう感じのやつ?
http://ja.wikipedia.org/wiki/フリースタンディング環境
0834デフォルトの名無しさん
2009/07/05(日) 06:51:21SmalltalkよりもCのほうが桁違いに予約語が多いのだが?
0835デフォルトの名無しさん
2009/07/05(日) 07:03:120836デフォルトの名無しさん
2009/07/05(日) 07:10:350837デフォルトの名無しさん
2009/07/05(日) 07:54:31もともとCやC++はオペレータの数が少ないんだし
Lispなんてオペレータが多すぎて訳ワカメやぞ。
0838デフォルトの名無しさん
2009/07/05(日) 07:57:050839デフォルトの名無しさん
2009/07/05(日) 08:07:290840デフォルトの名無しさん
2009/07/05(日) 11:19:320841デフォルトの名無しさん
2009/07/05(日) 11:33:290842デフォルトの名無しさん
2009/07/05(日) 11:41:19似て非なる言語仕様が乱立するほうがよっぽど怖いぜ
0843デフォルトの名無しさん
2009/07/06(月) 00:44:35100を超えるのはあほだろ。
0844デフォルトの名無しさん
2009/07/06(月) 00:59:21それよりCのように名前空間が無い言語を使ってシンボル名が衝突する方が問題
0845デフォルトの名無しさん
2009/07/06(月) 02:52:550846デフォルトの名無しさん
2009/07/06(月) 08:16:05hoge-moge-hage-sage-pとか
名前空間の力は偉大だよ
0847デフォルトの名無しさん
2009/07/06(月) 08:21:590848デフォルトの名無しさん
2009/07/06(月) 09:29:560849デフォルトの名無しさん
2009/07/06(月) 10:00:05staticに指定して翻訳単位でウンタラ〜他のファイルからは見えなくなる〜だの何だの。
0850デフォルトの名無しさん
2009/07/06(月) 10:08:300851デフォルトの名無しさん
2009/07/06(月) 10:17:520852デフォルトの名無しさん
2009/07/06(月) 10:20:250853デフォルトの名無しさん
2009/07/06(月) 10:22:020854デフォルトの名無しさん
2009/07/06(月) 11:02:07でも struct tm tm; とか、一瞬「あれっ?」と思う。
0855デフォルトの名無しさん
2009/07/06(月) 14:13:29名前空間があるから関数や変数に名前がつけれるんだろ アホ ボケ カス
0856デフォルトの名無しさん
2009/07/06(月) 14:41:050857デフォルトの名無しさん
2009/07/06(月) 14:55:490858デフォルトの名無しさん
2009/07/06(月) 15:06:48もちろんBrainf*ckとか名前空間を持たない言語もある
0859デフォルトの名無しさん
2009/07/06(月) 15:13:490860デフォルトの名無しさん
2009/07/06(月) 15:15:160861デフォルトの名無しさん
2009/07/06(月) 17:41:48× Cでは名前空間は1st class objectです。
言語要素の有無と1st classかどうかを区別できないアフォが大杉。
0862デフォルトの名無しさん
2009/07/06(月) 17:47:380863デフォルトの名無しさん
2009/07/06(月) 17:50:13名前空間を返す関数がかけたり
名前空間を合成した名前空間を作れたりすんの?
0864デフォルトの名無しさん
2009/07/06(月) 18:04:51これに属する要素はプログラム内部での使用に関する制約が
他の集まりに属する要素より少ないってことだけしか述べてないのに
「〜はfirst class *だから〜(キリッ」とか、暗黙の了解が無ければ言えないよな
そんな前提を設けておきながら
「Cに名前空間が無いから云々」について文意を読み取らないで噛み付くなんてちゃんちゃらおかしいわ
0865デフォルトの名無しさん
2009/07/06(月) 18:08:25スコープと名前空間の区別ができない子?
0866デフォルトの名無しさん
2009/07/06(月) 18:10:25> 名前空間を変数に入れたり
> 名前空間を返す関数がかけたり
C ではともかく、Smalltalk とかでなら普通にできるだろ
0867デフォルトの名無しさん
2009/07/06(月) 18:14:290868デフォルトの名無しさん
2009/07/06(月) 18:17:37Smalltalkだと、
> 名前空間を変数に入れたり
> 名前空間を返す関数がかけたり
> 名前空間を合成した名前空間を作れたりすんの?
どれも普通にできます。
st80ならSystemDictionaryクラスのインスタンスSmalltalk、
今のVisualWorksならNamespaceクラスのインスタンスが
名前空間のオブジェクトです。
0869デフォルトの名無しさん
2009/07/06(月) 18:18:56○Cにnamespaceという文法はありません。
○ウィキペディアの名前空間という項目でもCには無いと記述されています。
0870デフォルトの名無しさん
2009/07/06(月) 18:19:070871デフォルトの名無しさん
2009/07/06(月) 18:21:54というレベルの「名前空間」を持って、
「Cに名前空間がある」としてみせるのつまらんすぎ。脱力する。
0872デフォルトの名無しさん
2009/07/06(月) 18:23:20普通に考えればCにはC++のnamespace相当のものが存在しないって分かるだろうが
0873デフォルトの名無しさん
2009/07/06(月) 18:25:20初心者「へー」
中級者「アホか?」
上級者「いずれにせよくだらん」
0874デフォルトの名無しさん
2009/07/06(月) 18:35:16シンボルテーブル上での名前解決のタイミングの問題。
もちろんスコープとは全く別の問題。
0875デフォルトの名無しさん
2009/07/06(月) 19:06:39だからあれほどWikipediaがソースとか(ry
0876デフォルトの名無しさん
2009/07/06(月) 21:10:390877デフォルトの名無しさん
2009/07/07(火) 00:16:32いろいろあって、独学でなんとかActionScriptのオブジェクト指向を理解した。
でも独学の為か、長文のプログラムでカスタム(定義)クラスがちょっと多くなると、
ソースからプログラムの内容を把握することが難しくなって、困ってた。
「本職のプログラマの人ってすごいな!こんな長文ソースを簡単に読めて書くことも
できるんだろうなっ!」て思ってた。
で、本職プログラマの友人ができたので訊いたら、「ソースから内容は読む事はしないよ。
大体仕様書とか、クラス図とかみれば一発で、その内容を理解できる。」という。
それは、すごいなと思った。
クラス図ってなんだろ。調べてみると「UML」といわれるものみたい。
それで2ちゃんの皆さんに伺いたい。クラス図とか「UML」の習得方法について、
独学でできるものか?習得は難しいのか?
ちなみに「ActionScript」以外の言語は全く知識ありません。
どうぞ宜しくお願いします。
0878デフォルトの名無しさん
2009/07/07(火) 00:19:330879デフォルトの名無しさん
2009/07/07(火) 00:39:46>大体仕様書とか、クラス図とかみれば一発で、その内容を理解できる。」という。
この時点ですげー偏った人間なのは間違いない
0880デフォルトの名無しさん
2009/07/07(火) 01:09:49笑うところですか?
0881デフォルトの名無しさん
2009/07/07(火) 01:13:38その友人の言う事は話半分に聞いといた方がいい。
0882デフォルトの名無しさん
2009/07/07(火) 01:53:28大規模なプロジェクトの場合、ソースだけでプログラムの内容を
把握しているわけではないでしょ。
何か、フロー図とか。そのクラス図とか、図示できるもので把握
しているんでないんですか?
プログラムの全体構造を理解できる方法、整理できる方法があるのなら、
それを勉強したいと思ってます。
0883デフォルトの名無しさん
2009/07/07(火) 01:56:00独学でしょ。
独学で習得できないのなら、いくら高い学校とかセミナー行っても無駄。
0884デフォルトの名無しさん
2009/07/07(火) 02:01:02見るだけなら、決まりごとさえいくらか覚えてしまえば見て意味を理解するのは簡単。
ただ、図に記述されていること以上のことを知りたければソースコードや仕様書見るしかない。
0885デフォルトの名無しさん
2009/07/07(火) 02:11:56大規模なプログラム=長いプログラムではないのですよ
適切に分割して開発すれば、複雑さの爆発は防げるのです
0886デフォルトの名無しさん
2009/07/07(火) 02:13:02ActionScriptのUML教本は無いようなのでJavaの本で勉強します。
(JavaScriptの教本も無さそうだし。。)
0887デフォルトの名無しさん
2009/07/07(火) 02:17:26ありがとうございます。
そのあたりの、プログラムの約束事を知らずに、ActionScriptを
独学してきたので、ちょっとつらいとこあります。
0888デフォルトの名無しさん
2009/07/07(火) 06:59:48心配するな。苦労してマスターしたことは決して無駄にならない。
0889デフォルトの名無しさん
2009/07/07(火) 07:21:24ソースなんて100万ステップでも数時間で理解できるけどなw
0890デフォルトの名無しさん
2009/07/07(火) 08:23:53宣伝乙
0891デフォルトの名無しさん
2009/07/07(火) 08:26:42そんな場合のクラス図って役に立つんだろうか
てか関数プログラミングとクラス図ってみずとあぶら?
0892デフォルトの名無しさん
2009/07/07(火) 13:28:46JIS X 3010 でも「名前空間」として
・ラベル名
・構造体、共用体、列挙体のタグ
・構造体、共用体のメンバ
・その他の識別子
が規定されているわけだが。
>>877
>独学でできるものか?習得は難しいのか?
言い訳はいいから先ずやれよ。
0893デフォルトの名無しさん
2009/07/07(火) 18:32:197.3 Namespaces
とあるんだがなw
0894デフォルトの名無しさん
2009/07/07(火) 18:33:08> ○ウィキペディアの名前空間という項目でもCには無いと記述されています。
プログラミング言語関係はレベルの低いものが多い。特に日本語。
0895デフォルトの名無しさん
2009/07/07(火) 18:35:09どっちも車両な訳だがと開き直られた気分。
0896デフォルトの名無しさん
2009/07/07(火) 18:48:360897デフォルトの名無しさん
2009/07/07(火) 19:15:440898デフォルトの名無しさん
2009/07/07(火) 19:28:07で?
0899デフォルトの名無しさん
2009/07/07(火) 21:25:05データを扱う段階では全くその力を発揮できない。
データモデル主体の設計をなぜ出来ない!!!>ばかちん!
0900デフォルトの名無しさん
2009/07/07(火) 22:46:580901デフォルトの名無しさん
2009/07/07(火) 22:57:43手続きのみでデータ構造を定義
(define (cons x y)
(define (dispatch m)
(cond ((= m 0) x)
((= m 1) y)
(else "error")))
dispatch)
(define (car z) (z 0))
(define (cdr z) (z 1))
初めて見たときは目からウロコが漏れた
0902デフォルトの名無しさん
2009/07/07(火) 22:59:22ここのところは関数型(関数指向とは呼ばないよね?)が流行るよって空気だね。
MSがF#をリリースする事で何か流れが変わるんだろうか?
0903デフォルトの名無しさん
2009/07/07(火) 23:01:02ウザ
上から下まで眺めないと構造がわからないってウンコじゃん
0904デフォルトの名無しさん
2009/07/07(火) 23:39:540905デフォルトの名無しさん
2009/07/07(火) 23:40:030906デフォルトの名無しさん
2009/07/07(火) 23:41:190907デフォルトの名無しさん
2009/07/07(火) 23:59:42言いたい奴には言わせとけ
0908デフォルトの名無しさん
2009/07/08(水) 07:17:290909デフォルトの名無しさん
2009/07/08(水) 18:52:28主に分析設計セミナー方面の人達ね。
0910デフォルトの名無しさん
2009/07/08(水) 18:57:53そういう人達って今何をやってるんだろうか
0911デフォルトの名無しさん
2009/07/08(水) 19:10:28リサイクル事業なんだよ
元手なし
0912デフォルトの名無しさん
2009/07/08(水) 19:10:550913デフォルトの名無しさん
2009/07/08(水) 19:22:29って言ってた人達と方向性は同じだな
0914デフォルトの名無しさん
2009/07/08(水) 19:22:450915デフォルトの名無しさん
2009/07/08(水) 19:26:220916デフォルトの名無しさん
2009/07/08(水) 19:29:56つ インターネット2
ttp://e-words.jp/w/E382A4E383B3E382BFE383BCE3838DE38383E383882.html
0917デフォルトの名無しさん
2009/07/08(水) 19:42:560918デフォルトの名無しさん
2009/07/08(水) 20:51:290919デフォルトの名無しさん
2009/07/08(水) 21:00:17監督の強い希望って書いてあるだろ!
0920デフォルトの名無しさん
2009/07/09(木) 07:36:33あの人達の不幸なのは、
自分達がOOブームをつくった、とか、
俺は良い技術を見分ける目を持っている、とか、
そういうカンチガイをしているところ。
0921デフォルトの名無しさん
2009/07/09(木) 09:37:220922デフォルトの名無しさん
2009/07/09(木) 09:44:180923デフォルトの名無しさん
2009/07/09(木) 10:25:09昨今のコメント、トラックバック送信ができるBlogの違いみたいなものじゃね?
0924デフォルトの名無しさん
2009/07/09(木) 10:37:010925デフォルトの名無しさん
2009/07/09(木) 10:55:26対話がWeb2.0
簡単な話は、2chはWeb2.0
0926デフォルトの名無しさん
2009/07/09(木) 11:47:130927デフォルトの名無しさん
2009/07/09(木) 12:51:01一緒になったのが2.0って事なんじゃね?
で、それを実現する技術がAJAXとかFlashみたいな
0928デフォルトの名無しさん
2009/07/09(木) 12:59:040929デフォルトの名無しさん
2009/07/09(木) 12:59:340930デフォルトの名無しさん
2009/07/09(木) 13:58:24はっきりとしない分、価値を付ける余地があるというわけだな
0931デフォルトの名無しさん
2009/07/09(木) 14:40:10価値じゃなくて煙に巻くだろ
0932デフォルトの名無しさん
2009/07/09(木) 18:31:58対話が2.0と言いつつ掲示板は1.0だと言われる不思議
0933デフォルトの名無しさん
2009/07/09(木) 18:41:10アジアの片隅にあるとWeb1.0。
0934デフォルトの名無しさん
2009/07/09(木) 18:45:120935デフォルトの名無しさん
2009/07/09(木) 19:20:092ちゃんはシリコンバレーにサーバーがあるから2.0なのか
0936デフォルトの名無しさん
2009/07/09(木) 19:21:580937デフォルトの名無しさん
2009/07/09(木) 21:24:39ググル気もないのでどうでもいいですけどねw
0938デフォルトの名無しさん
2009/07/09(木) 21:42:180939デフォルトの名無しさん
2009/07/09(木) 23:07:44消費税もなくすしOOPもなくしてくれるって
確約してくれたよ
0940デフォルトの名無しさん
2009/07/11(土) 03:54:350941デフォルトの名無しさん
2009/07/11(土) 06:44:09開発言語の世界はどういう影響を受けるんだろう。
とりあえずブラウザとの融和性の低いコンパイラ型の
言語は衰退かな?
難解で複雑なC++なんかが消えてくれるのは
いいことだと思う。
0942デフォルトの名無しさん
2009/07/11(土) 07:38:22関数型言語ってのが使えるようになればかっこいいの?
0943デフォルトの名無しさん
2009/07/11(土) 07:52:38こいつらはクラウドのサーバサイドのOSまで全部スクリプト言語で書く気かと。
0944デフォルトの名無しさん
2009/07/11(土) 08:18:240945デフォルトの名無しさん
2009/07/11(土) 08:19:270946デフォルトの名無しさん
2009/07/11(土) 08:22:060947デフォルトの名無しさん
2009/07/11(土) 08:23:48重要なのはデータサーバ側だろ。
3つのメジャーなデータサーバが誕生する影には、
「着眼点はいいけど、たまたま流行しなかった」が30は存在する。
「残念な」データサーバは300を越える。
クラウドのクライアントサイドなんかより、こっちのサーバサイドのほうが
ずっと仕事量を稼げるのは言うまでもないw
0948デフォルトの名無しさん
2009/07/11(土) 11:14:15javaみたいにVMの上でバイナリーが走るコンパイラ言語だと思う。
たぶんErlang...みたいな
0949デフォルトの名無しさん
2009/07/11(土) 11:23:470950デフォルトの名無しさん
2009/07/11(土) 11:34:280951デフォルトの名無しさん
2009/07/11(土) 11:43:28クラウドはやらないだろ
0952デフォルトの名無しさん
2009/07/11(土) 11:48:420953デフォルトの名無しさん
2009/07/11(土) 12:40:380954デフォルトの名無しさん
2009/07/11(土) 12:49:22自分が興味ある分野カーネルとかなら当然知識豊富なんでしょうけど、話題が専門分野から少しでもずれるととたんにバカ丸出しのタコになっちゃってますね。
遠くから眺めてても笑えるんですけど。
liuxの次のマスコットはタコですか?
0955デフォルトの名無しさん
2009/07/11(土) 12:53:260956デフォルトの名無しさん
2009/07/11(土) 14:22:07まさにゆでダコだな(笑い笑い)
オッサンの時代は終わったんだから、もう死んだほうがいいよ
0957デフォルトの名無しさん
2009/07/11(土) 15:14:400958デフォルトの名無しさん
2009/07/11(土) 16:57:34先ずその「クラウドなんちゃら」が世の中のシステムすべてに
適用可能だと思っている脳足りんが衰退するでしょうね。
0959デフォルトの名無しさん
2009/07/11(土) 16:59:39すべてに納得だ
0960デフォルトの名無しさん
2009/07/11(土) 17:12:41人同士の話じゃなくね?
0961デフォルトの名無しさん
2009/07/12(日) 00:34:160962デフォルトの名無しさん
2009/07/12(日) 07:09:28>>3-4
の流れで壮大に噴いたw
この板大丈夫か?
0963デフォルトの名無しさん
2009/07/12(日) 08:07:25ライブラリは少なくともインターフェースがオブジェクト指向的であればよく
実装はドロドロでも構わないというかそうなってるケースがまだまだある
0964デフォルトの名無しさん
2009/07/12(日) 08:18:010965デフォルトの名無しさん
2009/07/12(日) 08:27:42オブジェクト指向が出る幕はない。
0966デフォルトの名無しさん
2009/07/12(日) 10:27:510967デフォルトの名無しさん
2009/07/12(日) 10:33:17日曜の朝っぱらから嘘乙w
0968デフォルトの名無しさん
2009/07/12(日) 10:38:57たいていオブジェクトを返してくる。
0969デフォルトの名無しさん
2009/07/12(日) 11:22:560970デフォルトの名無しさん
2009/07/12(日) 15:41:16↓↓↓↓ さあ、どうぞ! ↓↓↓↓
0971デフォルトの名無しさん
2009/07/12(日) 19:09:520972デフォルトの名無しさん
2009/07/12(日) 19:21:11別にこれは恥かしいことじゃないから、変に肩肘張ってる方が滑稽になる
0973デフォルトの名無しさん
2009/07/12(日) 19:23:580974デフォルトの名無しさん
2009/07/12(日) 23:55:24967じゃないけど横槍
OO系の言語しか使ったことない人はOOなライブラリ以外想像つかないかな
例えばocamlgraphのドキュメント(http://ocamlgraph.lri.fr/doc/)と実装を
読んでみると、ファンクターってこうやって使うと便利なんだと分かるよ
0975デフォルトの名無しさん
2009/07/13(月) 00:01:040976デフォルトの名無しさん
2009/07/13(月) 00:59:07ttp://practical-scheme.net/gauche/man/gauche-refj_69.html#SEC200
OO使ってないけど立派に中身どろどろ&インターフェイスすっきりというライブラリです
0977デフォルトの名無しさん
2009/07/13(月) 05:27:570978デフォルトの名無しさん
2009/07/13(月) 07:25:19で、ocamlgraphの最初のoの字は何の略?
0979デフォルトの名無しさん
2009/07/13(月) 09:04:330980デフォルトの名無しさん
2009/07/13(月) 09:05:33OCamlの最初のOの字はObjectの略だけど
それをもってしてocamlgraphがオブジェクト指向なライブラリだと言いたいなら、
ソースコードを読んでから言ってね
objectは一つも使ってないから
嘘だと思うならgrep object *.mlしてごらん
0981デフォルトの名無しさん
2009/07/13(月) 09:14:050982デフォルトの名無しさん
2009/07/13(月) 09:24:480983デフォルトの名無しさん
2009/07/13(月) 10:12:17>別にこれは恥かしいことじゃないから
そうかなあ。
0984デフォルトの名無しさん
2009/07/13(月) 18:30:25オブジェクト指向を全く使っていないものが
過半数であることの証明、まだ〜?
話の発端はこれだよな? ↓
>>966
> コンポーネント指向の実装の多くがオブジェウト指向を採用している現実について
0985デフォルトの名無しさん
2009/07/13(月) 20:09:25自分から話そらしたい奴って
"発端は"ってすぐ言うね
0986デフォルトの名無しさん
2009/07/13(月) 20:31:41なっちゃって どうするの
完
0987デフォルトの名無しさん
2009/07/14(火) 01:13:570988デフォルトの名無しさん
2009/07/14(火) 01:23:33アンチOOってそんなのばっかw
0989デフォルトの名無しさん
2009/07/14(火) 01:52:01なんとかのガイドラインに
おっと誰か来たようだ
0990デフォルトの名無しさん
2009/07/14(火) 01:53:37だいなしwww
拉致されてくるwwww
0991デフォルトの名無しさん
2009/07/14(火) 10:13:570992デフォルトの名無しさん
2009/07/14(火) 10:38:230993デフォルトの名無しさん
2009/07/14(火) 20:06:530994デフォルトの名無しさん
2009/07/14(火) 20:09:510995デフォルトの名無しさん
2009/07/14(火) 21:14:350996デフォルトの名無しさん
2009/07/15(水) 00:37:37消えてなくなれよ >オブジェクト指向 part.4
http://pc12.2ch.net/test/read.cgi/tech/1243827025/
0997デフォルトの名無しさん
2009/07/15(水) 00:42:53それpart.3だぞ
0998デフォルトの名無しさん
2009/07/15(水) 01:01:490999デフォルトの名無しさん
2009/07/15(水) 01:03:31age
1000デフォルトの名無しさん
2009/07/15(水) 01:11:21消えてなくなれよ >オブジェクト指向 part.4
http://pc12.2ch.net/test/read.cgi/tech/1233076902/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。