消えてなくなれよ >オブジェクト指向 part.3
このスレッドは天才チンパンジー「アイちゃん」が 言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。 京都大学霊長類研究所
でもライブラリはオブジェクト指向で書かれている方が圧倒的に使い易いのは確かかな。
ライブラリがどの言語で書かれていようが オブジェクトファイルなってしまえば関係ないわけだが
京都大学はどこまで研究熱心なんだよ・・・
8 :
デフォルトの名無しさん :2009/06/01(月) 20:57:39
オブジェクトはすべて非同期に動くべき。
9 :
デフォルトの名無しさん :2009/06/01(月) 20:58:38
ナンデ?
>>8 全てがオブジェクトな言語だと
1+1でもスレッドが起動されることになるが…
なんという無駄
>>10 >>8 の肩を持ちたいとは思わんが
非同期 = スレッド
ってのは、ちゃうと思う
つ 遅延評価
遅延評価と非同期と…ハード??
オブジェクトって関数より再利用しにくいのではないだろうか オブジェクトでthisコンテキストにアクセスできるようになったのと引替えに 再利用のために、関数なら引数のことだけ考えれば良かったが オブジェクト単位で再利用を考えない意図いけないようになった。 そのため、継承・仮想メソッド・インタフェース・デザインパターン・ジェネリック などのテクニックでその欠点を補っているのではないだろうか。
>>14 そんな元レスと話の絡まないレスでは意味がわからん
オブジェクトと関数を比べるのはバランスが悪い。 比べるなら、 片やオブジェクト郡、 片や関数郡とそれに渡されるであろうパラメータ郡。 そう考えると、再利用がどうかはさておき、 オブジェクトを中心にすえて考えていくほうが、 少なくとも、「散らかってない」と思う。個人的に。
まだオブジェクト指向で再利用とか言ってる奴がいるのか。
20 :
デフォルトの名無しさん :2009/06/01(月) 22:40:58
>>10 すべてオブジェクトにするからおかしくなる。
そんなのは理論屋がやってろ。
メッセージ(メソッド)が規格化されてないからいけない。 メッセージに使える単語を制限したらどうか。 オブジェクト指向じゃなくなるか。
天才チンパンジー アイちゃんって2番にしか出てこないのか さっさと埋めれば良かった
python のリストや辞書型くらい整備してくれてりゃ クライアントとしては使いやすいとは思うけどね。 まあ速度とか気にしだせば結局再利用なんて無理でしょ。
再利用が無理と言い切るのもなんだかな 魔法のように何でも再利用できる!みたいなのは違うのは確かだが
迷った時は両方! オブジェクト指向な関数型言語のocaml使えw
再利用しないからwww
>>18 再利用の単位が関数よりも大きいだけと言うことか
オブジェクト指向のメリットって理解のしやすさと言うことだけ?
>>23 ホットスポットの解析もせずにライブラリに文句をいう厨房ですか?
>>27 理解のしやすさ、というかなんというか。
メリットは色々あるんじゃないかな。
オブジェクトという単位でモジュール化できて、
内部構造としての、変数の表現、メソッドの実装を隠す。
んで、そのオブジェクト郡のインタフェースには関連が見出せたりして、
実行時にはポリモーフィズムで一括して扱える。
あくまで、オブジェクト郡の相互作用で作っていく。
OOPでの再利用云々は、設計の正しさの拠ってると思われる。
再利用しやすい単位で、使用される文脈に想定をおいたりせず、
他のオブジェクトを無闇に知っていたりせず、うまいこと作る。
逆に、そこんとこをきちんとしてないとうまく再利用できないだろうし、
それもってOOPの力不足としてしまうなら、なんか違う気がする。
明白な特性をひとつだけ与えられたクラスは長持ちすると思う。
特性があいまいだったり、コブが着いてたりすると、弱いと思う。
無駄が多いですよね
100円節約するために1000円掛けるようなところがあるよね
業務用プログラムならばそれでいいんだよ。 運用費を100万円削るために開発費1000万円上乗せすればいい。
>20 そういや、Javaで基本型がオブジェクトじゃないのは、現在の視点で見ても、 良い判断だったんだろうか?
こんなモノ作るのになんで1年もかかるんだよと思うことは多々ある。 俺なら1週間で作れるモノを。
最初一週間でできるよって思ってたのが、一年たっても終わらないのはよくあること。
それは要はやる気が持続するかどうか だけなんじゃねーの
コロンブスの卵だな 誰にでも出来るのに誰もやる気を出さない
その点東大生は優秀だよな。 つまらない受験勉強を継続的にこなしてきたんだから。 途中で飽きて投げ出すようなやつがFランに行くんだよな。 継続性ある性格が成功を生み出すんだよ。
と・・こんなことを書くと、「俺は1ヶ月勉強しただけで東大受かりましたがなにか」とか言ってくる奴がでてくるんだよな・・ 別にイレギュラーを探してるわけじゃないので^^;
>>37 コロンブスの卵は、そんな話じゃないだろwww
随分と安っぽい卵だなぁ
HaskellやOCaml、Erlangなどには対話環境があるけど OOだと対話環境って無いし、あってもほとんど意味ないよな 関数型なら一行でかける関数作りまくればいいだけだし、無名関数も書きやすいから エディタすら無しでいろいろできるわ。 間違いなくこれらは学習のコストと効率とモチベーションに大きく影響するね。
つ Smalltalk
pythonてOO系の言語じゃないの?
スクリプトとOOPの良いトコ取り
>>42 その場でがしがし付け足していけるのは楽そうだなと思うけど、
そういうコーディングしてても、保守は大丈夫なの?
関数型言語使ったこと無いから感覚がわからんけど。
>>42 python, ruby (irb), CINTなど色々あるのを知らないのか?
関数型言語でもToplevelをそのまま使うなんて面倒なことはしないで
Emacsのmajor-modeを使ったりするのが普通だと思うが。
対話型環境のメリットって関数の仕様を調べたい時とかにちょこっと実験する程度じゃないの? rubyのirbとか普通に使えるよ。 OOP言語だと役に立たないって意味分からんね。 まさかOOPの概念を対話型環境で勉強したいって言ってんのかな
要は、IDEのデバッグ環境に対抗して 対話環境を関数型パラダイムで理論武装したいんだと思う
関数型言語が好きでML(SML, OCaml)を日頃使ってるが、ことさらOOを貶めるのも どうかと思う。特にC++などの手続き型言語においては、OOを使わない場合と比べて メンテナンス性が向上するのは明らかだし。
静的型のコンパイル言語であるScalaやってますが、ちょっとした確認なら対話型環境でやってますよ。 言語と実行環境って、分けて議論するべきものじゃないのかな?
そりゃOOとOOAとOOPと手続き型が一緒に語られるこんなスレじゃ、ポイズン
>>53 なんで区別したいの?
話聞いてやるから詳しく話してみろ
>>53 OOとOOAとOOPと手続き型を全部厳密に定義してみろよ
お前が先に定義しろよカス
>>57 俺等は違いなんてどうだっていいもんw
全部同じぃ〜で問題ないよw
はぁ?厳密に区別する必要は無いと思っているから定義する必要も無し。 一緒に語られたくなかったら定義しろよってことだ。その程度も分からんか?
オブジェクト指向には厳密な定義は無いんじゃないかな。
>>59 いや、だから俺等はOO,OOA,OOPに違いはないよ組でいいんだろ?
62 :
59 :2009/06/03(水) 00:40:06
ひどい自演を見た
どれが自演なんだ?
ゴガギーン
ドッカン
m ドッカン
=====) )) ☆
∧_∧ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( )| |_____ ∧_∧ < おらっ!出てこい
>>53 「 ⌒ ̄ | | || (´Д` ) \___________
| /  ̄ | |/ 「 \
| | | | || || /\\
| | | | | へ//| | | |
| | | ロ|ロ |/,へ \| | | |
| ∧ | | | |/ \ / ( )
| | | |〈 | | | |
/ / / / | / | 〈| | |
/ / / / | | || | |
/ / / / =-----=-------- | |
雑魚ばかりだなこのスレ 俺の話についてこれる奴がいない
よし何か話せ
簡単なエディタなら機械語で書けるぜ
>簡単なエディタで機械語が書けるぜ は?
え?
ゴガギーン
ドッカン
m ドッカン
=====) )) ☆
∧_∧ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( )| |_____ ∧_∧ < おらっ!出てこい
>>67 「 ⌒ ̄ | | || (´Д` ) \___________
| /  ̄ | |/ 「 \
| | | | || || /\\
| | | | | へ//| | | |
| | | ロ|ロ |/,へ \| | | |
| ∧ | | | |/ \ / ( )
| | | |〈 | | | |
/ / / / | / | 〈| | |
/ / / / | | || | |
/ / / / =-----=-------- | |
そのオブジェクト必要?みたいな
オブジェクト指向と直接関係ないけどマルチスレッドが扱い易い言語が欲しい。
C#
77 :
デフォルトの名無しさん :2009/06/04(木) 07:28:52
最近、でかいこと言い放つ割に逃亡する奴が多いな
昔からだろ
顔が真っ赤な人がいますね
CWニコルさんですね
いまならへび、かめの卵と幼稚園の防止は俺のもの
>>73 |┃三 / ̄\
|┃ | |
|┃ \_/
ガラッ. |┃ |
|┃ ノ// ./ ̄ ̄ ̄ \
|┃三 / ::\:::/:::: \
|┃ / <●>::::::<●> \
|┃ | (__人__) |
|┃三 \ ` ⌒´ /
|┃三 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ \
ある言語がチューリング完全であれば、その言語でオブジェクト指向は可能である。
programming "into" a language
>>75 文を並べると、逐次で実行してね、と
言わない限り全部並列に実行されてしまう
言語が主流になれば、並列度も上がる
だろうなあ。
スーパーハッカーな俺にはオブジェクト指向なんて要らんわ
>>86 好きなプログラミング言語はなんですか。
よく利用するプログラミング言語はなんですか。
趣味で使うプログラミング言語はなんですか。
やっぱりシンプルなC言語ですか。
好きな言語はCだ。趣味ではlispをよく使うな。 お前らも努力すればハッカーになれるから頑張れ。
ノイマン型コンピュータを扱っているなら、たとえ関数型言語を使っていたとしても最終的には手続き的な考え方をせざるを得ない。 ノイマン型コンピュータの仕組み自体が手続き的なのだから。
この辺で纏めてgc
>>89 こいつはとんだインチキハッカーだな。
どこかでハッカーは、 Cとlispを使うとでも洗脳されたのだろうか。
自分の利用する言語の正式名称も言えないなんてハッカーの資格無しだ。
lispってなんだよ。あのMITのトイレで生まれたというevalとatomとlistのことか。
どれだけ方言があると思っているんだよ。
そもそもコンピュータ自体が質的に有限なので オブジェクト指向とかは作法の違いにすぎず、 本質的な違いはない。
〜なので〜にすぎず〜はない。論理の飛躍。無根拠。 〜とかは。焦点があいまい。
ジャンケンプログラムで、審判オブジェクトが必要とか未だにようわからん
グーチョキパーが互いに知り合って、 それぞれが勝ち負けを判断するような密な結合より、 グーチョキパーの関係性を記述するために特化したMediatorオブジェクトを用意し、 グーチョキパー事態は互いを知らなくていい、 ポーとかペーとかが発生した場合に修正を個々にしなくていい、 という緩い結合にしておくことに、そこにメリットを見出すため。
後だしする奴とかいるから、ちゃんとジャッジしてくれる人がいたほうがよくね?
>>96 単に独立した判定役がいればいいわけで,
object とか class じゃなくてもええんちゃう
CLOS 的には審判 object(審判 class)は作らんな, たぶん
>>93 有限/無限は量概念なのに、「質的に有限」ってw
>>95 審判作りたくないのなら、
プレイヤー同士で判定して、合意の下に
勝負を付ける仕組みでいいんじゃないか?
>>98 じゃんけん大会の内容に応じて取り替えられればいいだけなんで、
別にobjectでもええんちゃう
「構造化しないで上から下に書いていけばいいんちゃう?」 と言うのと同じな気がしてきました。
>>95 変化とか量産とかが無いとオブジェクト指向で書くメリットはあんまりないよ
グーチョキパーの勝ち負けのルールが変わるとか
非同期で同時に100個のジャンケン判定しないといけないとか
そういうのが無いと
ここで話すオブジェクト指向て実装面だけか? 設計だけオブジェクト指向でやって実装はオブジェクト指向にしないって現場もあるが。ゲーム開発とか。
>>104 設計と実装を分けて論じてはいけないスレです。
もし設計と実装が無関係なら、なんのために設計するんだ?
抽象レベルが違うのだから、いっしょくたに論じるほうがよほど問題だろ
多様性が必要無いならオブジェクト指向ってのは意味が無いどころかマイナスだ
要するに、異なる抽象レベルが互いに影響し合うシステムが 同じソースコードにいっしょくたに書かれてるんで ソースコードから特定の抽象レベルだけを抽出したものを論じるなり何なりすればいい
それ「要するに」してない それ以前に日本語してない
111 :
デフォルトの名無しさん :2009/06/05(金) 23:20:25
>>104 常識的に考えたら、設計がオブジェクト指向なら実装もオブジェクト指向じゃないの?
オブジェクト指向言語(機能)を使わない、オブジェクト指向実装じゃないの?
>>104 実際にオブジェクト指向の設計をどう非オブジェクト指向な実装に落とすのか
具体例を出してもらえる?
>>113 それはレイヤーが違う。
設計->ある言語による実装と、ある言語での実装->バイナリを混同するな。
メッセージングはインターネットのような広い空間の緩い結合には適してる。 でも、プログラムの世界はもっと情報同士が密結合で信頼性も高い。 そういう世界でオブジェクトみたいな殻を作ると、無駄な伝言と依存性の不透明さが増して、 弊害が大きいと思うんだよね。 特にすべてがオブジェクトとか言われると。 # それはおまえの設計が悪いとか言わないでね。 # 不都合な事は全部設計が悪くてOOのせいじゃないというセリフは聞き飽きた。
少々プログラムの効率性犠牲にしてでもコード中に秩序を作り上げた方が生産性が高まることは多々あるわけで。 すべてがオブジェクトというやり方も、それが常にベストな解では無いと思うが、 LLなどではそういうやり方もありだろう。
>>116 いや、私が言いたいのは効率の話じゃなくて。
メッセージングやオブジェクトという仕組みでは、プログラムの秩序がより乱されてる
だけだと思う訳です。
すべてがオブジェクト、とかで作ると、でしょ? それぞれに適した書き方すればいいんじゃないの 汚い部分を一手に引き受けるクラスとかがあっても問題ないでしょ デザインパターンのfacadeみたいな
>>115 メッセージングはいいけど、たとえばJavaやSmalltalkでのオブジェクト間のメッセージングはただの関数呼び出しだよね?
たくさんのオブジェクトが存在する中で、実行中なのが常に一つっていうのはちょっと変じゃないのって話。
それって実世界の間隔とはかけ離れているよね。
×間隔 ○感覚
オブジェクト云々の話は置いとくとしても、結合度は下げた方がいいと思うんだが。 「なんでも自由にお触りください」というものを使ってきれいに仕上げるのには 強い心が必要になるけど、あらかじめ「可能な操作はこれだけです」と決めておけば 心の支えにはなるでしょ。
>>115 前半はいまいち理解できない(普段そのように感じてはいない)けど、後半は納得。
> 特にすべてがオブジェクトとか言われると。
特にこういう部分がOO(の教祖、信者)のダメなところだと思う。
以前会社の後輩が設計、実装したプログラム(C++)では、
普通の数学的な意味の関数を作るだけですむような計算処理を、
あえてクラスとして実装していた。
このため、計算処理を行うためには、そのクラスのインスタンスを生成し、
そのインスタンスのメソッドを呼ばなくてはならなかった。
(そのメソッドを呼んだあとはインスタンスは用済みなのでインスタンスの破棄まで
しなければならない。)
いや、仮にOOPの信者でもそういうのは普通に関数にしたり ユーティリティクラスにしたりすると思うんだが。 問題は後輩がOOPの信者だったことではなくて、単に経験が 足りなかったことなのではないかと。
>>122 普通そういうのはnamespaceに閉じ込めた関数にするか、OO信者でどうしても
クラスにしたかったとしてもstaticメソッドにするはず。
C++をあまり知らないから何でもインスタンスメソッドにしたがるんだろう。
シナリオ書いてクラス図やインタラクション図を起こして、 一旦OODで機能とデータを洗い出してから、 機能毎にモジュールを切り直してCで実装、 ってのは結構ありがちなパターンだったりする。
staticメソッドの無い言語って多分無いからな つまりはそういうことだ Needless Complexityは避けろって普通は言われる
まあ、普通の関数ですむと思ってるのは自分だけで 文字列操作のように、関数にするよりもクラスにして操作するほうが自然な物だったりしてな
プログラム内のある意味のある塊をどうまとめるか。 オブジェクトというまとめ方しか知らない・出来ないのは不幸だ。
日本人は「自分だけ」に弱い。
「俺の周りは」なんて言ってる奴には、永遠に理解できないもの それが、オブジェクト指向
Eiffelサイコー!!!!!!!!!!!!!
「実はただの関数呼び出しだよね?」と聞くと、 「関数呼び出しにたとえるのはダメ」と言われることがある。 関数呼び出しを使わないOOPの実装もありえると言いたいんだろう。 でも、一般論の前にまず特定の実装を知るべきだよな。 一般論だけを語りたがる風潮にも問題があると思う。
関数を動的に探索して、適切な関数を呼びだす、 ということを実行時におこなうのが普通の「関数呼び出し」だと主張するのなら、 OOPLでのメッセージ送信の多くの実装は関数呼び出しと言えるかもしれないけどね。 実際には普通の「関数呼び出し」では呼び出される関数はコンパイル時に確定しているから、 OOPLでのメッセージ送信の多くの実装は単なる関数呼び出し以外のこともやっているよね。
自分で処理系を書いたことがない人は
>>119 みたいな発想になるんだろうな。
>>130 永遠に理解できないなんて、なんてえらそうな技術。
それがオブジェクト指向という宗教。サイエンスのかけらもない。
>>136 処理系はバリバリ書いてきた方が、
それはともかくとしてなんで処理系を書いたことがないと
>>119 みたいな発想になると思うのか、
その論理のつながりが解らん。
お前らの頭悪そうなレス見てると優越感に浸れる ありがとう
つーかメッセージングか関数呼び出しかについては前スレで終わったんじゃないの? 前スレで出ていないような新規の主張をするならいいが、そうとは思えないぞ。
>>138 実際には処理系を書いたことがないから、わからないんじゃないかなあw
>>142 では、インターフェース型の変数がメッセージレシーバになっている場合の
メッセージ送信をおこなうために必要な処理をCで書いてみなさい。
同様に、簡易版でいいからC風の言語のコンパイラも書いてみなさい。
この2つの実装がまるで別物だということがよく理解できるから。
技術への攻撃が続かなくなったから、 今度は人格攻撃ですか。なるほど。
誰が見ても
>>143 の態度は気に入らないだろうな。
それ以前に言ってることが意味不明だし。
>>143 もったいぶらずに違いを教えてくれよ(*´∀`*)
さあさあ。
確かにもったいぶり過ぎだな 本当にこいつは自分が言ってることが解って言っているのかと疑問に思えてくる
こんなクソスレでコンパイラ書けなんて言われて書く奴がいるかっつーの。 こういう非現実的なことを押し付けようとする奴って何様なんだろうかね。
>>143 読んでわからないようなら能力がないからこの業界から足を洗ったほうがいい。
本人も周りもそのほうが幸せになれる。
コンパイラ作成系の本読んだところで それっぽいこと語りたいガキだろ
erlangとかのメッセージ送信を見ればオブジェクト指向のメッセージングのモデルがいかに不自然かわかるだろ。 そもそもオブジェクト指向はメッセージングじゃない。 ただの関数呼び出しだ。
Cardelli厨の再来か?
>>150 早く「俺はまだまだ未熟でした、ごめんなさい」と言えよw
潔く負けを認めないかぎり、お前のスキルは一歩も前に進めないんだぞ。
最終的には「リンク先読め」「本読め」だの言ってお茶濁すやつ多いなw 自分の言葉で簡潔に表現できないw あと、文章を引用してきて朗読するだけとかw
>>152 > そもそもオブジェクト指向はメッセージングじゃない。
> ただの関数呼び出しだ。
それを言うのなら、
「そもそも現在のOO実装は関数呼び出しがベースになっているから、
メッセージングによる本来のオブジェクト指向じゃない」
だろう。
そもそもメッセージングを厳密に実装してなんか良いことあんの?
必要なものはただの関数呼び出し。
だから、本来のオブジェクト指向は必要ないんだな。
>>127 関数が外部の変数に依存しないときは関数を作る。
関数の外側の変数を使いたいときはクラスを作る。
これで間違いない。
メッセージ送信という抽象モデルと、 メソッド探索+関数呼び出しという実装を、 ごちゃごちゃにするから混乱してるんじゃね?
>>158 > 関数が外部の変数に依存しないときは関数を作る。
> 関数の外側の変数を使いたいときはクラスを作る。
キミ、どこの土方よ?
オブジェクトAとオブジェクトBがそれぞれ別スレッドで動作してるとき、 AからBに(関数呼び出しによる)メッセージを送ったばあい、Bのメソッドを実行する実体は Aのスレッドだったりして、そういうのが気持ち悪いと思うことはある。
非同期管理はまた全然別の話だろう
ちょくちょくスレッド間の同期を混ぜるやつが居るなwこのスレにはw
>>162 レッテルを貼るだけでは何の意味もないだろ
この中でerlangをさわったことがある人、もしくはpi-calculusを勉強したことがある人はいるの?
>>167 俺は、無い!(´;ω;`) 一番処理系に近づいたのはRHGを読書した時w
>>159 実装と無関係な抽象モデルを作っても無駄じゃないの
関数呼び出し前提でモデル作ればいいじゃん
>>143 コンパイラ書けとか言うなら、せめてお前さんがASTに落とすまでのフロントエンドと
中間形式に変換した以降のアセンブリコードを吐くまでのバックエンドを自分で
書いて用意したらどうだ?これらの部分はお前さんの主張を「理解させる」上で
本質的ではないからな。
人にやれと言うくらいだから、この程度は簡単に書けるだろ?
>>169 実装ありきでモデルを作るんじゃなくて
まずモデルがあってそれを実現するために実装があるんだぞ
>>171 デスマを防ぐためにモデルを作るっていう発想はないんだな
絶望した
173 :
デフォルトの名無しさん :2009/06/06(土) 18:42:55
erlangって変数を設定したら2度と値を変えられないんだよね。 頭が硬くてプログラムを作れなくて使うのをあきらめますた。
???
>>172 そうじゃなくてモデルを作る時は
実装時に変な足かせになったりしないように抽象的な書き方をするのが基本だろ
論点ずらしもいいとところだぞ
>>175 関数呼び出しを前提にすることが、変な足かせになるの?
erlangは知らんが、ScalaのActorみたいなのがオブジェクト指向の メッセージパッシングの理想型だったりするのか? オブジェクトがそれぞれ別のスレッド(もどき)で動いてて、それぞれの メールボックスに入ってるメッセージを順次読み出して実行・返信みたいな。
あーまだやってたのか 結局 OO なんてのは「明確な定義もないただの幻想」 ってのが、前スレの結論じゃなかったのか?
「前スレの結論」っていうのは大抵、 前スレで一番最後に目立っていた香ばしい強弁のことだよね。
「前スレで俺が言ったこと」だろ
じゃ、誰か OO の明確な定義をしてみてくれよwW
関数がない言語は少ないが、クラスがない言語はたくさんある。 クラスが役に立たないわけじゃないが、 クラスに似た方言がたくさんあって統一できてない感じがする。
大学出てる奴いないだろw お前らは市販の参考書でお勉強した程度のレベルだ
> 大学出てる奴いないだろw それは暴言だろ? Fランだって大学は大学だろうに…
λ計算、オートマトン、関係代数、述語論理、π計算、グラフ理論など まともな議論が出来る土台がソフトウェア技術を大幅に進歩させている中、 OOに関する議論はメッセージだのオブジェクトだのカプセル化だの、相変わらず不明確で不毛な論争が続くのみ。 これはOOが属人的なノウハウの域を脱していない証拠。 さて、ではOOをまともな議論の土台に載せるにはどうすればいいのでしょう? やっぱりσ計算?
σ計算 = 型理論 + 操作的意味論
そもそも大学でオブジェクト指向とか教えてるのか?
>>186 操作的意味論があるなら、そこからクラス設計の優劣が定量的に計れたりしないだろうか?
総合的なものじゃなくても、特定の側面(結合度とか)だけでもいいので。
そういう論文が読みたい。
凝集度ならcohesion metricsで検索すればそれらしいものがでてくる
>>189 ありがとう。こんなに親切な御仁がいるとは思わなかった。
実はσ計算についても殆ど何も知らないので、OOの特徴(例えばMLのモジュールとの違い)を
σ計算の言葉で言い直すことができる事を期待して勉強してみます。
五十嵐先生まんせー。
σ計算について詳しい本なんてこれぐらいしか知らない
Amazon.com: A Theory of Objects (Monographs in Computer Science): Martin Abadi, Luca Cardelli: Books
http://www.amazon.com/dp/0387947752/ 簡単に概要を知るだけならLuca CardelliのサイトのPaperの
Objectカテゴリにある論文を見ればいいんだけど
>>185 > さて、ではOOをまともな議論の土台に載せるにはどうすればいいのでしょう?
> やっぱりσ計算?
それ以前に OO の明確な定義付が必要だってば
何見てもオレオレ定義じゃん
>>192 まともに議論できる土台であるσ計算の言葉でOO(に似たなにか)を言い替えてみる。
↓
これをOOの定義にしよう!(というコンセンサスが広がる)
↓
うまー
ちなみに、さっきから教えて君している私は学生でも院生でもなく、 職業プログラマなので、学生乙は禁止。
懐かしい、DDJじゃないか。 日本でも雑誌出してたよな。
オブジェクト指向ってのはスパゲッティ指向をカッコヨク表現したものなんだよ
>>126 VBScript(否.NET)なめんな
>>198 スパゲティ指向ってのは言いえて妙かもしれない
茹でる前のスパゲティが理想なのに、気が付けば茹で上がったスパゲティって事か?
だとしても生麺なんて食いたくないね
OOはOOPだけにして、柔軟性と抽象化のためのテクとして受け取ればよかった。 分析と実装がどうの、現実世界=オブジェクト、メッセージがうんたら、 これをばっさり捨てたらよかったのにね。
それがDbC ユーザ定義の抽象型上の動的多態と拡張されたホーア論理を使ったよる制約プログラミング
お歳暮に渡すソーメンを買ってきたのに 何故か、そのソーメンで昼飯を作っちゃうみたいなwwww
>>204 > 分析と実装がどうの
この人たち OO を出せば客が尊敬してくれると思ってる連中だと思うよ
一昨年かな、急遽、長年付き合いのある映像関連のシステム作ってる
会社の手伝いをする羽目になった。
内容としては「既にあるシステムの出力フォーマットをMP4でラップしたい」だった
最初に頼んだところは、「いまから OO 分析してどーたらこーたら」と言うばかりで
実質的には何もしなかったそうだW
208 :
デフォルトの名無しさん :2009/06/07(日) 15:47:00
オブジェクト指向とそれ以外の違いなんて instance.method()とmethod(instance)の違いくらいしかないんじゃないの?
CLOS では (method instance) なわけだが
>>208 そういう不用心な事を言うと、マルチプルディスパッチこそがOOの肝だろうが、
って言われちゃうぞ。
・カプセル化 ・継承 ・ポリモーフィズム
いまだにカプセル化とか言うアホがそんざいするんだ
俺俺、俺のこと
ゴガギーン
ドッカン
m ドッカン
=====) )) ☆
∧_∧ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( )| |_____ ∧_∧ < おらっ!出てこい
>>212 「 ⌒ ̄ | | || (´Д` ) \___________
| /  ̄ | |/ 「 \
| | | | || || /\\
| | | | | へ//| | | |
| | | ロ|ロ |/,へ \| | | |
| ∧ | | | |/ \ / ( )
| | | |〈 | | | |
/ / / / | / | 〈| | |
/ / / / | | || | |
/ / / / =-----=-------- | |
カプセル化機能のないOO言語って山ほどあるのに… クラス定義でアクセス属性決定する意味あるのか?
アクセス属性が必要ないのに、アクセス属性が付いてるって? ご冗談をwww
private/publicとかの存在意義に疑問を投げかけてるのか・・・?
>>215 |┃三 / ̄\
|┃ | |
|┃ \_/
ガラッ. |┃ |
|┃ ノ// ./ ̄ ̄ ̄ \
|┃三 / ::\:::/:::: \
|┃ / <●>::::::<●> \
|┃ | (__人__) |
|┃三 \ ` ⌒´ /
|┃三 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ \
お前らの話のどこがおもしろいのか解らん。 議論してる奴らもUMLとC/C++とJavaぐらいしか知らない奴ばっかりっぽいから、 知識不足で底が浅い議論になってるように見える。
話に面白さを感じるには、一定の知能が必要だな。
その一定の知識ってハードルがすごく低いんだと思うよw
どうせ2chじゃまともな議論にならないしな。 他でやれば結構面白い議論に発展するかもしれんが。
こんなところで議論とかw
ぶぴぶぴ 最高だ この力・・・
中を見えなくするとか隠蔽とか言われても中知りたくなる件w
好きな子のパンツはやっぱり見たいよな
・カプセル化したければinterfaceを使い、classは全部公開 ・継承はinterfaceのみ可 ・ポリモーフィズムは↑に反しない限り自由
>>228 それはww構造的www部分www型ww
お前らOOPの影響で不況になったの解ってる? OOPが原因でアウトソーシングなんて発生したんだよ?
231 :
デフォルトの名無しさん :2009/06/07(日) 23:33:59
こら! なんでもかんでもオブジェクト指向のせいにするな アホ OOを使う人間が無能だっただけでOOが悪いわけじゃないということにいい加減きづけよな
>>231 実際経営者というか管理の上流は
OOすることにより、製造業の部品が簡単に作れると勘違い
するようになった。もう複雑なOSなんて知らなくてもいいし
OOするだけで製造コストが劇的に下がると妄想を抱くようになった。
もし構造化のみだったらそんなこと無かったよ
コンサルなんて意味のない職業が台頭することもなかったし
管理のみの上流工程とか意味のない職種も誕生しなかった
全てがC++やJavaなどに代表されるOOがもたらした弊害でしょ
ジョエルもJavaスクール(笑)の影響でITがおかしくなったと言ってるぞ
金融破たんだって、JavaなんかのOOで簡単かつ乱雑にマネーゲームを
しかけることができるのが原因の1つだし
OOが無ければこれだけ異常な下請けや不況は起きなかった
多重下請け構造とアウトソージングは別物のような… 日本の業界だと一緒くたにされがちだけど
弊害といえば弊害だけど 最後の方はさすがに飛躍し過ぎ
経営者はooとかしらないよw なぜかというと、彼らは
>>231 >OOを使う人間が無能だっただけでOOが悪いわけじゃない
もう聞き飽きたよ、そのセリフは...。
はいはい、私は無能です。
それに見てみろ Javaなんかはバージョン上がる度にがどんどん複雑になるが生産性が Java1.3や1.4の頃とかわらない Rubyなんて10年前からあるけど脚光浴びてるだけで なんら普通の生産能力しかない。むしろ無い部品が多いから キャッキャとエテコウのようにオナプロ実装しているに過ぎない そしてC++はいまだに0xの仕様を最終局面まで詰めれないし このまま永遠に仕様策定ごっこして終わり つまりだ、OOはその仕組みを作ることからして莫大で無駄な時間を浪費 する悪魔でしかないのだよ。技術の技術として仕上げていくことに対して OOは無駄なことが多い単なる技術屋が金を長期間搾取できるための悪材料 でしかないんだよ
>Rubyなんて10年前からあるけど脚光浴びてるだけでなんら普通の生産能力しかない。 普通筏と思われ。
で、
っていう
>>232 > もし構造化のみだったらそんなこと無かったよ
> コンサルなんて意味のない職業が台頭することもなかったし
コンサルは構造化以前から台頭していましたが何か?
> 管理のみの上流工程とか意味のない職種も誕生しなかった
ウォーターフォールは構造化以前から存在していましたが何か?
> OOが無ければこれだけ異常な下請けや不況は起きなかった
メインフレーム時代はもっとひどかったぞ。
OOA/OODって、結局現実世界のメタファーを使うことで、計算機科学を全く 理解していない素人が分かった気になってコンサルタントとか名乗り出して 美辞麗句を並べた。で、経営者もそれに騙されて無駄金使った挙句、結局 ろくな成果が出なくてOO自体が忌み嫌われる存在になってしまったのが 一番の悲劇だろうな。 OOのテクニック的には基本的に構造化の延長だし、そこまで筋は悪くないのに。
憂鬱本の方がOOSCより売れたという時点で南無…
OOSCたけぇ〜もん。値段分の価値はあると思うけど。
言語によって実装方法が違ったこと。 滅茶苦茶な翻訳、訳語の混乱があったこと。 更にオレオレオブジェクト指向が大量に出現したこと。 混乱がありすぎた。
>>232 にはオブジェクト指向が理解できないであろう事は良く分かった
OOには、goto的なものが多すぎる。 便利な機能を使いすぎると、かえって複雑になる。 バランスが非常に難しい。 C++なんて、マルチパラダイムとか言ってるが正気じゃない。 あれもこれも詰め込んだら、普通の人には適材適所で使うのが難しい。
OOではなくて関数型の言語の方が良い、っていう意見もここで よく見るけれども、それほど良いものならなぜOOPLを駆逐して 広く普及しなかったのだろう? 皮肉ではなく、純粋な疑問として。
マイクロソフトが関数型言語を出さなかったから。 関数型言語なんて知らなくても使えるようにならないと流行らないよ。
>>249 ポピュラーなオブジェクト指向言語はC++やJavaなどのCの派生言語だから。
MLやHaskellなどは考え方を結構変えないと理解しがたいから、取っつきにくかったから。
>>250 MSができる前から関数型言語は存在したけど、PascalやCよりずっとマイナーだった。
schemeをほんの少しだけ触ったが括弧に混乱した アレは人間の扱うもんじゃないと思うw
>>247 > OOには、goto的なものが多すぎる。
具体例を挙げよ (2点)
手続き型言語に慣れた人には関数型言語はとっつきにくいから。 そしてLispのシンタックスが抽象構文木そのものだったというのも 一般に広めるという上では仇になったと思う。 関数型も慣れれば非常に快適なんだけどね。
論理プログラミング言語はSQLって形で広まってるよ☆
SQLはプログラミング言語ではありません 知ってるプログラミング言語は何って聞かれてHTMLって答えるタイプ?w
>>256 SQLはDBからデータをざっくり(下手すりゃ全行)引っ張るのだけに
使って、あとはJava等々で手続き的に処理したがる御仁も多いよう
ですが・・・手続き型の呪縛は強い。
教育とか普及度もあるだろうけれども、シンプルに人間の脳は 関数型より手続き型言語の方が理解しやすいように出来ているの だと思う。関数型言語を使うには一段階脳の改造というか訓練を 必要とするというか。
短期記憶の容量が少ない奴は関数型言語に向いてないってこった。
短期記憶の容量を大きく要求しない手続き型スゲー。
>>260 つまり関数型言語が普及しない理由は短期記憶の容量が少ない奴
が多いからであると。
それなら初めっから普及の面で関数型に勝ち目なんて無いじゃん。
>>261 短期記憶の容量が少なくて済む代わりに、型バグ・副作用バグに悩まされるんだよね。
関数型言語が普及したら低学歴が業界から減ってくれそうでうれしい
低学歴だけじゃないな ご隠居さんの戯れ言や長老達の世迷い言からも解放される
短期記憶ができないなら紙の上で色々式変形すりゃいいじゃん
>>266 どっちにしろラムダ計算を知らない奴らには荷が重いだろ。
関数型言語大好きなご隠居さんも大量にいるんだけど… しかも実務経験に乏しいのとか…
>>268 そういうのは大学とかIT系以外に多いんじゃね?
なんだか関数型言語を使ったこと無い奴が多いようだけど、 情報系の学科で関数型言語を使った講義が無い大学ってあるのか? それとも文系上がりのなんちゃってOOプログラマが多いのか?
理系学部出てプログラマになる奴なんて情報系でも少数派
そもそもOO言語ってSmalltalkとかでしょ? 関数型よりユーザー少ないような
>>271 職業プログラマじゃなくても仕事でプログラマしてる奴はいくらでもいるだろ?
>>273 s/仕事でプログラマ/仕事でプログラム
結局、 ・歴史はある ・情報系の人間ならまず習う ・短期記憶が足りなくてもどうにかなる それでもマジョリティになり切れない関数型言語って どうなのさ。なんか根本的に残念なところとかある んじゃないのかな。
モナドを知らないとHello Worldも書けない、とか?
M$を始めとするソフトウェアベンダー様方が力を入れてこなかったから
Pascalの残念なところを改良した、たぶん
>>277 でも気に入りそうな
Turingという言語があったけど、ちっとも広まらなかったよw
>>278 モナドもHaskellも知らない奴が「モナドを知らないとHaskellではプログラミングできない」と言い張る
関数型言語の欠点は、 1箇所の変更の影響が広範囲にわたること。 高階関数に微妙なバグがあると、 バグを特定してインパクトの小さな修正をするのが困難
現代の関数型言語を語る時にLisp系の話を持ち出すのは間違い。 あれはもう何年経ってもアカデミックな界隈でしか使われない。 誰がやってるのか、どこの会社がやろうとしてるとか等を考慮すれば、 F#とScalaだけに注目してればいい。
>>283 いや、影響はその関数の中だけでは?
要は関数ってのは入力と出力だよ。
出力以外の状態に変化が無いことが保証されているから、
入力されたデータに対する出力だけを見ていれば正常に動いているかどうかが一目瞭然なんだよ。
正しい入力をしたとき正しい出力が出ていればそれは正しい関数。
バグの特定は普通にprintデバッグとかいろんなデバッガを使ったデバッグでするところは他の手続き型言語と何も変わるところはないね。
>>284 > 現代の関数型言語を語る時にLisp系の話を持ち出すのは間違い。
> あれはもう何年経ってもアカデミックな界隈でしか使われない。
アカデミックな界隈ではLispは古くさいってイメージしかない。
使っているのは長老だけでは?
>285 それは、関数型言語の中でも特に誰も本番で使ってないといわれる、 純粋関数型言語の話でしょ。 オブジェクト指向言語の話する時にSmalltalkを大前提に語るぐらい 意味のない行為。
>>287 純粋関数型言語HaskellはOCamlやF#より話題に上りやすい言語なんだが。
>>287 それは lisp のように代入を許してる言語の話だろ?
だからと言って, ダイナミックバインドがある汚染された関数型言語でも,
スペシャル変数の使いどころとか理解できない糞には触ってほしくはない
# つか, クラス変数より遥かに役に立つダイナミック変数
関数型言語っていう括りはおおざっぱすぎるんじゃないかな。 Lisp, Schemeは関数型言語の仲間だけど、理論的な背景は無い。 そういう意味では、基礎の無いOOと同じ。
>>290 書かないだけで, 書こうと思えば純粋関数的に書けるわな > lisp 系
そもそもが型なしラムダ計算なんだから
>>291 いや、書けてしまうという時点で純粋じゃないんだよ。
そもそも純粋関数型言語であるのは機械的な解析がしやすいこと。
それはデバッグの自動化への将来性を意味する。
>>292 チューリング完全な任意の言語は
純粋関数型言語に機械的に翻訳できるが、それでも解析がしやすいと言うのか?
>>292 > それはデバッグの自動化への将来性を意味する。
実際には型エラーのデバッグだけでも自動化にはほど遠いけどな。
型推論自体がNP完全問題という現実を忘れないように。
>>294 まぁ、いろいろ研究があるから調べると良いよ。
特に奈良先端とかいっぱい論文出してる。
この話題は永久機関のように無限ループするな
無限ループせずして何が2chか!
>>295 型について質問することでバグを特定するシステムなら知ってるよ。
俺もその研究に関わってたことあるし。
でもあれは自動化の対極だ罠。質問に対して人間が適切に返答することが前提。
つーか、自動化は不可能なことが証明されているのに何を今さら?って感じ。
定理証明支援系じゃあるまいし。
>>299 では、型エラーのデバッグを完全に自動化することに成功した論文を挙げてくれ。
オブジェクト指向は分かるけど、便利なものを集めたオブジェクト的なものを作ってしまいますよね
>>301 関数型言語ではそもそも型エラーが起こりえないだろ?w
>>302 それはオブジェクト指向を正しく理解していない。
オブジェクトが並列で動くイメージで作るんだよ。
でも実際にスレッドで並列で動かすと無駄が大きくなるから並列じゃないんだけどね。
どうしても本当の並列が必要になったときだけスレッドを使えばいい。
>>294 型推論がNP完全?決定不能の間違いでは?
NP完全は計算量のオーダーの話。
決定不能(undecidable)は計算可能性の話。
まぜるな危険。
ひょっとして停止性問題の事を言っているの?
>>291 >そもそもが型なしラムダ計算なんだから
Lispは形なしλ計算ではない。セルとその操作(carやcdr)を基礎とする言語。
一方λ計算とは、値とλ抽象とλ適用を項とし、βリダクションによって計算を進めるもの。
全く異なります。
×形なしλ計算 ○型なしλ計算
309 :
デフォルトの名無しさん :2009/06/08(月) 22:23:54
関数型のほうが十分に生産効率も実行効率もいいなら、関数型が流行るだろうよ。 オブジェクト指向のほうが、現実のモデル化には適している。 問題は、モデル化にこだわって、かえって複雑になりがちなことだ。
>>304 >それはオブジェクト指向を正しく理解していない。
属人的なノウハウであるオブジェクト指向に「正しい」なんてないと何度言ったら(ry
正論だけど扱い辛い設計をする奴ほど態度がデカい
必要十分で適切なモデル化ならその複雑さは必要な複雑さ。 問題はモデル化と称していらんものをやたらと詰め込むこと。
単独の関数をオブジェクトと認めたがらないのが不思議。 関数ポインタで済むところでもクラス+仮想関数を使わせるのは不自然。
関数ポインタがタイプセーフに扱えなかった頃の名残だよ
>>310 そんなことを言ってるんじゃないのw
属人的な要素が強いなら先輩の言うことは聞きなさい。
>>313 関数とオブジェクト指向で言うところのオブジェクトは別物だろ。
関数自体にメッセージを送れるか?
関数自体がメッセージを受信するか?
>>307 Lispがラムダ計算じゃないなんて馬鹿丸出しだぞ。
お前はChurch encodingも知らないのか?偉そうな事を言うなら少しは勉強してからに
したらどうだ?consもcarもcdrもラムダ式で表せるんだよ。
Scalaだけがこの暗黒の時代を救う 日輪となる唯一の言語 Scalaこそ最強 Scalaこそ救い
>>316 ドシロート意見だけど引数とは違うのん?
>>318 >consもcarもcdrもラムダ式で表せるんだよ。
λ計算で表現できる事とλ計算の定義とを混同していませんか?
Lispはλ計算の定義(
>>307 で簡単に書きました)をその基礎に採用していません。
これではLispはλ計算だと言えないと思います。
本当にλ計算を基礎としているのはMLです。
>>310 属人的だから、ノウハウで高い給料もらえるんじゃん。
>>320 関数は状態を持たないでしょう?
だから前に送ったメッセージの事は覚えてない
>>318 はいはい、習ったことを言いたいのは解るけど、恥ずかしいからやめてね
>>318 Lispが型無しかどうかはラッセルパラドックスが成り立つかどうかで調べれば良いんじゃないの。
>>321 Lispって処理系の実装法まで定義してるのか?
基本的にLispのコードはラムダ式で表せるのだから、後はbeta reductionすれば
良いだろう、というのが俺の意味するところなんだが。
>>304 スレッドなんて作ったって並列になんて動かないじゃん
こっちちょっと動かして、そっちちょっと動かしてを繰り返すのはまったくいっしょ
スレッドにしてなにか変わることあるの?
一定時間毎に呼び出したいとかハード的な何かのメッセージを待ってとか
通信でメッセージを待つとか
そういうコールバック的な用途でしか使う機会ないんだけど
スレッドって俺等PGにとって並列に処理するためのもんか?(いや、定義は知らんけどね)
>>327 コールバックとスレッドは全く違う。
コールバックって関数の中の処理が終わるまで他のところに処理が移れないじゃん。
>>326 いいたい事の意味は分かります。
Common Lispは言語仕様ですが、その基礎的な仕様に例えばS式の定義があります。
その中でS式とは、シンボルとそのペアによって成り立つと定義されています。
これはλ項(値とλ抽象とλ適用によって成り立つもの)とは異なります。
もちろん、Lispのプログラムはλ計算に変換可能(だと思う。証明したことないけど)ですが、
それをもってLispはλ計算だという表現は拡大解釈だと感じます。
>>329 「値」じゃないよ。variableは「変数」
>>328 いや、コールバックじゃねぇなw
なんだっけ?
ポーリングだwポーリングw
>>328 つまりよ
ハード的な要因があって何かを監視する必要があってそれと辻褄を合わせる的な用途でもないと
無理やりスレッドって形でプログラムを組む必要ってないじゃんってこと
非同期コールバックの事じゃねえの?
>>316 > 関数自体がメッセージを受信するか?
普通に受信しますがそれが何か? w
| func |
func := SmallInteger compiledMethodAt: #+.
func valueWithReceiver: 3 arguments: #(4) "=> 7 "
>>330 どうも。うっかりしてました。
いい機会なので、λ項の定義を書いておきます。
1. 変数a,b,c,...はλ項である
2. M,Nがλ項のとき、(M N)はλ項である (関数適用)
3. Mがλ項、xが変数のとき、(λx.M)はλ項である (λ抽象)
>>327 マルチコア/マルチプロセッサになると違ってくるよ。
シングルコアだと動いてるのに、マルチコアにすると不具合が出るソフトは、
大抵スレッドがらみのバグだね。
プログラミング面から見たら、それぞれのタスクが独立して動いてくれた方が
楽なことがあるんだよ。もちろん、独自のタスク管理システムつくっても
いいんだけど、それはそれで面倒くさい。
>>337 スレッドのバグは状態を共有するところに問題の種がある。
だからこそ状態を共有しないメッセージングが重要なんだよ。
並列が便利だというのは手続き的に並列実行する感覚だとわかりにくいと思う。
>>338 一瞬解ったような気もしたけどやっぱり解らないのですが・・・
状態を共有する以前に、各スレッドが状態を持っていること自体が
問題の種だと思うのだけど、違うのかな。
>>340 各スレッドが状態を持っていると問題になる具体的な例を挙げてもらえますか?
各スレッドが状態を持つ問題点というのはおおよそ手続き型故の問題だと思いますが。
>>303 > 関数型言語ではそもそも型エラーが起こりえないだろ?w
↑こいつ馬鹿?
>>340 状態を共有しているから相互干渉が発生するんだよね?
状態を共有せずにメッセージングで疎に結合しておけば
それぞれのスレッドの問題はそれぞれのスレッドに閉じるよね?
そんなにメッセージングが大好きならスレッドなんか使わずにMPIでも使ってろよ
>>343 selftype無しの言語だとP-completeじゃねーかよ
>>294 は嘘つきも大概にしろよ
>>346 型推論一般ではNP-completeということじゃ?
>>347 selftypeってOO言語で使う物だろ
関数型言語の話をしている時にそういう言い方をするのは詭弁
つ 岡村その他
ていうかスレッドがオブジェクト指向となんの関係があるのよ?
NP完全な場合とP完全な場合があるなら 全体はNP完全になるだろ常識
そもそも全体の話なんかしてないだろうが
全然関係ないことを無理やり結びつけて話を進めるやつがいるよね
355 :
デフォルトの名無しさん :2009/06/09(火) 07:30:02
スレッドもOOで考えたいという人もいるのかもな。 まぁ世の中なんでもかんでもオブジェクトですよ。
>>338 状態の共有がオブジェクトの共有に変わっただけだな。
直接アクセスせず関数を経由すると便利になるのは当たり前のこと。
トランザクションメモリがあれば バグなんて発生しない
>>355 スレッドの原型であるlightweight processがactorモデルと相性よかったという歴史的背景があるわけだが。
359 :
デフォルトの名無しさん :2009/06/09(火) 08:31:02
関係無いじゃん じゃ、普通の処理で済むところをスレッドにすることで扱いやすくなるの? 解釈間違ってんじゃない?
360 :
デフォルトの名無しさん :2009/06/09(火) 08:35:16
そもそも、並列にしか目が向いてなくね? 委譲したり継承したりできるわけだが
おまえは今、世界中のerlangerを敵に回した!
オブジェクト指向マンセーって言う人の メイン使用言語は大抵 オブジェクト指向との親和性が微妙なのは何故?C++とかJavaとか
363 :
デフォルトの名無しさん :2009/06/09(火) 09:37:06
STL便利じゃん javaいらね
親睦性の高い言語って何かある? Excelの裏で動くVBAとか?
つ 【emacsの裏で動くelisp】
>>342 少なくとも強く型付けされたHaskellなどの言語では実行時の型エラーはありえなくね?
unsafeCoerceを使ってですね…
>>367 そんなやばい関数があるのか。
FFI用だろ 女子高生
でもunsafeって名前を付けたのは偉いと思う。 危険なところと安全なところを切り分けて考える事は重要だしね。
>>362 >>オブジェクト指向との親和性が微妙なのは何故?C++とかJavaとか
オブジェクト指向との親和性って何?
C++とJavaの何処が微妙なんだ?
>>370 30越えてるなら今のうちにコボラにごめんなさいしとけ
多分お仲間になる
>>371 そういうこと言ってる人って、大学に行かずにプログラマになった人で、40歳ぐらいの人に多いんだけど。。
3人ぐらい同じような事を言ってる奴がいたけど、全員大学は出ていなかった。
一方で関数型言語やオブジェクト指向をバリバリやってる人は会社の社長さんに多かった気がする。
てか俺の周り社長大杉w
>>372 つまり、オブジェクト指向やってる奴は協調性が無くて長く会社にいられないから、
起業する奴が多いということか。
型エラーはコンパイル時のも含むだろ 往生際わるすぎ
ほどほどにオブジェクト指向しようや
> ほどほどにオブジェクト指向 の定義が山ほどあるから、みんな、困ってるんじゃないか? とくに OOA とか OOD とか言ってる連中と、その他の設計理念の立ち位置とか C++/Java で言ってるカプセル化の位置付けとか よそから見たら単なるオナヌーだろ?
なぁ……… ハード屋とか組み込み屋連中はシステムの安定度とかを計算するための 数式的手法を山ほど持ってて, 有効に使ってシステム組んでるわけだが 実は, そのたぐいってOOにも応用可能なことが分かってるのに, OO屋が そうゆうの使わないのは, なんか理由があるのか?
>>379 昔からあるだろ形式言語使って
調べるとかそんなのは日の目みないだけで
腐るほど研究されてるぞ
OO使い特にJAVAスクール(笑)に通ってるような
奴らには数式なんて理解できないでしょう
>>380 > 数式なんて理解できないでしょう
要はOO屋ってのはアホの集団ってことか?
オブジェクト指向=文系(再掲)
>>378 >よそから見たら単なるオナヌーだろ?
オナニーして悦に入ってる奴に限って
他人にも押し付けて来るんだよなぁ
ああいうのは本当に邪魔だ
>>379 そんなツール山ほどあるんじゃないの
メトリクスで検索したら山ほど引っかかるぞ
ウチの職場でも富士通の使ってるし
>>381 そうOO屋はアホの集合体
特に日本は設計もできないし、問題を解決する道具
としてOOをまともに使えないから世界でもカスレベル
のアホ集団といっても問題無い
>>384 あの設計段階ではほとんど全く役に立たない奴ね
その手のツールとは違うだろ, ハード屋とか組み込み屋が使ってる設計手法は?
ソフトウェアを開発する作業はハードウェアとかでの設計にあたる、みたいなことを誰かがいってたのを思い出した
>>387 > ハードウェアとかでの設計
って言ってるのは、図面を引くところで
それ以前の工程のでやるべきことはほとんど同じなんだけどな
使ってる手法は大きく異なる
>>379 ソフトウェア開発では、その手のものはまず役に立たないから。
> ソフトウェア開発では、その手のものはまず役に立たないから。 「ソフトウェア開発では、その手のものを役立たせる能力をもった人材が ほとんどいないから」 の、間違いだろ
>>390 君、ソフトウェア工学についてちゃんと系統立った教育を受けてないでしょ?
学んでいれば、ハードウェアにはないソフトウェア固有の問題を知っているはずだ。
構造化プログラミングの時代には、 仕様から数式的に記述して、できたプログラムを検証するとか、 理論的研究としてはいいところまで行ったが、 オブジェクト指向が出てきて振り出しに戻ったw
394 :
デフォルトの名無しさん :2009/06/10(水) 09:49:30
オブジェクト指向っていうのはアルゴリズムを実装する手段だから アルゴリズムを考える手段としてはあまり役に立たないように俺は思うよ。
>>392 は何の反論にもなっていないアンカーを落として何がしたいの?
頭おかしいの?死んじゃうの?
ビジネス分野なんて、仕様そのものが不安定なのに、 仕様を形式化できるような分野の話をしても意味が無いと思うが。 それこそ、なんでもOO厨と変わらないだろ。
>>396 必 死 だ な
Software engineering will never be a rigorous discipline with proven
results, because it involves human activity.
将来的に、仕様は形式化できないといけないと思うけどね。 で、仕様を変更したら、プログラムの中で修正すべき部分が色つきで表示されるとか。
形式化された仕様を書く際にバグが生じるわけですね。
>>398 その英文を読んで、理由がそこに直接挙げられているものだけだという主張だと解釈するのなら、
おまえは二度と英文を読まないほうがいい。おまえ本人にとってもおまえの周囲にも不利益にしかならない。
テスト駆動は数学あんまり関係ないからなぁ オーバースペックな学問やってると応用を考えるのが大変だな
仕様形式化廚からiPhoneみたいなものが生み出されることはないだろうな
>>401 読まずに反論してるのが丸分かりだな。まあ全部読んでから反論しろよ。
それともこの程度の量も楽に読めない程英語に不自由しているのか?
>>404 すごい妄想だな。
やはりお前は
>>391 が言うようにSoftware Engineeringの基本中の基本がわかっていない。
VBScriptを自習したクチか?
どんな分野でも、過去の考え方にとらわれない設計・開発から、 革新的なヒット商品が生まれる。 だけど、それと、オブジェクト指向には、 なんかすっきりした設計・開発の法則がないんじゃないか? という話も、また別の問題だろう。 過去の定跡を破る前に、その定跡がどうもはっきりしない。
>>405 余計なことはいいから、読んだのなら内容について反論しろよ。
それが出来ないなら英語に不自由していると思われて当然だ。
>>405 人を妄想だと言っておきながら自分も妄想を並べ立てるとか
自己矛盾も甚だしいぞw
過去の考え方にとらわれない設計・開発をするためには、過去を知らなきゃ駄目じゃん 基礎を知らないので、応用が出来ないのと同じ理屈だよ
>>407-408 ミエミエの自演とはいえ、もうちょっと時間をおくとかしたほうがいいぞ。
あとな、おまえちゃんと全文読んでないだろ。読んでたら
>>392 のようなマヌケなことはしない。
>>410 第三者から見てもお前の方が100倍ぐらい痛いぞ
412 :
デフォルトの名無しさん :2009/06/10(水) 17:08:00
オブジェクト指向について語れ。
なんだ、まっとうな議論してんのかと思ったら オブジェクト指向が理解できない可哀想な人たちの巣でしたか
ループ入りました
最善の「オブジェクト指向開発」の方法論って何よ? それがまっとうな技術者なら、誰でもある程度身に付くなら、そこから議論しないと。
VBScriptは、土方用に特化されたC++ライクなオブジェクト指向言語だな
VBScriptは他に無い独自のオブジェクト指向だろ なんせ継承が無い
継承がないから、土方用なんだろ?
「関数から値が返ってくる」というのより、 「オブジェクトの状態を調べる」というほうが、素人に分かりやすい。 関数って、実体が感じられないんだよね。
関数が汗水たらして働いてるドカタなんだよ
>>420 どっちもいっしょだろ。
c じゃ返ってくる値じゃ使い物にならんから
しゃーないってのはあるが。
> 「オブジェクトの状態を調べる」 って言うと、インスタンス変数なりクラス変数なりの参照をイメージするが…
マスコミがよく使う手だな
仕様決めるのに素人意見の大きさは無視できんからな。 その辺がハード屋とは大きく違う。
428 :
デフォルトの名無しさん :2009/06/10(水) 22:55:36
>>424 教育の話だけど、すごく単純なプログラムで、
関数とオブジェクトのメソッドを教えようとしたら、
メソッドのほうが教えやすいということに気づいた。
文系脳でも大丈夫。
>>410 自演?なにそれ?
妄想や抽象論はいいからさっさと内容について具体的に反論しろよ。
お前本当に英語読めないんだな。
教えやすさは大切だよね。 手続き型は何だかんだ言いつつも変数を箱として視覚的に表現 したりと工夫する事で初心者にも処理の流れを理解させやすい。 OOPは犬や猫をなかせたりとやや迷走気味だけど、まだ努力 は見せている。 前にここで関数型言語における初心者向けの良い例え話を 尋ねたらラムダ演算が答えとしてかえってきた。 説明下手なうちは普及も難しいだろうなと正直思った。
バカ野郎、関数型言語は選ばれた人材だけの占有物なんだから初心者向けとか普及とかいう泥臭いことは考えなくていいんだよ
例え話なんて必要か? 普通に中学・高校で習う関数と一緒だと思うが。 高階関数のこと?
圏論程度でもたとえ話なんて不要なのに それ未満の内容でたとえ話っているのか?
>>433 じゃぁ例え話なしで
君のまわりの鼻たれ小僧に関数型言語について教えてみて
例え話を使った所で"理解"にそのまま至ることは無いが
"どの程度話が通じるか"に差が出る
>>434 まずは、日本語を正しく書けるようになれ
「初めてプログラムします」っていうような人が対象の教育について OOと関数型とを比べてもつまならい。どっちもまぁ頑張れとしか言いようがない。 それよりも、一定以上の規模かつ一定以上の品質という条件を両立したプログラムを書ける レベルまでにどれだけスムーズに到達できるようになるかを比べたい。
アルゴリズムの勉強するなら関数型の方が楽
そういう比べ方をした場合、JavaやC++のような言語では、クラスやオブジェクトの 基本的な機能まではすぐに分かるのだけれど、クラス設計をしようとした途端難しくなる。 これがネック。 そして少し分かりかけてきたかなと思っても、規模についていけずに破綻する。 一方でHaskellやOCamlのような関数型言語では、型や関数やモジュールの基礎は難しくなく、 そこまで分かれば一定以上の規模に耐えられる。 それ以上難しい型の応用やファンクターの活用などになると壁があるけど、 そこはもうプラスαの世界。
Haskellはあの空白でエラーでるとか 旧世代言語みたいなキモイ文法が無ければ流行る OCaml最高〜 Java(笑)市ねw
大抵の事は、VBScriptで十分 自分でオブジェクトを作ろうとするからややこしいんであって、利用するだけなら馬鹿でも出来るし VBScriptを使いこなせるようになってからC++なりJAVAなりC#なり好きな言語を使えばいいんでないの? まあ、VBScriptを使いこなせるようになったら、わざわざ他の言語に移る必要性を感じるかどうか... 馬鹿避けには良い言語だよマジで
業務アプリの8割5分がVBScriptだしなぁ
8割5分とか、統計細かすぎwワロタw
俺の職場はJavaとC#だから、たぶん残りの1割5分。意外とマイナー。
これからはマルチパラダイム言語だな。 って事で、Scala最高。
ネットの盛り上がり方みてるとやっぱScalaなんだろうな と思いつつもclojureに心惹かれてる俺
Scalaってそんなに流行ってるのか? 俺はOCamlでいいや
>>432 その高校で習う関数が分からないんだよ。
文系脳では、1行で書けない関数は理解不能。
Fortranの文関数が限界。
>>447 大丈夫。そいつ等は日本語も読めない連中だから切って捨てても無問題
>>449 抽象概念としては中学で習う関数と同じでも、
扱う対象が数だけではないところが関数プログラミングの難しさだとおもうが。
リストや文字列という概念を理解した上で、関数という概念と結びつけるのが
一番の難関だと思う。
たとえば、関数は関数でも、
f(x) = a * x + b
と
f x (y:ys) = (str (x y)):(f x ys)
では理解するために必要な抽象力がまるで違うだろ?
そこで素朴集合論ですよ 関係のグラフ、値の対応付け等の概念を知れば どんな○○でも簡単に理解できるようになるでしょう
関数が必要だと思える具体的な場面を想像できないんだろ 抽象力(笑)なんて言われたら、ますます想像力が低下するんだろうなぁ
中学校レベルで f(x) = 2x + 1 をどう理解しているかというと、 関数と言うよりテンプレートという感じだろう。 xの場所を数字に置き換えて計算するという感じ。 何か関数という実体があるというイメージはない。 大学で理系の学部に進学する人間以外は、この程度の理解。
抽象化して、劇的に生産効率が上がるならいいんだけどね。 高度な抽象化のわりには、それほど生産性上がるのかどうか微妙な感じ。 オブジェクト指向の仮想関数にも同じようなところがあるんだけど。
しかも、覚えたからって工数減るわけじゃないしねぇ 「あの人はオブジェクト指向を知ってるから工数は普通の人の2分の1でいいよ」 なんて死亡フラグ以外なんでもないなw
むしろきれいな構造作ろうとして無駄に時間費やしてる事の方が多いwww
綺麗な構造作るのは未来のためだから、しょうがないんじゃね? 使い捨てのプチツールなんか、アホらしくて綺麗な構造なんて考えないけどね
未来が来てから綺麗にすりゃいいじゃんか。未来の保障も無いのに綺麗にしてもな。
このままじゃさすがにヤバいなという臭いを感じたら全力を出せ とリファクタリングの本にも買いとった
綺麗にするって言っても、何度もやってればだいたい使うパターンは 決まってくるんで、そんなに苦痛でもないけどな。
OOPの教え方。 赤いまん丸の風船があったとして、 これに「ポンジュース」って書かれた 蛇口をつっこむと、ポンジュースが出てくる。 これがメソッドです。風船はオブジェクト。
w
俺は手続き型を何年かやった後、OOPについて 犬やら猫やらその親クラスの動物やらで説明されてた時はよく意味が解らんかったが 文字列や配列がクラスってのを学んだらピコーンと来た でもまだその時点じゃレベル1だった 「文字列化」するメソッドを学んだ時にレベル2になったかな
OOPもFPも土方には不要というのがこのスレの結論ですね。
土方がいなくなったあとの荒野をOOPマンやFPボーイが代わって 少数精鋭で耕して豊かな土地にしてくれるのならそれでも良いけど、 そこまでの頭数も一人あたりの根性もあるとは思えない。 良い技術であっても広まらないと社会にはクソほどの役にも立た ないんだけどね。ここでFP持ち出してOOP叩く面々にはFPを振り かざしはしても普及させようとかそういう気は全然無いみたい。
466 :
デフォルトの名無しさん :2009/06/12(金) 07:48:19
良いかどうかを証明できない上に これっぽっちも工数を削れない 数字に出せないってことは駄目なんだよ 数字をみないとなにやっても駄目 いつまでも無駄なことを延々とやり続ける
いわゆるプログラミングもやるコンサル、とか 全世界市場に向けてリリースするパッケージの開発者、とか そういう連中の言うことに自己同一化して 単なる下請けコーダーがたけえ本買ってんのは滑稽といえば滑稽だな 辞めちゃえばいいんだよ 業界が腐ってんのはホントのことなんだから 辞めて自分のシステム作ってそれ運用して食っていけばいい WEBサービスとかシェアウェアとかのこと言ってんじゃないよ
とりあえず、プログラム作成しかしてないのに、プログラム開発をしてるつもりの奴が多すぎるのは確かさ 顧客専用のシステムを作成するのに、OOなんてこれっぽっちも役に立つわけがないだろうが 将来的に使うかも? そんなもん使えるかよ!!! 同じことをするのでも、未来の自分の方が上手いコードを書けるだろうよ!!! OOが役立つのは、プログラム開発をしている奴だけだよ プログラム作成している奴には、何の役にも立たないよ
まだ再利用とかいってる馬鹿がいるのか。
フツーに再利用してるが
> まだ再利用とかいってる馬鹿がいるのか。 という馬鹿がいるのが驚きだ VBScript程度でも使えば再利用の重要性が分かると思うんだが まあ、VBScriptを使ってても、再利用しているとは思ってない可能性があるけどなwwww
互換性を大切にしない言語は再利用しにくい なので、いまだにCで書く奴が多すぎるわけですよ
それだ。 再利用再利用と言ってる言語が、再利用しにくいように言語仕様を変える。
再利用しやすいように仕様変更されているが、馬鹿には理解できない仕様になっていってるだけでしょ
再利用しやすいように仕様変更? 馬鹿だからか理解できん
ドカタにオブジェクト指向はいらないって言ってるやつ、オブジェクト指向なんて使ってないだろ。 オブジェクト指向がまともに使われてるのってコーディングレベルくらいじゃん。 コーディングレベル以上のオブジェクト指向なんとかって、オカルトとかいんちきばっかり。
ドカタは黙っとれw
土方の何倍もの金で雇われると、ローリスクローリターンの仕事はさせてもらえない。 投機的な仕事しかできない仕組みになってる。
土方脳では高度=投機的
480 :
デフォルトの名無しさん :2009/06/12(金) 18:27:33
末端ほど仕様の再利用は役に立つけどコードの再利用は役に立たない まず、これを脳みそに擦り込むべき
脳リスク脳タリーンには過ぎたオモチャだよwww
不快なのはOOじゃなくて オーバーエンジニアリング(の強要・またはそれをどこまでも進める馬鹿)なのかもしれない
483 :
デフォルトの名無しさん :2009/06/12(金) 20:40:56
>>474 再利用をしやすいように機能が追加されているのだが、
仕様が変わるということ自体が、再利用の妨げになっている。
もちろん、機能は過去との互換性を考えて追加されてるのだが、
プログラミングスタイルが変わるし、心理的にも抵抗が生まれる。
C++0xなんて、お化けだよ。
もう別の言語作って、C++の機能を使えるようにすればいいのに。
Javaも仕様追加してぐだぐだな感じになってきた。
別に心理的な抵抗なんて無いけどな。 必死になって覚えたっていうものでもないし。
昔の「旧式」の機能で作ったコードを引っ張り出してきたら、 再利用するのに、ちょっと気が進まなくなったりしないか? そこでちょっと手直ししようかな、なんて思ったりするとドツボ。
テンプレートバリバリで作ったソースってそもそもテンプレートに手を入れにくい オブジェクト指向とまるで関係とは思うけどテンプレートを乱用することが オブジェクト指向だと思ってる馬鹿はほんとぶんなぐってやりたい
過度に技巧に走ってるって文句言ってるのは、 本当にそうかもしれないし、本人がレベル低いだけかもしれないし、 具体的な話じゃないと同意しづらいよな。
とりあえずココではオブジェクト指向についての話題に限定したほうが… C++は色んな方向に進化(?)しすぎてるから全部に文句言ってたら切りがないかと
テクノロジックアートレベルに 到達しないとOOなんてつかえねーしな
少なくともスパゲッティよりもおいしいわけで。 こんがらがったスパゲッティなんて食えたもんじゃないよ。
>>491 スパゲッティのがましだよ
だってスパゲッティは大抵長いだけだし
テンプレート地獄は構造がすでに死んでる
誰も触れないし触りたくない
そもそもvector string list以外で必要なもんなんてねぇよマジで
なんで自分で作ったんだこんなチンケな機能ってのが多いな
恥ずかしくねぇのかってぐらい無意味なところで使ってるのが多い
C++への愚痴はC++スレでよろ
>>494 >私はそのプログラムのごく一部のclassを流用したかっただけなのだけど、芋づるがひどすぎて切り離せない。
設計腐ってんだよ>やね
元請の作った複雑怪奇なフレームワークに悩まされて愚痴ってるってとこか。 やつら、机上の空論で標準化とか言い出すからな。
巨大クラスは問題。 バイナリサイズも巨大になるし。
>492 スパゲッティってのは長いコードじゃなくて構造化されてないコードのことだと思うのだが。
何百行もだらだらと処理が書いてあって、まったく構造化されてないコードは たしかに長いだけだが、読みたくない。
>>496 しかもフレームワークのバージョンごとに標準が違うwww
まとめ ・ OOPLは土方やゼネコンには不要 - 逆に生産性が低下するとの事例あり ・ OOPLは能力が高いプログラマ向け - 実験的プロジェクトで高い生産性と品質に有用 - 能力が高いプログラマのコードをコンポーネント化
502 :
デフォルトの名無しさん :2009/06/13(土) 15:43:04
能力高い奴がライブラリを作成して 低い奴はそれを使うのが、オブジェクト指向
>>502 そう分離できたら
かなりすっきりするのだが
仕事では無理だろ
同人ゲームで自分が仕切ってたなら
くらいの状況でもなきゃ実現できん
504 :
デフォルトの名無しさん :2009/06/13(土) 15:58:27
>>503 仕事だったら、ぐちゃぐちゃにされるのは覚悟の上で指導するしかないわな。
そうでもしなければ、いつまでたってもそいつは土方コーダーから抜け出せないからな。
>>486 殴るだけでいいのか?
俺なら殴った後、蹴りを入れてやる。
できる奴ってのは入社前から色々とプログラムを作った経験があった奴等。 学生時代からプログラミングで生活費を稼いでいたりする連中だ。 中には例外もいるかもしれないが、ここ10年ぐらいの傾向では、 大学受験よりも先にプログラミングをはじめた奴は当たりが多いね。 そういう連中は手続型でも仕事できるが、OOPLならもっと良い仕事をする。 1の仕事をさせれば、そこから10の仕事に使えるコードを残してくれる。 入社してからプログラミングを教わった連中だと、せいぜいが土方のカシラがいいとこだ。 OOPL使わせても他人のコードに文句つけるばかりで、ゴミしか残さない。
オブジェクト指向で生産性はあがらないよ
>>508 どういう物をプログラムしたんだよ。
RDB引いてウンタラするだけの中間とか?
土方がOOなんて意識しなくて済むように、OO使ってフレームワーク作る。 今までそう思っていたが、土方のレベルは想像以上に低いことに気が付いた。 DSLでも作って、そこだけ書かせたほうが良いんじゃないかと思い始めている。 土方使わないのが、ベストだけどね。
土方OO
おれがMayerだ
>>511 土方にDSL使わせる?
DSLを理解するのに時間かかる上に、
自分の無能力をDSLのせいにするだけ。
土方に特化したのがVBScript やっぱ考えなくていいのは楽でいいなぁ
>>511 これだからプログラミング脳は困る。実装する事しか頭に無いとはね。
土方を教育するフレームワークを作れば済むこと。
>>516 今まで社内教育フレームワークで土方を量産してきただろ。
そしてその品質の低さに
>>507 がダメ出ししてるわけだが?
そんなに言うなら
>>517 がもっとまともな教育フレームワークとやらを作ればいいよ
だから教育フレームワークという考え方そのものがダメだということに なぜ気付かないのだろうか・・・
馬鹿は馬鹿として放って置くのが一番 馬鹿が張り切って仕事しても碌なことにならに無い 昔から言うだろ、触らぬ神に祟りなしって
>>515 それはお前がVBScriptであれば考えなくていいレベルだから。
土方にどんな言語をあてがっても上手く行くはずがない。
VBScriptで頭を使わなければならない場面が想像出来ないのですが... クラスは有っても、クラスを使う場面が無いのがVBScript オブジェクトの利用は出来ても、オブジェクトの定義が出来ないのがVBScript それで一体何処で頭を使えと...
これVBScriptでできるの?っていう仕様変更が来たとき。
>>523 VBScriptで出来ないことを上げるほうが難しくね?
VBscriptってVB6のサブセットじゃねえの
いまいちつまらない話が続いてるな。 スレタイから言うと、どうすれば現場からOOを消せるかという問題を話し合いたい。 「消せるか」という問題なので、始めからCOBOLやFORTRANしか使ってないような 現場は無視します。OOしない事を端的にどの言語を使うかという面から見ると、 1. C言語メインで。 2. HaskellもしくはOCaml(without object)メインで。 3. Lisp, Schemeメインで。 という選択肢が考えられる。perlは最近はOO言語になり下がっているので候補外。他には?
4.bashscript メインで
自作のクラス作らないで、継承もしないなら、 オブジェクト指向開発じゃないってことでいいんじゃないの? それなら、CのFILE*みたいなもので、 便利なモジュール(ライブラリ)というだけだ。 だから、そういう意味ではPerlもあり。 C++でも、メンバ関数作らないで、継承もしないならありだ。 逆に、GNOMEのGObjectとかはダメ。
OCamlがOKで、perlがだめだという理由が分からない。 オブジェクト指向を使わずに組めるんだから。
>>529 イケメンとブサメンの理論で考えれば自明
クラスを作る必要がなく、クラスを作っても継承できないのにオブジェクト指向なVBScript! OOP!OOP!
Prolog
文字列とかウィンドウとか、具体的なものを オブジェクトにしている分にはいいんだよ。 つまり、誰にも明らかなモデル化ならいい。 ところが、何から何までオブジェクトにして設計しようとすると、 どこかに変なところが出てくる。 そういう一部分から、全体に混乱が広がっていく。
2013年だかに国が策定する 調達規約だとOOあるものは 製品として採用できないはずだけどな
>>534 そんな、OSごと否定する仕組み作る気かよwwww
>>533 オブジェクトにするとムリがあるものってたとえばどういうの?
>>536 ソフトウェアの機能をオブジェクトに分解しようとすると、
どこかに入れなきゃいけないけど、どこに入れてもなんかしっくりしない
みたいな機能が出てきたりする。
つまり、その機能を、どのオブジェクトにやらせるのか。
なんとかUtilとか、なんとかHelperってクラスが至るところにあったり
現場からOOを消したいなら、まずどんな現場を想定しているのか?から提示しないとな。
体育会系
>>538 何処に入れてもしっくり来ないなら、そのものをオブジェクトにすべきなんじゃない?
>541 そういや、どこぞのサイトに「COBOLは体育会系言語」って書かれてたような
>>542 んなことするならクラスメソッドじゃなくて普通に関数として
用意した方が直観的だったりする。
java じゃ仕方ないけど。
>>545 全てをオブジェクトとして扱うと言うのを
全てをクラスorプロトタイプとして扱うなんて考えたら駄目だろう
変数も、関数も、クラスも、プロトタイプも、定数も、全てをオブジェクトとして捉えろよ
全てをオブジェクトとして捉えることが出来るようになれば、
"定数は名付けろ、マジックナンバーを使うな"
って意味が理解できるようになる
オブジェクトとは何ぞや
究極的にはプログラミングにおける全ての要素、だろうね。 数値、参照、配列、コード、識別子、関数、クラス… ただ、どこかで折り合いは付ける必要があるんだが。
C#はその辺の妥協の仕方が上手い。
オブジェクトって、プログラミングにおける全ての要素じゃなく プログラムの実行時に影響を与えるもの全てだろ
Math.sin(x) とか。Flashも。
>550 実行時に影響を与えないものの例って何かある?
>>548 その中で「参照」だけはあんまりオブジェクトとして
とらえたくはないな。
元はシミュ用だったことを考えるとプログラム内の部品をオブジェクトとかおいちゃうのって 仕様をクラスに落とす便利さをコーダーの勝手な理屈で排除してない? 仕様書から落としてきたクラスと コードレベルの都合でできちゃったレベルのクラスが 同列の扱いになってしまってるようなソースってのは大抵馬鹿の書いたソース
>>554 冗談は染んでから言えよw
関数と構造体だけで正しくプログラムは書ける
仕様書も作成可能だ
>>555 俺のレスにその内容のレスって意味わかんない
コードレベルの都合でクラスなんか作らないって事だろ
Haskell とはクイックソートが1行で書けるくらい(HQ9+のようなズルなしで)軽量な関数型言語です。 Haskell が真の能力を発揮するのは、複雑で巨大なシステムを書くときです。 一般に、プログラムは実現したいシステムが複雑になるにつれて、可読性はどんどん落ちていきます。 しかし、Haskellは違います。記述の簡潔さ、モジュールによって提供される名前のスコープの管理、関数合成による直接な記述など、他の言語に比べて機能は強力です。 何よりも型を自由にかつ厳密に書くことがすばらしい。これにより、コメントはほぼ必要なくなります。 ちろん、プログラムにコメントを付け加えておけば、それは HTML に自動的に翻訳され、そのままドキュメントになります。
>>559 haskellとか興味ない
マイナーなの広めようと必死なのわかるけど
やめてくれない?
561 :
デフォルトの名無しさん :2009/06/14(日) 15:44:24
ハスケルは良い言語だとおもいますよ。 でもほとんどのプログラマーはマイクロソフトに影響されて頭がbasic脳なんで 糞言語しか理解できないんです。 だから斬新な言語ほどマイナーになってしまうんでしょうね。
>>561 いいかどうかは関係ない
haskellとか興味ないから
>>559 簡潔に書くことに労力を取られ、肝心のシステム構築に支障が出る予感wwww
Haskellはマイナーじゃないだろ……
関数型言語って、GUI(非同期的イベント処理)よりも バッチ処理に向いてそうだけど、どうなんだろう?
再帰定義データに対する処理にうまく帰着できれば綺麗に書ける上に並列化とか 色々拡張するのも自由自在だけど、 そういうのができないような構造だと非常に面倒な事になる
GUIはイベントハンドラが書きやすい言語なら何でもいいんじゃない? そういや、以前はオブジェクト指向言語の紹介をするのに、 死ぬほど引数並べてウィンドウを構築するCのコードと、 シンプルなコンストラクタ+プロパティいじりたいところだけアクセッサ 呼び出しするオブジェクト指向言語を対比してみせるのが流行ってたな。
まあだからマルチパラダイムだよなー 関数型のエッセンスを取り入れたマルチパラダイム pythonかlisp(系)か でも大規模開発にもっていこうと思えば、 例えばCだと三項演算子は使わないこと(読めない人が居るから)、とか 一関数一ファイル(管理しやすいから)、とか なんか連番の機能ID(SKJD001020みたいな)だかなんだかをソースファイル名とか関数名とかに使う なんて規約作っちゃったりしてスポイルされてしまうのは目に見えてるw
大規模開発だと1関数5行以内が 国際ルールだろ
>>569 1関数5行以内を遵守してる大規模オープンソースプログラムを教えくれよ。
俺が読んだ限りでは、apache httpdもopensslもそんな事にはなってないぞ。
国際ルールなんだろ?
571 :
デフォルトの名無しさん :2009/06/14(日) 20:19:36
>>567 > GUIはイベントハンドラが書きやすい言語なら何でもいいんじゃない?
継続
五行以内だとムリヤリすぎて、ぜってー読みにくくなる予感w
この後に及んでHaskellやOCamlに興味がないソフトウェア技術者がいるのは残念です。 VisualStudio2010にはOCamlの改造版であるF#が標準搭載されます。 Windowsをメインターゲットに開発している技術者なら、注目に値するはずです。 Software Design 2009年04月号ではHaskellでWebアプリを作る特集がありました。 Haskellの記述力の高さと安全さと並列性は、Webアプリ開発者としての責任を果たすなら 「知らなかった」では済まされません。 そもそも関数型言語の特徴(特にクロージャーやバリアント)などは次々にOOPLに取り込ま れています。それらがなぜ取り込まれたのか、その元を知っておきたくはありませんか?
Hashkellってなんであんなにカッコとかに煩いの?
>>576 つうか電卓の機能本体をみろよw
こういうのをオペレータクラスだのなんだのゾロっと揃えて書くことになるんだろ
python の tk でもつかってごりごりつくりゃいいじゃんと 思ってしまうんだが。
>>577 Calculatorクラスつくって、そこに入力を放り込むってとこじゃね?
>>579 まあそりゃそうか
数式処理と勘違いしたw
どんな考え方でかいても、ちゃんと動くならいいんじゃないの。 それこそlogoでも。
>556 なるほど、それはあんまりオブジェクトとして扱いたくないなw
コメントで、バイナリファイルが大きくなるって事か。 未だに改修コメントとか残しているバカどもを説得する材料にはなるかもな。
それ以前にそんな言語使いたくない
585 :
デフォルトの名無しさん :2009/06/15(月) 11:09:53
「プログラムの再利用」のためには、エディタでプログラムの一部をコピーして 使えばいいのではないか。いまどきのエディタは、かなり高度な編集機能を持つので コピーや改変は容易である。そうすれば、継承などのプログラム言語の機能は何も 習得せずに、プログラムの再利用が出来て便利である。
コードの品質を基準やメトリクスで保証しようという発想がもうダメダメ。 できる奴が書いたコードは長ヒョロくてもしっかり考えて書いてあるし、 アフォが書いたコードは短かく切ってあっても余計トレーサビリティ落とすだけ。 結局は書いた奴の能力で全て決まるんだよ。 あとは、優れた能力を持つ技術者がその能力を生かせる言語を選ぶだけ。 これならOOの糞宗教も不要だし、土方のせいでOOの評価を落とされることもない。 みんな幸せになれるんじゃないの、優秀なら。
スレタイの「消えてなくれ」っていうのが厨っぽくて好きだよ
エターナルフォースブリザード
エターナルフォースブリザード 一瞬で相手の周囲の大気ごと氷結させる 相手は死ぬ V ∧_∧ ( ´・ω・`) ∧_∧ / \ (´Д` ) .__| | .| |_ / ヽ ||\  ̄ ̄ ̄ ̄ / .| | | ||\..∧_∧ (⌒\|__./ ./ ||. ( ) ~\_____ノ| ∧_∧ / ヽ \| ( ) | ヽ \/ ヽ. | |ヽ、二⌒) / .| | | .| ヽ \∧_∧ (⌒\|__./ /
彡 。・ 彡 ・゚・ 。・゚・。・゚・。・。・゚・。・゚・。・゚・。・゚・ 。。・ 。・゚・彡。・゚・゚・。・゚・ ,.。 ο ・゚・。・゚・ 。。・゚・。・゚・ 。・゚・彡゚・。・゚。 0 o *彡 ・゚・ 。・゚・ 。・ ,.。 ο 彡 彡 0 ∧_∧ 。・゚・彡。・゚・ 。・ ・。・ 。・゚・ 。・゚・。・゚・゚・。・ . . 。 0 o彡 。・゚・。・゚・ o 彡 ( ´・ω・`) ∧_∧ 。・゚・。・゚・ 彡 。・ ,.。 ο ゚。・彡゚・。 / \ (´Д` ) ・ 。・゚・ 。・゚・。・゚・ ゚。.__| | .| |_ / OO ヽ 。 ο ,.。 ο ||\  ̄ ̄ ̄ ̄ / .|指向| | 。・ 彡 。・゚・。・゚・ 。・゚・。・゚・ 。・゚・ 。・゚・ 彡 ||\..∧_∧ (⌒\|__./ ./ 。・ 。・゚・。。・゚・。・゚・。・゚・。・゚・。彡・゚・゚ ・。・゚・。・゚ ||. ( ) ~\_____ノ| ∧_∧ 。・゚・。・゚・。・゚・。・゚・。・゚・ 。・゚・。・゚・。・ / 関 ヽ \| ( ) 彡・。・゚・。・゚・。・゚゚・。・゚・。・゚・ 。・゚・ | 数 ヽ \/ 手 ヽ. ・。・゚・。・゚・。・゚゚・。・゚・。・゚・ 。・゚・。 ;:''`'';"| 型 |ヽ、二⌒) / .| 続 | | ' '';;:' ''゚;:;:''"'';"'' :"' '゚ ''゚;:;:'"; .| ヽ \∧_∧ (⌒\|_き./ / ・゚・。・゚・。・゚・。・゚・ 。・゚・。・゚・。・ ・゚・。・゚・。・゚・。・゚・ 。・゚・。・゚・。・
____ ∧_∧ /___/| ( ´・ω・`) .| ∧_∧ !/! / \ |(´Д` ) |/| .__| |____| |______..| OO/ヽ|/| ||\/___/| /| .| 指向 | | _____ ||\|..∧_∧ .|/.| (⌒\|__./ ./ |/|/____/.| ||. | ( ) |/.| ~\_____ノ |.| || ∧_∧ |/| |/ 関//|/.| \|.!/ !!( )... | /.| || 数/ ..|/.| \.!/ /手 ヽl/ | || 型// | |二⌒) /|.|...|続/ | ll/| |.|// .| | ヽ\∧_∧ (⌒\|_き./ /.!
>>585 >エディタでプログラムの一部をコピーして使えばいいのではないか。
エディタがコピペの履歴を覚えていて、コピー元のコードを書き換える
とコピー先も書き換えてくれるようなリファクタリングを実現している
のであれば考えても良い。
>>592 いつ他人に書き換えられるか分からんようなもの誰が使うのだ。
>>593 同様の修正を施すべき場所が分散して管理できなくなることをなぜ恐れないのか
おまいら何釣られてるんだよ。釣り針が大きすぎるだろうが
>>593 それはバージョン管理システムを使って解決すべきでは
コメントもオントロジー管理すりゃいいのに。
598 :
デフォルトの名無しさん :2009/06/16(火) 00:31:17
そもそもコードをエディタでコピペして作るためにオブジェクト指向プログラミングが 存在するんだよ。
>590-591 OO指向の片方のOは何の略なんだ
おっぱい
おおきな おっぱい ぱぱのもの 思考
おっさん
よくこんなスレタイで盛り上がれるな
そろそろADT(Abstract Data Type)の優位性について語ろうか。いや、語ってください。
とりあえず、ADTとは次の内容によって構成されるもの。TAPL page 368. 1. 型の名前A 2. 型の具体的な表現T 3. 型Tに対する操作の実装 4. 型の表現や操作を包み込む抽象化 OOと違って明確な定義がある。
カウンターを(OCamlの)ADTで実装すると、こう。 module 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;;
ADTもOO同様、文脈によっていろんな意味を持つからね。 リスコフ(手続きとデータのセット。原義。広義)なのか、 ストラウストラップ(ユーザー定義型。クラスとほぼ同義)なのか、 クック(型による抽象化。手続きはデータに内包させない(つまりクラスはNG)。狭義)なのか くらいははっきりさせとかないと。
あとはソート代数とか、ADTは関係あるよなないような、ってのが多い罠
Modula-3のOpaque型もADTに情報隠蔽を加えたようなものだが。
>>613 え?違うの?違いが分かりません。
型と操作が含まれていて、それらを抽象化できるんじゃないの?
>>614 > クック(型による抽象化。手続きはデータに内包させない(つまりクラスはNG)。
モジュールに手続きを内包させるのは違うんでないの?
>>615 >>610 ではADTによる型と操作を分けたlistの実装やそのシグネチャーが言及されています。
それに、複数ヶ所でMLの抽象データ型にも触れられており、
cookのADTは
>>605 ,
>>606 と捉えて問題ないように(私には)見えます。
>>616 これは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;}
};
618 :
617 :2009/06/16(火) 23:29:49
すまん
>>617 は忘れてくれ。寝ぼけていたようだ。
クラスが駄目なのは分かったが、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;}
>>617 Counterが型だからという理由ではなく、
>>605 の2(型の表現)や4(型や操作の抽象化)が
ないので、ADTの定義からは外れると思います。
型を抽象化したのではなくパラメータ化したと言う方が正しいかと。
620 :
617 :2009/06/16(火) 23:43:08
>>610 を読んでみると、
Simula and C++ support both ADTs and PDA in the same framework; ...
とあるからC++でもADTを表現出来ると思うんだが、純粋なADTじゃないから
駄目なのか?
>>620 すみません、C++には詳しくなくて分かりません。
でもたぶん、typeid演算子を使えばできるぜというくらいの意味じゃないでしょうか。
>>621 >>610 の論文は1990年頃に出たと思うんだが、当時のC++にtypeidは無かった気がする。
しかしADTもOO並にカオスだな いくつも同名の別定義を作るくらいなら別名にすればいいのに
>>625 dateが、今日の日付を表すのか、単なる日付を表すのか、彼女といちゃつく日を表すのか
それを文脈から読み取れるようにしようとしているだけだろ
空気の読めないプログラマに、空気を読むプログラムをするように言ってるようなもんだからなぁ
先生分かりにくいです
下手なアナロジーが余計に物事を分かりにくくするという典型例だな
人が嫌がりそうなことを言っときたい人ってのだけはわかるw
なんかこのスレは勉強になるなぁ ところで、MLのモジュールシステムってのはどうなの?OOより使いやすいの? クラスベースと違って型は型として組み合せて作れるので、 その点は見やすくていいかなと思ってる
> MLのモジュールシステムってのは 出来上がったシステムとは何の関係もない 使ってうまくものが動けば正解なんだと思う 問題領域に最適な手法を使うのが正しい道だろ? 俺的には、信号処理とかだとOOなデザインするより、 伝達関数とか状態方程式が飛び交ってくれた方が 分かりやすい
>>624 まだADTが良くわからん。
>>620 にあるように、CookのOOPvsADTnの論文で
C++でもADTが実現可能とあるけど、誰かC++でCookの言うADTを表現してみてよ。
634 :
633 :2009/06/17(水) 20:54:07
途中送信してしまった。 当然のことだが、どちらが有効かは場合によるから臨機応変に選択すればよい。
>>633 6ページ目の話はなんだかexpression problemの事を言っているように見える
まー、1991年だし、バリアントを加えるのにはOO有利ってことか。
ちなみに、2009年には多相バリアントという便利な代物があるから expression problemがモジュールシステムの弱点とは言えないと思う。
expression problemの定義は?
>>636 ちなみに6ページ目の例をpolymorphic variantsで実装するとどうなるの?
639 :
デフォルトの名無しさん :2009/06/18(木) 07:40:57
そもそもオブジェクト指向と関係無いような気がする
641 :
デフォルトの名無しさん :2009/06/18(木) 18:00:29
全文リンクレスは著作権的にNGだろ 自分の言葉で語れよ
直リン厳禁です><
643 :
デフォルトの名無しさん :2009/06/18(木) 18:27:59
少なくともリンクがレスのメインになったらアウトだろ
直リンて懐かしいなw またキチガイが無駄な屁理屈こねてんのか
645 :
638 :2009/06/18(木) 18:34:24
>>640 やはりそれが定義だったのか。ググってすぐに出てきたのがそれだったから。
polymorphic variantsで継承&仮想関数オーバーライドとほぼ同様のことが
出来るのは分かった。ただ少し記述が面倒だな。あと拡張したモジュール名を
使う必要があるのも面倒というか。
どちらにもそれなりの良さがあるから一概にどちらが良いとは言えないが。
リンクだけレスは著作権法の引用の範囲をぶっちぎりで破ってる >自分のオリジナルな文章が主(量的にも質的にも)であり、引用部分が従であること (ちなみにこの文は法律なのでおk) つまり、リンクだけレスは著作権法違反
アホがいる
OOやADTの形式論を議論している場で、 引用と参照の違いが理解できない人がいるのは、 とても滑稽だと思った。
グーグルみたいに巨大になれば法律を捻じ曲げる力が持てるぞ 人の作った法なんて巨大になって捻じ曲げようぜ
>>645 >polymorphic variantsで継承&仮想関数オーバーライドとほぼ同様のことが出来るのは分かった。
気持ちは分かるけど、オブジェクト指向の枠組で捉え直そうという試みは
理解を助けるための最初の一歩だけにしておいた方がいいですね。
もっと素直に書くと、expression problemを解決する鍵は、
- polymorphic variantsは複数の型になり得る(多相)ので、
基の型と拡張後の型の両方に属すことができる
- モジュールシステムは元々操作を拡張することができる
という二点で成り立っている訳です。
>>651 気持ちの問題は関係なくて、元々の話はStroustrapの6ページ目の例を
polymorphic variantsでどう解決できるかを聞いていたのであって、
だからこそ継承&仮想関数による表現がどのように対応するのかを確認したわけ。
> - モジュールシステムは元々操作を拡張することができる
これは具体的にどういう意味?当然の話だと思うけれど。
>>641 単なるリンクは、引用じゃありません。
リンクは、文献参照と同じです。
著作権的にはまったく問題ありません。
問題あるというのなら、判例か何かを出してください。
切腹ー
>>652 あぁ、誤解していました。すみません。
OOでは継承と仮想関数によって「種類を増やす」事をしていた訳ですので、
polymorphic variantsが同様の役割を担っているのはおっしゃる通りです。
あと、
>モジュールシステムは元々操作を拡張することができる
というのは、"新しい操作を加えることができる"の間違いでした。
OOではこれをやろうとすると、visitorパターンを使わなきゃいけなくなります。
で、visitorパターンを使うと今度は種類を増やせなくなる。
つまり、expression problemはC++やJavaでは解決できません。
OOがゴミということは最初からなんとなく判ってたんだ 途中から総称型がもてはやされた時点で確信に変わった 次第にOOはどんどん隅に追いやられ、やがて名前だけの存在になった つまりOOは、OOであることをやめてしまったのだ
OOPLにはなんでタプルとバリアントが無いの?バカなの?死ぬの?
どったん?死ぬん?
アメリカでOOP禁止になるかもな
>>632 template <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;
}
PythonにはタプルあるしVB系にはバリアントあるけど…
C++はboostのtupleが使えるから特に問題無いな。実装は汚いが。
>>665 バリアントの意味が違う
どの型でも代入できる変数なんてキモいやつの事じゃないからね
いわゆる代数的データ型だな
代数的データ型といえば、コンパイルは通るのに実行時にパターンマッチ失敗して どこが間違ってるのか探すのが面倒で、静的型の意味がないと思った記憶がある
バリアントあれば継承いらねえことに気づいた
>>670 それは、継承の使い方を間違っているだけじゃないの?
>>670 「いらないこともある」だな。
継承あった方が便利って時もある。
674 :
デフォルトの名無しさん :2009/06/20(土) 12:51:11
変数に型があるからオブジェクト指向が考えにくいのかもしれん。 Lispみたいに変数の型を無くして値に型を持たせたらいいかもな。
http://practical-scheme.net/trans/noop-j.html > 個人的には、オブジェクト指向抽象化が必要だと思ったことは一度もない。 Common Lispは
> 恐ろしいほど強力なオブジェクトシステムを持っているが、私は一度もそれを使ったことがないん
> だ。ハッシュテーブルにクロージャを詰め込むとか、弱い言語だったらオブジェクト指向テクニッ
> クが必要だっただろうと思えることはたくさんやってきたけれど、CLOSを使う必要に迫られたこ
> とは無かった。
>>670 も
>>673 もおまいらみんな土方だろ
継承の代わりになり得るのはバリアントじゃなくて多相バリアントだ
>>675 要約すると
「LISPのOOはCLOSがあるけど結局クセが強すぎて怖くて使わなかった
考えてみたらおりゃのやる範囲じゃOOいらなかった」
CLOSが変態なのはCLOS屋も認めるところだからなあw
>>669 それ、exhaustive checkの警告を華麗にスルーしてるだろww
681 :
デフォルトの名無しさん :2009/06/21(日) 11:16:47
やっぱり、無制限に新しい型を作れるオブジェクト指向と、 静的型システムとは相性が悪いんだよ。 Objective-C みたいに、別々に存在してるほうがいいんじゃないの。
682 :
デフォルトの名無しさん :2009/06/21(日) 18:09:22
まぁ臨機応変に
>>681 >やっぱり、無制限に新しい型を作れるオブジェクト指向と、
>静的型システムとは相性が悪いんだよ。
相性以前に、型なんて何にも考えずに作った構文やセマンティクスの上に
おまけで型を入れようとするから、静的にならないんじゃないかな。
型システムをおまけとして分離すると再利用しやすくなる。 例えば型システムの古いバージョンと新しいバージョンを連携させることもできる。
>>684 >型システムをおまけとして分離する
型安全とか型推論ってその言語で定義される値や構文の上に定義されるものだから、
分離すること自体が困難そうにみえるのだけど。
型システムをおまけとして扱う関連情報源ありますか?
>>685 Objective-Cの話だと思うが
動的型付けが気に入らないなら、C++/CLIとか調べてみれば
>>685 アノテーション使うヤツなら太古の昔から色々提案されてるだろ。
>>674 それって python じゃね?
まあスピードもメモリも気にしないってことなら
いいんじゃないかと思うが。
あんな括弧もないような言語は捨てちまえ
690 :
デフォルトの名無しさん :2009/06/22(月) 19:52:51
lisperキモ
lisperは巣にカエレ!!!
lisper lisperささやいて〜
動的型のOOPLは、自分が書くときには最高のパフォーマンスを発揮する。 物によっては、基底クラスやオブジェクト自身の型さえ変えられる。 でも、他人のソースを読むときは、まさにカオス。
だからケント・ベックは他人が読みやすいコードの重要性にSmalltalkで気付いたのかな。
動的型のOOPLのソースコード、引き継ぎたくねー。
じゃあrubyとか最悪ですね
うちの会社じゃ、Rubyのコーディング規約として、publicなものには型を コメントとして書く事にしてるよ。
それ最低だな。 静的型の型検査も、動的型のフレキシブルな記述も、両方とも捨ててる。
>>699 なにその一見同意しそうで、いやちょっとまてよ?ん?となる文章は。
型を意識するだけでなく、コメントとして書くぐらいなら 型シグネチャが必要な言語でいいじゃんって思うけど 強い静的型のLLなんてない(強いていうならHaskell?)現実
せめてLLを定義してから言えよ
静的型+型推論が一番かなぁ。コンパイル言語になっちゃうが。
別に今のLLだって最初に全体をプリコンパイルしてるの多いし そうでなくても全体をパースしちゃうのも多いから 純粋なインタプリタなんて今や希少種じゃね?
/bin/shさいこおおおおおおお
>701 スクリプトモードののScalaとか? Rubyで、コメントにアノテーションとして型を明示する書法無いの? なんかのライブラリのHTMLドキュメント見た時に書いてあったから、 そういうツールが出回ってるのかと思い込んでたけど。
>705 ああ、シェルスクリプトやバッチファイルはそうだっけ。
>>704 具体的に言語名は?
ruby,pythonなんか遅いからそんなことやってないと思うが。
>708 RubyもPythonも最初に全体をパースしてなかったっけ?
ファイル全体を一気にパースしたらコンパイル言語というのは少し御幣があるな。 抽象構文木を解釈しながら実行するなら、インタプリタと呼ぶべきかと。 PythonなんかだとJITコンパイルをする実装もあるが。
いや、俺(>704)は「コンパイル言語」とは言ってないよ。 ただ、どっちにしても全体を最初に見るワケだから 「静的型+型推論」をするのにコンパイル言語である必要は無いんじゃないのか?と言いたかった。 言葉足らず過ぎてすまん。
>>708 > 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.
>>704 >別に今のLLだって最初に全体をプリコンパイルしてるの多いし
ここに反応してレスしたんだ。多いのだったらいくらでも例をあげられるだろう。
ruby,pythonをあげるととたんにパースしているはないだろう。
もしそういうのがあれば使ってみたい。
>>712 マシン語にならないのにプリコンパイルと言われても他の言語になっているだけ。
>>713 > マシン語にならないのにプリコンパイルと言われても
>>704 はこの考え方が古いって言っているんだよね。
中間言語へコンパイルしてさえいないのはいまや希少。
> もしそういうのがあれば使ってみたい。
v8 javascript engine
構文木からいきなりx86に変換して実行。
eval関数がある言語なのに。
REPLでも同じようにx86に変換して実行する。
実行中に型推論うごかすのかよw
大抵はインクリメンタルにやればすぐ終わるよ そのまま動かす方がオーバーヘッドが大きい
>>714 > eval関数がある言語なのに。
lisp 系は昔から native 吐くやつざらにあるじゃん
>>714 V8のソースを少し見てみたが、本当に抽象構文木Tから直接マシン語を
出力してるな。アセンブリ言語に近い中間言語に落として最適化を
かけてからコード生成というアプローチだとレイテンシー等の問題が
出るってこと?
>>717 ほとんど全てのLispはインタープリタも持ってるでしょ。
(Scheme実装のStarlinみたいな処理系もあるけど)
だからS式のまま実行できる。
v8はインタープリタはない。そこが違う。
>>718 二度手間だって事でしょ。
WebではJavascriptのコードはソースで提供されるわけで、
PythonみたいにILを外部ファイルに持っておけるわけじゃない。
だったらJIT一発で実行した方がいい。
それからプロパティアクセスを高速化するためにはJIT必須という考え方。
Cの構造体フィールドアクセスと同じコードになってる。
「コンパイラ・スクリプトエンジン」相談室スレに移動した方がいいかな?
つまりnativeで実行できない言語はゴミ
native実行していてもゴミ同然の言語あるよねw
>>719 IR無しだと最適化が二度手間になると思うんだが、ターゲットCPUが
x86, x86_64, ARMだけだから何とかなっているのかもしれん。
というかLLVMなどを使うより高速なコード生成が出来るなら
やっぱりGoogleは凄いってことだな。
v8はデータフロー解析みたいな最適化は一切やってないんだわ。 ピープホール的な事をちょっとやってるだけで。
民主党が政権とると OOPは規制対象になるね税金の無駄遣いだし
725 :
デフォルトの名無しさん :2009/06/24(水) 03:21:05
民主党が政権とるとOOPを使えないってこと? 自民党だと派遣マンセーでjavaを強制的に使わされそうだし この際OOP規制で良いや
今朝がたの会話 俺 「そんなやりかたじゃ規格が満たせません」 某SE「今までこの方法で動かなかったものはないんだからこれでいいんだ」 … … … 規格書の読み方も知らんのか? > OO できる SE
OO関係ないやん。
上司「その規格書さ、間違ってるから」 よくあることである
729 :
726 :2009/06/27(土) 20:14:14
>>728 某SE「OO的に書けないんだからその MP4 の規格書間違ってる」ってか
理解力の無さから察するに
>>726 の方が間違ってそう
今日、次期政権担当政党で IT詳しい人に聞いたがやっぱり OOPは禁止だと言ってた それってレガシーなんでしょって言ってたよ
w
オブジェクト指向って、せっかくまとまっているグローバル変数を あっちこっちに散らかしてわかりにくくしたものなのですね と言ってみる
流石にグローバル変数を持ち出されるとコボラ乙としか言えない
オブジェクト指向なんかPhotoshopで言えばレイヤーみたいなもん あって当然使えて当然 ただ使えるだけで威張ってるのは馬鹿 「レイヤーを使わないと絵が描けません」と威張る言語も馬鹿
使えませんと言って威張ってるのはもっと馬鹿
アメリカでもEUでもOOP規制の動きが 出始めてる。ソフトウェア産業に害しか及ぼさないということで 原則使用禁止を国レベルで採択する方向が強まってるね
つまんね
「OOを使わない」と「OOを使えない」の差は大きいね。
この際使えなくていいよ。もう使わないから。
私も C++ Ver1 のころはOOはいいと思ってました。
C++ はそれ以外に問題が大杉だw
746 :
デフォルトの名無しさん :2009/07/02(木) 13:40:09
lisp属の()が可愛く見えるほど 変態構文だらけになってしまったもんなぁ > C++
たとえばどんな? あるいはとくにどれが?
テンプレートとか今度入ってくるラムダとかのことじゃねぇの
boostなんかだと演算子をオーバーロードしまくってるから とてもC++とは思えないコードになるからな。
こねぇwww
ぶろっがーの間でははやるんじゃね?
やねうらってLISP知ってたのか 組み込み寄りの人かと思った
HSPerとLISPerってどっちが馬鹿なの?
あくまでも、Lispは実験言語だな。 でも、実験言語としては非常に優れている。 プログラムとデータが渾然一体としているから、 どんな革新的な機能でも追加できる。 ただし、文法がS式なことだけ我慢すれば。
S式は抽象構文木として使えばいいのであって、 具象構文は普通にパーサ書けばいいだけ。 LISPは元々は自然言語処理のために開発されたことを忘れないで><
757 :
デフォルトの名無しさん :2009/07/02(木) 22:12:54
まぁ、何だかんだ言っても馬鹿にはLispは使えませんよ
だからって、Lispを練習しても馬鹿が直る訳じゃないんだが、 時々それを勘違いしてる奴が居る。
guile ctax なんてものもあったけど、使われてないね。
他人のオナニー見ても気持ちよくないからね
見事にLISPスレ的な流れになったな
LISP語るならCLOSについて話せよ
モノを完成させてからオブジェクト指向で書き直すなんて二度手間です><
766 :
デフォルトの名無しさん :2009/07/03(金) 23:15:27
>>758 が「馬鹿はLispが使えない」ことを証明しますた。
別にわざわざLisp使う意味がわからないな C言語でいいじゃん
>>767 使いなれてしまうと日常的にCを使いたくなくなるな
つか、俺にとってはCは未だに高級アセンブラ、C++は超高級マクロアセンブラ
なんでスペシャル変数を導入しないんだろ >C++
最近、C言語で地味に堅く組むのがマイブーム
高級アセンブラと思ったことはないけど、Cは十分に高級言語なので たいていのことはこなせる。 Cより複雑なことをしたい場合は、PerlとかRubyとかのスクリプト言語にするよ
スペシャル変数www それがプログラミング言語設計一般で使われる概念名称だと思ってるのかwww ひさしぶりに腹かかえたwwwww
772 :
デフォルトの名無しさん :2009/07/04(土) 07:44:15
なれるとLispはCやC++よりプログラムを考えるのが楽チン
むかしLISPを勉強しようと思ってMSDOS用のXLISPを入手した。 これが使用中にしょっちゅう落ちる。でメンテしてめったに落ちなくしてついでに いろんな関数を作って高級アセンブラ並にしたんだが結局Cを使った方が楽で使わ なかった。LISPはおれにとって楽チンどころか苦痛を与えるためにあるようんもんだ。
マジOOは思想ごとこの世から消えて欲しい。 CやVBでさえまだ満足に使えてないのに、 周りがどんどんOOに進んでいくので、落ちこぼれ感が半端ない。 技術的というより、精神的に追い詰められる。
相手を追い詰めることで自分が進んでいると思えるって、ひどい相対主義だな
776 :
デフォルトの名無しさん :2009/07/04(土) 09:39:41
追い詰めると言うよりは、置き去りですな。 もしくは、怠慢でついて来れないだけ。
DOSのLispっておもちゃだったからなあ。
OOを捨てることは何時だって出来るのに これだけ普及&定着しまくってるんだから 何かしら捨てられない理由でもあるんでしょう
GUI 関連ならそりゃ普及してるけど、 それ以外で無理に使う必要あるか?
OOPはこれから規制対象になるんだけどねぇ 品質が上がらない要因といわれている
一定以上複雑なプログラムには有効な整理方法だよ 単純なプログラムには必要ないね
LinuxカーネルもWindows7のカーネルも すごい複雑だけど1行もOOP使ってないけどね
WindowsにOOPが使われてないとは初耳だなぁ...
>>783 VistaはカーネルのコードC++で書いて
失敗した。だから全部Cで書き直したよ
カーネルは複雑じゃないから OOP は必要ないだろうね
なぜそこにOOPをつっこもうとする
パフォーマンス問題がクリティカルな分野でOOPなんてやるわけねーだろ そんなん言ったら大半の組み込みプログラムが非OOPだわ
>>782 嘘言うなよ
LinuxはVFS周りのコードがOOPだ
>>788 ソースみたけど全部Cで書いてあるけど?
GObject…
>>790 CにOOPなんてねーだろ
バカなのアホなの?
お前本当に頭悪いな GObjectが何か調べてから物を言えよカスが
>792 お前はまずOOPとは何かを学んだほうが良いぞ OOPLはOOPをしやすくした言語であってOOPLじゃないとOOPができないワケじゃない
カーネルプログラミングでGObject(汗
じゃばばんばぁは言語にOOPがないとOOPができないとおもってるからなぁ
LinusがC++嫌ってるからしかたなくCで書いたんだろ
手動メソッドディスパッチ…
LinusどころかOOPLユーザの過半数がC++を嫌っているという現実
C++は糞これはガチ
>>794 そう言って、Cでオブジェクト指向プログラミングができるって
テクニックを公開しているやつをなんども見てるけど、つかえそう
なのって、カプセル化、抽象データ型くらいで、継承とか多態
までいくと「おいおい、それはムリがあるだろ」って感じのばっかり
だな。
ああいうの真に受けるやつがいるから、広めるのやめてほしい。
C++ を糞だと思うのは自由だが、OOP と GP の直交が醸す広大な抽象空間を 知らずに人生を終えるのはちょっともったいないと思うよ。
多態なんて関数ポインタ使えれば誰でも考え付くこと。
>805 グレートプログラム
>>803 C++ のジェネリックプログラミング:
アイデアは全部よその言語のパクリ, あの変態構文を除けば… … …
グランプリ
GenericProgramingをGPと略すのはどうなんだろう GPといったら普通は遺伝的プログラミング(genetic programming)の方かと
Giant Penis
紛らわしいシリーズとしては generative programmingってのもある
GP = Generic Programming のこと。C との互換性と GP によって、C++ は今後も戦力外通告されない「潰しの効く」言語の一つたりえる。Bjarne Stroustrup は C++ の原作者として、プログラマが言語学習に投資した 時間を無駄にするような言語仕様の変更を加えないよう、絶妙のバランス 感覚で手綱をしめてる。C++ は次の改訂でさらに初心者にやさしい使い やすい言語になるよ。
OOと関係ない方向で性徴
Generic ProgrammingやりたきゃC++なんかよりSMLやHaskellのほうがずっといい。
scrap your boilerplate
C++は組み込み分野では利用禁止が定着しつつある 一般開発では既に利用禁止が大半となっている
ま、C++でまともにコードかけるやつがめったにいないしな。
まともにかける奴がいない = かける俺が偉い というオナニーなんだろうが lispに比べればはるかに多いだろ lispが使われて無いのはかける奴がいないからに他ならないわけで
>>817 電子回路設計ではSystemCとかいうC言語の亜種が出てるのにな
組み込みの分野で使われてるのってluaとか? あれも、オブジェクト指向はなしで、 関数型を取り入れたって感じだな
組み込みってハードに近いあれの話だろ? C言語の変な仕様バージョンが圧倒的に多い みためC言語だけどC言語仕様にはそってないの なんちゃって?C言語?っての?
qsortの無いやつもあるしな
そもそも標準ライブラリなんてほとんど使わん
C++は、現実の問題に対処できるように何でもできる言語を目指しているが、 何でもできることで、かえって現実のプログラマの集団を うまく統制できない言語になってしまった。 言語機能の一部を使用禁止する命令とか作ったほうがいいんじゃないか?
>>826 実際構文解析・チェックツール使って
スタイルに合ってないヤツを書き直させてる現場もあるよ
>>826 いやだからEUでC++0xの仕様採択中止になったしょ?
ほらEUだとソフトウェアのレベル計測する基準とかあるだろ
あれで軒並みC++は該当外になっている。
脳内
オブジェクト指向のクソなところをまた一つ発見した。 予約語が増える。
SKI!!SKI!!
>>831 SmalltalkよりもCのほうが桁違いに予約語が多いのだが?
SmalltalkはifTrueなんかも予約語じゃないのではなかったか?
ifTrueやwhileTrueもメソッド名だね < Smalltalk
837 :
デフォルトの名無しさん :2009/07/05(日) 07:54:31
予約語が増えるくらいどうということないじゃん。 もともとCやC++はオペレータの数が少ないんだし Lispなんてオペレータが多すぎて訳ワカメやぞ。
釣り、、、だよな、、、、?
$から変数名はじめればいいだけ
予約語が多いというとCOBOLを思い浮かべるが…
エディタがハイライトしてくれるから、予約語の数なんて大した問題じゃないだろ
新しい概念なんだから予約語が増えるのは当然 似て非なる言語仕様が乱立するほうがよっぽど怖いぜ
20,30くらいの予約語ならいいが、 100を超えるのはあほだろ。
予約語の数がどうの言う奴は馬鹿 それよりCのように名前空間が無い言語を使ってシンボル名が衝突する方が問題
COBOLは酷いよな…ライブラリまるごと予約語にするから予約語の数がおかしなことになってる
emacs lispは酷いよな… hoge-moge-hage-sage-pとか 名前空間の力は偉大だよ
Cに名前空間がないって、なんだよ、その凄まじい釣りはwww
無いだろボケ。あるなら示せ。
まさか変数のスコープの話を持ち出すんじゃあるまいな? staticに指定して翻訳単位でウンタラ〜他のファイルからは見えなくなる〜だの何だの。
名前空間が問題になるような状況ってそもそも命名規約ぐちゃぐちゃなのでは
一応、structのタグは別の名前空間(?)だな。
C++もC#も営業から見たらCなんだよw
その発想はなかった
>>851 でも struct tm tm; とか、一瞬「あれっ?」と思う。
855 :
デフォルトの名無しさん :2009/07/06(月) 14:13:29
>>848 名前空間があるから関数や変数に名前がつけれるんだろ アホ ボケ カス
Cだとファイルごとに名前空間があるんでしたっけ
最低でも名前空間を1つは持っている言語が多い もちろんBrainf*ckとか名前空間を持たない言語もある
それ翻訳単位…
じゃあ、ユーザー定義の木構造名前空間!
○ Cには名前空間はあります。 × Cでは名前空間は1st class objectです。 言語要素の有無と1st classかどうかを区別できないアフォが大杉。
ありません、それはスコープです
名前空間を変数に入れたり 名前空間を返す関数がかけたり 名前空間を合成した名前空間を作れたりすんの?
first class * なんて言葉が出てきたら揚げ足の取り合いになること必至だな(w これに属する要素はプログラム内部での使用に関する制約が 他の集まりに属する要素より少ないってことだけしか述べてないのに 「〜はfirst class *だから〜(キリッ」とか、暗黙の了解が無ければ言えないよな そんな前提を設けておきながら 「Cに名前空間が無いから云々」について文意を読み取らないで噛み付くなんてちゃんちゃらおかしいわ
>>862 スコープと名前空間の区別ができない子?
>>863 > 名前空間を変数に入れたり
> 名前空間を返す関数がかけたり
C ではともかく、Smalltalk とかでなら普通にできるだろ
emacs lispはfunction cellとvalue cellに分かれてるから複数の名前空間を持つことになる
>>863 Smalltalkだと、
> 名前空間を変数に入れたり
> 名前空間を返す関数がかけたり
> 名前空間を合成した名前空間を作れたりすんの?
どれも普通にできます。
st80ならSystemDictionaryクラスのインスタンスSmalltalk、
今のVisualWorksならNamespaceクラスのインスタンスが
名前空間のオブジェクトです。
名前空間なんて日本語使うから悪いんだろ ○Cにnamespaceという文法はありません。 ○ウィキペディアの名前空間という項目でもCには無いと記述されています。
単一の名前空間を持つ ≠ 名前空間がない
構造体のタグの「名前空間」は変数の「名前空間」とは別、 というレベルの「名前空間」を持って、 「Cに名前空間がある」としてみせるのつまらんすぎ。脱力する。
馬鹿が揚げ足取りしてるだけ 普通に考えればCにはC++のnamespace相当のものが存在しないって分かるだろうが
「Cに名前空間があるお(キリッ」 初心者「へー」 中級者「アホか?」 上級者「いずれにせよくだらん」
言語理論的にはCはモジュール毎に名前空間を持つ。 シンボルテーブル上での名前解決のタイミングの問題。 もちろんスコープとは全く別の問題。
>>869 だからあれほどWikipediaがソースとか(ry
やっぱ、JavaScript最強ってことだな。
877 :
デフォルトの名無しさん :2009/07/07(火) 00:16:32
もともとおいらはWEBデザイナ。プログラマではありません。 いろいろあって、独学でなんとかActionScriptのオブジェクト指向を理解した。 でも独学の為か、長文のプログラムでカスタム(定義)クラスがちょっと多くなると、 ソースからプログラムの内容を把握することが難しくなって、困ってた。 「本職のプログラマの人ってすごいな!こんな長文ソースを簡単に読めて書くことも できるんだろうなっ!」て思ってた。 で、本職プログラマの友人ができたので訊いたら、「ソースから内容は読む事はしないよ。 大体仕様書とか、クラス図とかみれば一発で、その内容を理解できる。」という。 それは、すごいなと思った。 クラス図ってなんだろ。調べてみると「UML」といわれるものみたい。 それで2ちゃんの皆さんに伺いたい。クラス図とか「UML」の習得方法について、 独学でできるものか?習得は難しいのか? ちなみに「ActionScript」以外の言語は全く知識ありません。 どうぞ宜しくお願いします。
本職プログラマの友人に訊けよ
>で、本職プログラマの友人ができたので訊いたら、「ソースから内容は読む事はしないよ。 >大体仕様書とか、クラス図とかみれば一発で、その内容を理解できる。」という。 この時点ですげー偏った人間なのは間違いない
880 :
デフォルトの名無しさん :2009/07/07(火) 01:09:49
>「ソースから内容は読む事はしないよ。大体仕様書とか、クラス図とかみれば一発で、その内容を理解できる。」 笑うところですか?
>>877 その友人の言う事は話半分に聞いといた方がいい。
でも、実際。プログラムの大きさによるかも知れないけど。 大規模なプロジェクトの場合、ソースだけでプログラムの内容を 把握しているわけではないでしょ。 何か、フロー図とか。そのクラス図とか、図示できるもので把握 しているんでないんですか? プログラムの全体構造を理解できる方法、整理できる方法があるのなら、 それを勉強したいと思ってます。
>>877 独学でしょ。
独学で習得できないのなら、いくら高い学校とかセミナー行っても無駄。
>>882 見るだけなら、決まりごとさえいくらか覚えてしまえば見て意味を理解するのは簡単。
ただ、図に記述されていること以上のことを知りたければソースコードや仕様書見るしかない。
885 :
デフォルトの名無しさん :2009/07/07(火) 02:11:56
>>882 大規模なプログラム=長いプログラムではないのですよ
適切に分割して開発すれば、複雑さの爆発は防げるのです
ありがとうございます。独学で勉強することに決めました。 ActionScriptのUML教本は無いようなのでJavaの本で勉強します。 (JavaScriptの教本も無さそうだし。。)
885さん ありがとうございます。 そのあたりの、プログラムの約束事を知らずに、ActionScriptを 独学してきたので、ちょっとつらいとこあります。
>>887 心配するな。苦労してマスターしたことは決して無駄にならない。
テラマトリクス2.0買えば ソースなんて100万ステップでも数時間で理解できるけどなw
JavaScriptって高階関数の組み合わせでプログラミングすることも多いから そんな場合のクラス図って役に立つんだろうか てか関数プログラミングとクラス図ってみずとあぶら?
>>869 JIS X 3010 でも「名前空間」として
・ラベル名
・構造体、共用体、列挙体のタグ
・構造体、共用体のメンバ
・その他の識別子
が規定されているわけだが。
>>877 >独学でできるものか?習得は難しいのか?
言い訳はいいから先ずやれよ。
Cの規格書に、 7.3 Namespaces とあるんだがなw
>>869 > ○ウィキペディアの名前空間という項目でもCには無いと記述されています。
プログラミング言語関係はレベルの低いものが多い。特に日本語。
なんつか、車の話してる時に自転車の話されて、 どっちも車両な訳だがと開き直られた気分。
そんなイマイチよくわからない喩えを持ち出されても。
Cにオブジェクトはある。
そうだね、K&Rの第一版もまずオブジェクトの定義から入ってるしね。 で?
メソッド(処理)主体のオブジェクト指向は糞。 データを扱う段階では全くその力を発揮できない。 データモデル主体の設計をなぜ出来ない!!!>ばかちん!
対象間の関係の集合から対象が発生するのがabstract data type
これのことかね 手続きのみでデータ構造を定義 (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)) 初めて見たときは目からウロコが漏れた
しばらく、オブジェクト指向の次はアスペクト指向で一儲けだ、って風潮だったけど、 ここのところは関数型(関数指向とは呼ばないよね?)が流行るよって空気だね。 MSがF#をリリースする事で何か流れが変わるんだろうか?
>>901 ウザ
上から下まで眺めないと構造がわからないってウンコじゃん
アスペクト指向とかマジイミフだな
たしかに、終始こんな感じで書かれたコードをメンテなんてしたくない
906 :
デフォルトの名無しさん :2009/07/07(火) 23:41:19
オブジェクト指向はもう古いこれからはアスペクト指向だ!とか言ってるのがいたな
907 :
デフォルトの名無しさん :2009/07/07(火) 23:59:42
このスレまだ続いてたのか
>>909 そういう人達って今何をやってるんだろうか
古い技術に新しい名前を付けて売る リサイクル事業なんだよ 元手なし
関数型でもやってるんじゃね?
これからはWeb2.0だ! って言ってた人達と方向性は同じだな
ほぼ名指しじゃん、それw
俺はインターネット2.0でいくぜ
じゃ、ザ・インターネット2で
ジ・・・ジジ
>>910 あの人達の不幸なのは、
自分達がOOブームをつくった、とか、
俺は良い技術を見分ける目を持っている、とか、
そういうカンチガイをしているところ。
未だにWeb2.0が何なのか俺知らないw
視力 2.0
2000以前主体だったHTMLを打っただけの日記と 昨今のコメント、トラックバック送信ができるBlogの違いみたいなものじゃね?
AJAX使ってれば2.0だみたいな感じじゃなかった?
情報発信のみがWeb1.0 対話がWeb2.0 簡単な話は、2chはWeb2.0
Perl で掲示板やチャット書いてた15年前から 2.0 ってことか。
メインコンテンツと掲示板、チャットが分かれてたのが 一緒になったのが2.0って事なんじゃね? で、それを実現する技術がAJAXとかFlashみたいな
928 :
デフォルトの名無しさん :2009/07/09(木) 12:59:04
そーいやチャットて10年はやってないわ(メッセンジャー、スカイプ等除く)。
金になるんなら、バズワードだろうがなんだろうが構わないだろ。
むしろBuzzwordだからこそ金になる はっきりとしない分、価値を付ける余地があるというわけだな
>>925 対話が2.0と言いつつ掲示板は1.0だと言われる不思議
サーバーがシリコンバレーにあればWeb2.0。 アジアの片隅にあるとWeb1.0。
じゃあWeb1.5だと?
>>933 2ちゃんはシリコンバレーにサーバーがあるから2.0なのか
自宅の誰かに乗っ取られてどこかを攻撃し続けているのはWebいくつでしょうか?
株式会社Web2.0とかに社名変更したとこいまどうなってんだろうな ググル気もないのでどうでもいいですけどねw
解散してるよw
青いのぼり持った政党の人が 消費税もなくすしOOPもなくしてくれるって 確約してくれたよ
xmlのパースに失敗したswikiはウェブいくつ?
クラウドなんちゃらが普及していくと、 開発言語の世界はどういう影響を受けるんだろう。 とりあえずブラウザとの融和性の低いコンパイラ型の 言語は衰退かな? 難解で複雑なC++なんかが消えてくれるのは いいことだと思う。
942 :
デフォルトの名無しさん :2009/07/11(土) 07:38:22
よくわかんねっけど 関数型言語ってのが使えるようになればかっこいいの?
クラウドなんちゃらで、これからはスクリプト言語の時代だとか言ってるアフォを見ると、 こいつらはクラウドのサーバサイドのOSまで全部スクリプト言語で書く気かと。
そうだよ^^
OO厨もスクリプト厨も同じ臭いを感じるな
関数型言語厨と形式的手法厨も忘れないでね!!
クラウドがもし本当に主流になったら、 重要なのはデータサーバ側だろ。 3つのメジャーなデータサーバが誕生する影には、 「着眼点はいいけど、たまたま流行しなかった」が30は存在する。 「残念な」データサーバは300を越える。 クラウドのクライアントサイドなんかより、こっちのサーバサイドのほうが ずっと仕事量を稼げるのは言うまでもないw
948 :
デフォルトの名無しさん :2009/07/11(土) 11:14:15
クラウドが主流になってもスクリプト言語なんて主流にならないと思うよ。 javaみたいにVMの上でバイナリーが走るコンパイラ言語だと思う。 たぶんErlang...みたいな
だいたいスクリプト言語なんて単価さげられそうだよな
railsはゲットーだ!!
ABAPでクラウドできないなら クラウドはやらないだろ
952 :
デフォルトの名無しさん :2009/07/11(土) 11:48:42
オジサンには居心地がよさそうなスレですね(笑い笑い)
953 :
デフォルトの名無しさん :2009/07/11(土) 12:40:38
スクリプトしか理解できないアホなユトリには、居心地わるいスレかもな(笑い笑い)
954 :
デフォルトの名無しさん :2009/07/11(土) 12:49:22
linux板見てみたんですけど、知ったかぶりなタコばかりですね。 自分が興味ある分野カーネルとかなら当然知識豊富なんでしょうけど、話題が専門分野から少しでもずれるととたんにバカ丸出しのタコになっちゃってますね。 遠くから眺めてても笑えるんですけど。 liuxの次のマスコットはタコですか?
955 :
デフォルトの名無しさん :2009/07/11(土) 12:53:26
liuxって何? 馬鹿じゃねえの?
956 :
デフォルトの名無しさん :2009/07/11(土) 14:22:07
なんだこいつ? まさにゆでダコだな(笑い笑い) オッサンの時代は終わったんだから、もう死んだほうがいいよ
アイちゃんのスレ伸びるとるわぁ・・・さすが天才や
>>941 先ずその「クラウドなんちゃら」が世の中のシステムすべてに
適用可能だと思っている脳足りんが衰退するでしょうね。
ここアイちゃんスレだったのかw すべてに納得だ
961 :
デフォルトの名無しさん :2009/07/12(日) 00:34:16
初めてこのスレ開いたんだけど
>>3-4 の流れで壮大に噴いたw
この板大丈夫か?
ついでに言うと ライブラリは少なくともインターフェースがオブジェクト指向的であればよく 実装はドロドロでも構わないというかそうなってるケースがまだまだある
どろどろを隠蔽するのがライブラリの役目。
そういうのはコンポーネント指向、モジュール指向。 オブジェクト指向が出る幕はない。
コンポーネント指向の実装の多くがオブジェウト指向を採用している現実について
イマドキ関数・メソッドだけのライブラリなんてうけない。 たいていオブジェクトを返してくる。
969 :
デフォルトの名無しさん :2009/07/12(日) 11:22:56
Lispはアトムかリストを返してくるよ
>>967 が、OOを一切使っていないコンポーネント指向を熱く語るスレはここですね。
↓↓↓↓ さあ、どうぞ! ↓↓↓↓
class ライブラリは認めるがテンプレートライブラリは認めん
認めん、じゃなくて使えんの間違いでしょ 別にこれは恥かしいことじゃないから、変に肩肘張ってる方が滑稽になる
boost禁止遅いし糞
MLもfunctorも知らないような奴に言っても無駄
FILE *fp;
>>974 で、ocamlgraphの最初のoの字は何の略?
ocamlは名前の割にoo使わないってのは常識だろ
>>978 OCamlの最初のOの字はObjectの略だけど
それをもってしてocamlgraphがオブジェクト指向なライブラリだと言いたいなら、
ソースコードを読んでから言ってね
objectは一つも使ってないから
嘘だと思うならgrep object *.mlしてごらん
Objectiveだお(;^ω^)。
>>978 の後だしジャンケンを待つスレはここですね
>>972 >別にこれは恥かしいことじゃないから
そうかなあ。
で、コンポーネント指向のうち
オブジェクト指向を全く使っていないものが
過半数であることの証明、まだ〜?
話の発端はこれだよな? ↓
>>966 > コンポーネント指向の実装の多くがオブジェウト指向を採用している現実について
発端っていうほど相手にされてないけど 自分から話そらしたい奴って "発端は"ってすぐ言うね
こんな スレに まじに なっちゃって どうするの 完
スレスト発動
結局、ほとんど誰も使ってない糞フレームワークが1つか2つあることが示されただけ。 アンチOOってそんなのばっかw
部分を個に適用するのって なんとかのガイドラインに おっと誰か来たようだ
全だた だいなしwww 拉致されてくるwwww
次スレよろしく
要ると思う奴が居れば勃つ
ここまででなんか生産的な議論あった?
あるわけないだろ
まったくだ
ume
999 :
デフォルトの名無しさん :2009/07/15(水) 01:03:31
1000 :
デフォルトの名無しさん :2009/07/15(水) 01:11:21
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。