- オブジェクト指向は愚かな考え。この世は計算式 [転載禁止]©2ch.net
72 :デフォルトの名無しさん[sage]:2015/11/22(日) 15:57:48.72 ID:NW0PnoYA - ゲッターセッター論議が栄えて何よりだな
普通にpublic変数でいいと思うしな オブジェクト指向つまり名詞指向、レコード指向の概念ならな ClassInstance.memberVarでアクセスすればいいじゃん 情報遮蔽もポリモーフィズムもイベントドリブンも全て (クロージャー、マルチメソッド、コールバック)といった関数で表現できますから オブジェクト指向にあるのは、特定のデータ型にのみ有効な 再利用性の極めて少ない特定のオブジェクトに対する関数、すなわちメソッドだけだろう 重要なのはオブジェクト指向ならぬ、オブジェクト強要言語は それが思考の規定にあるということだ、これではオブジェクト指向のメリットらしい 再利用性の実装のためにコードがより多く必要になる つまりオブジェクト指向というのは営業トーク先行で、 いかにコード数を増やして、いかに単純なシステムも複雑怪奇なシステムだと でっちあげることによって予算と工数を獲得する在りし日のビジネススタイルだというわけだ
|
- オブジェクト指向は愚かな考え。この世は計算式 [転載禁止]©2ch.net
73 :デフォルトの名無しさん[sage]:2015/11/22(日) 16:01:08.04 ID:NW0PnoYA - >>70
ところがオブジェクトの初期化というものを積極的に行うと コンストラクタの引数の個数やその型(<-これなんか特有の言い方があった気がするけど忘れた) が、そのそれぞれのオブジェクトによって異なってくるでしょう そうなるとインターフェースの宣言とその実装時に困ったことになるから インターフェース指向のプログラムだと 結局オブジェクトをコンストラクタで初期化しないという設計になってると思うよ
|
- オブジェクト指向は愚かな考え。この世は計算式 [転載禁止]©2ch.net
77 :デフォルトの名無しさん[sage]:2015/11/22(日) 16:15:13.89 ID:NW0PnoYA - >>75
でもゲッターセッター通してアクセスできるんでしょ? クロージャーとかだったらスコープでアクセス範囲が決まるから堅牢だとは思うけど private変数に対して「public」メソッドでアクセスできることに どれだけの堅牢性があるの?もちろんpublicセッターは実装しないという方法でいけば 副作用は抑えられるけど、 コンストラクタでのみ初期化できるというのは 結局のところインターフェースの宣言の柔軟性が損なわれることで 実際にpublicセッターを実装しないっていうのは特有の事情を除いて考えにくいんだけど
|
- オブジェクト指向は愚かな考え。この世は計算式 [転載禁止]©2ch.net
78 :デフォルトの名無しさん[sage]:2015/11/22(日) 16:16:21.77 ID:NW0PnoYA - >>76
それはセッターゲッターが必要な理由を何一つ語っていないよね それはクラスがあればなんでもできるから クラスがあればクロージャーはいらないと言ってるのと同じことだよ
|
- オブジェクト指向は愚かな考え。この世は計算式 [転載禁止]©2ch.net
83 :デフォルトの名無しさん[sage]:2015/11/22(日) 16:25:36.59 ID:NW0PnoYA - >>82
ようやくセッターとゲッターが両方ある場合は public type memberVar; って宣言してもいいということに合意していただけましたか
|
- オブジェクト指向は愚かな考え。この世は計算式 [転載禁止]©2ch.net
88 :デフォルトの名無しさん[sage]:2015/11/22(日) 16:35:29.08 ID:NW0PnoYA - >>84
C#での(自動)プロパティ宣言は public type memberVar{get;set;}であって public type memberVarと同じではないんだよな もちろん我々は関数教徒であるので、(アクセサ)メソッドの柔軟性というものはわかりますね だが、多くの場合において必要でないメソッドまで宣言させられるということに対して 違和感を覚えないのでしょうか
|
- オブジェクト指向は愚かな考え。この世は計算式 [転載禁止]©2ch.net
92 :デフォルトの名無しさん[sage]:2015/11/22(日) 16:44:08.34 ID:NW0PnoYA - >>90
> 普通にpublic変数でいいと思うしな それは、gotoだとなんでもできるから、 gotoがあれば、ループや例外入らないと言ってるのと同じだよ。 それの代替となるなんでもできるものがあるのは知っている。 なんでもできるのは、問題があるから、用途ごとに特殊なものがあると便利。 そうやって、アセンブラの時代から、高級言語へと進化してるんだぞ。 アクセサメソッドがあればなんでもできるのは知っている なんでも出来るのは問題(冗長性、可読性の低下)があるから用途ごとに特殊なものがあると便利 そうやって高級言語へと進化してきた なぜアクセサメソッドにこだわるのですか? これはあなたが言ってるgotoと同じですが ちなみに多重ネストしたメソッドからぬけ出すのにgotoを使うのをためらうのですかね ならなぜC#はgoto文を廃止しなかったのでしょうか?
|
- Win32API質問箱 Build121 [転載禁止]©2ch.net
645 :デフォルトの名無しさん[sage]:2015/11/22(日) 17:32:36.93 ID:NW0PnoYA - win32を勉強するにはどの本を読めばいいんですか
|
- ふらっと C#,C♯,C#(初心者用) Part117 [転載禁止]©2ch.net
964 :デフォルトの名無しさん[sage]:2015/11/22(日) 18:42:55.24 ID:NW0PnoYA - >>947
文脈わからんし動的に追加、削除の含意も知らんが それってDictinary<string,int>の仕事じゃないのって、アドバイスしとくね あとは列挙型の内部実装がどうなってるかしらないけどどうせクラスか構造体かでしょ 他にあるとすればリフレクション使ったりで列挙型クラスを動的構築するとかになるのか? まあやりたくないよね、そんなこと
|
- Win32API質問箱 Build121 [転載禁止]©2ch.net
651 :デフォルトの名無しさん[sage]:2015/11/22(日) 18:48:44.74 ID:NW0PnoYA - >>650
面白そうなので買いました >>646 MSDNをまだまともに読めるレベルじゃないので本がいいんですよ 最近ようやく読めるようになってきたけど、ある程度知識のまとまりと目的意識がほしいので
|
- ふらっと C#,C♯,C#(初心者用) Part117 [転載禁止]©2ch.net
966 :デフォルトの名無しさん[sage]:2015/11/22(日) 18:51:26.08 ID:NW0PnoYA - >>965
なにそれ?どうやって使うの?
|
- ふらっと C#,C♯,C#(初心者用) Part117 [転載禁止]©2ch.net
976 :デフォルトの名無しさん[sage]:2015/11/22(日) 19:55:16.96 ID:NW0PnoYA - ゲームはオクルージョンカリングとか空間分割木とか意味不明なまでに難しい世界があるからな
単純な2Dゲーなら今はマシンパワーもあるし、複雑怪奇な最適化はしなくてもいいと思うけど マルチスレッドとか、メモリアクセスやファイルアクセスのタイミングとかやりだすと 複雑そうな感じは受ける
|
- 【Lisp】プログラミング言語 Clojure #3【JVM】
892 :デフォルトの名無しさん[sage]:2015/11/22(日) 20:01:37.25 ID:NW0PnoYA - 単純なことを聞いて申し訳ないのだが
外部ライブラリのdocを簡単に調べる方法ってないですかね 今例として探そうとしているのはclojure.data.jsonね leiningenで依存関係を定義して、lein repl ->docで調べられるのは知ってるけど その名前空間にどんな関数があるのかを列挙できない 逆にlighttableやLa clojureを導入してみると その名前空間にどんな関数があるかは列挙できるけどdoc関数が使えない? なんか勘違いしている可能性が高いけど詰まったので教えてほしいなあ
|
- 【Lisp】プログラミング言語 Clojure #3【JVM】
893 :デフォルトの名無しさん[sage]:2015/11/22(日) 20:04:40.49 ID:NW0PnoYA - すいません、これだけだと意図が伝わらないので補足します
具体的には (find-doc "^clojure.data.json.*")で、全部の関数のdocがずらずら表示されて欲しいんだけど これやるとclojure.data.jsonの名前空間の説明だけが出てきて保持している関数の表示はされないということです なぜそうしたいのかというとdeprecatedな関数とそうでない関数の区別をしたいからです
|
- ふらっと C#,C♯,C#(初心者用) Part117 [転載禁止]©2ch.net
979 :デフォルトの名無しさん[sage]:2015/11/22(日) 20:45:30.67 ID:NW0PnoYA - Lispが使われないのは、JavaやC#のように熱心な営業攻勢が無かったからだよ
関数型を学ぶメリットはドキュメントが営業的観点で腐っていないということ コミュニティがそれによって質の高い状態が保たれている 一番のメリットは「ユーザーにバカが少ない」ということこれに尽きる LispやHaskellなんて、それこそ熱心な勉強家でなければ手に取らないということ 純粋関数はマルチスレッドに良い影響をもたらす というかGUIとかスレッドとかどう見ても関数が主役でオブジェクトがシンタックスの邪魔をしている 最近勢力を誇っているwebサービスもほとんどが関数型指向でかかれているし Javascriptが今隆盛を誇っているのも結局はそういうことなんだよな まあHadoopやMapReduceとか必要になるようなアプリケーション書くような企業は限られてるけど マルチコアが前提となってくると結局関数の純粋性が常に問われてくる 幸いまだC#はLINQやTaskで関数型やマルチスレッドをサポートしてるので生存の余地はあるけどね というかC#にLINQが導入されたのは、どう考えてもSQLではなく関数型の影響だしな 内部状態を極力持たずにというのはweb(HTTP)の考え方だし JsonやXMLや(S式)で非同期処理するということを考えると関数型は流行らざるをえない 関数型が流行っているというよりwebベンチャーが流行ってるというのが正しいな まあJavascriptがそのポテンシャルを見いだされるまでに10年近くかかったわけだし Javascriptが微妙なのは同意するよ
|