■危険性
かつて偏差値の低い学校向けの情報処理系教科書において「カプセル化は大変すばらしいものであり絶対に使うように」と大体的に宣伝された。
一方、カリフォルニア大学バークレー校の有識者を中心とした「インターネットを作った人たち」は「階層化の有害性(RFC 3439)」として「カプセル化は絶対にやめろ」としている。
大雑把にいうと、教科書の上では素晴らしく、開発を始めた最初のうちは良いが、将来的な改修の際に隠蔽されたデータにアクセスできないと解決できない問題が出てきて、非常に高確率でデスマーチに陥るというのである。
オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」などという概念はない。
ソースコードが存在し改修が可能であればカプセル化しても問題ない。ソースコードがあってもライセンス的に改修できない場合や、そもそもバイナリのライブラリしかない場合などは絶望的である。
https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)
カプセル化は愚かな考え
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2020/07/29(水) 17:17:58.13ID:u638n5uE393デフォルトの名無しさん
2020/08/23(日) 01:49:35.65ID:+aN5WY/b こんなふわふわした論理を積み重ねちゃう感じで
本当にプログラムがかけるのかも疑問
本当にプログラムがかけるのかも疑問
394デフォルトの名無しさん
2020/08/23(日) 01:49:53.43ID:Gvt1TzeD >>392
そのとおり
私は状態がない世界に住んでいる
私の世界では引数と戻り値だけで表現できる
状態がない世界では関数型が一番
こういう理屈
現実はたくさんの状態がある世界
たくさんの状態をどうやって管理するか?が難しい
そこに架空の世界を持ってきたって意味がない
そのとおり
私は状態がない世界に住んでいる
私の世界では引数と戻り値だけで表現できる
状態がない世界では関数型が一番
こういう理屈
現実はたくさんの状態がある世界
たくさんの状態をどうやって管理するか?が難しい
そこに架空の世界を持ってきたって意味がない
395デフォルトの名無しさん
2020/08/23(日) 01:50:15.25ID:rOaea7BL >>386
プログラミングの生産性は地味でちっちゃいことの積み重ね
管理職やアプリコンサルやその他ペテン師は大きいことを言いたがるから、
多大なコストをかけてマイナンバーカードを作っておいて、未だに当たり前のデータ連携ができておらず、相変わらず無駄な申請
もしくは、ついでに出てきたものに対するついでの返信でしかないものを、「クローズアップ」とする解釈の方が大げさ
>>387
その機能は、あるクラスオブジェクト指向言語、が持ってるのだが、コーディングはスタティックなコストで済む
どの言語を選ぶべきかという話ではなく、どんなコーディングをすべきか、という話
または、いい機能なので他の言語にも付けてね、っていう願望
メソッド風に出てくるのは書式の違いであって、本質的に括弧と違わない
スタティックだと言ってるんだから仕様的にも裏切っちゃいけないし
宣言は length( this string s ) で普通の関数と同じく括弧の中に呼び出し元がある(ちょっと気持ち悪いが)
プログラミングの生産性は地味でちっちゃいことの積み重ね
管理職やアプリコンサルやその他ペテン師は大きいことを言いたがるから、
多大なコストをかけてマイナンバーカードを作っておいて、未だに当たり前のデータ連携ができておらず、相変わらず無駄な申請
もしくは、ついでに出てきたものに対するついでの返信でしかないものを、「クローズアップ」とする解釈の方が大げさ
>>387
その機能は、あるクラスオブジェクト指向言語、が持ってるのだが、コーディングはスタティックなコストで済む
どの言語を選ぶべきかという話ではなく、どんなコーディングをすべきか、という話
または、いい機能なので他の言語にも付けてね、っていう願望
メソッド風に出てくるのは書式の違いであって、本質的に括弧と違わない
スタティックだと言ってるんだから仕様的にも裏切っちゃいけないし
宣言は length( this string s ) で普通の関数と同じく括弧の中に呼び出し元がある(ちょっと気持ち悪いが)
396デフォルトの名無しさん
2020/08/23(日) 14:03:19.82ID:OgLdxADB 馬鹿はオブジェクト指向にかぶれるくらいなら関数型にかぶれてる方がまだ扱いが楽。
モジュール分割へたくそなくせにオブジェクト指向にかぶれるとほんま手に負えんモンスターになるから。
モジュール分割へたくそなくせにオブジェクト指向にかぶれるとほんま手に負えんモンスターになるから。
397デフォルトの名無しさん
2020/08/23(日) 14:24:19.29ID:mH2YjVlt398デフォルトの名無しさん
2020/08/23(日) 19:35:46.59ID:FOCNZ4Ko staticが技術的な話なのか。
C++をbetter Cとして使ってくれてればいいよ。
C++使ってんのにどうしてOOPじゃないんだ、とか言わないからさ^^
C++をbetter Cとして使ってくれてればいいよ。
C++使ってんのにどうしてOOPじゃないんだ、とか言わないからさ^^
399デフォルトの名無しさん
2020/08/23(日) 19:39:10.85ID:a/7Z84eB スタティック関数っていってるの多分javaのスタティックメソッドの方だと思うよ
400デフォルトの名無しさん
2020/08/23(日) 19:41:19.27ID:eNcX4Z1l オブジェクト指向から関数型へは、ある程度発想の転換が必要なんだろな。
スレの子たちは転換できてないな。
オブジェクト指向で設計できないから関数型では出来ないというが、そもそもオブジェクト指向の必要が無いのだが。
スレの子たちは転換できてないな。
オブジェクト指向で設計できないから関数型では出来ないというが、そもそもオブジェクト指向の必要が無いのだが。
401デフォルトの名無しさん
2020/08/23(日) 20:08:07.34ID:ij+CyHSL C++をbetter Cとか言う奴は
C++もCも両方ニワカである
C++もCも両方ニワカである
402デフォルトの名無しさん
2020/08/23(日) 20:22:19.98ID:mH2YjVlt >>400
> オブジェクト指向から関数型へは、ある程度発想の転換が必要なんだろな。
必要なのは発想の転換じゃなくて実装サンプルだよ
多数の状態を持つボタンのようなものをどうすればシンプルに実装できるか
その実装サンプルがどこにもないから関数型には無理なんだなってことになってる
> オブジェクト指向から関数型へは、ある程度発想の転換が必要なんだろな。
必要なのは発想の転換じゃなくて実装サンプルだよ
多数の状態を持つボタンのようなものをどうすればシンプルに実装できるか
その実装サンプルがどこにもないから関数型には無理なんだなってことになってる
403デフォルトの名無しさん
2020/08/23(日) 20:25:02.95ID:eq+oHtYe そもそもオブジェクト指向について、関数型について
きちんと説明できる人っているんだろうか
みんな、なんとなくこういうもの、というイメージしか
持てないでいるんじゃなかろうか
きちんと説明できる人っているんだろうか
みんな、なんとなくこういうもの、というイメージしか
持てないでいるんじゃなかろうか
404デフォルトの名無しさん
2020/08/23(日) 21:08:28.39ID:xAXFDUuo >>403
関数型についてはごく小さな例だけをあげて、だから関数型は素晴らしい、といってるのしか見たことないな
自分が書いたのでなくてもいいからだいきぼなプログラムを関数型でうまく書いたという事例があれば見てみたい
関数型についてはごく小さな例だけをあげて、だから関数型は素晴らしい、といってるのしか見たことないな
自分が書いたのでなくてもいいからだいきぼなプログラムを関数型でうまく書いたという事例があれば見てみたい
405デフォルトの名無しさん
2020/08/23(日) 21:12:08.32ID:OV89sKi5 カプセル化だけではなくオブジェクト指向自体が時代遅れ
スタートアップである弊社が全員ほぼ未経験でRuby on RailsをScalaに移行した理由、その効果と苦労点 - Qiita
https://qiita.com/sonken625/items/d5d0f3b8d794e06489bd
スタートアップである弊社が全員ほぼ未経験でRuby on RailsをScalaに移行した理由、その効果と苦労点 - Qiita
https://qiita.com/sonken625/items/d5d0f3b8d794e06489bd
406デフォルトの名無しさん
2020/08/23(日) 21:13:29.31ID:WHl934bN407デフォルトの名無しさん
2020/08/23(日) 21:33:12.94ID:+aN5WY/b >カプセル化だけではなくオブジェクト指向自体が時代遅れ
といいながらScalaを例に出してるけど
「Scala(スカラ、SKAH-lah)はオブジェクト指向言語と関数型言語の特徴を統合した
マルチパラダイムのプログラミング言語である。」by wikipedia
オブジェクト指向も含んでるしもう何が言いたいのか
といいながらScalaを例に出してるけど
「Scala(スカラ、SKAH-lah)はオブジェクト指向言語と関数型言語の特徴を統合した
マルチパラダイムのプログラミング言語である。」by wikipedia
オブジェクト指向も含んでるしもう何が言いたいのか
408デフォルトの名無しさん
2020/08/23(日) 21:36:35.20ID:+aN5WY/b HaskellではMonadで状態というか状態遷移を表現するらしいけど
関数型推しにはそれがどういう実装になるのか例を示してほしいね
関数型推しにはそれがどういう実装になるのか例を示してほしいね
409デフォルトの名無しさん
2020/08/23(日) 21:45:01.92ID:eNcX4Z1l そんな頼み方で教えてもらえると思ってることに驚いた。
410デフォルトの名無しさん
2020/08/23(日) 21:49:05.95ID:+aN5WY/b 関数型の利点を主張する割にここまで具体的な情報が一つもでてきてない
それともエアプだからわからないとか・・・?!
それともエアプだからわからないとか・・・?!
411デフォルトの名無しさん
2020/08/23(日) 21:49:46.52ID:jaDomWgN >>409
愚図々々せずにさっさと教えて欲しいね
愚図々々せずにさっさと教えて欲しいね
412デフォルトの名無しさん
2020/08/23(日) 21:50:06.36ID:+aN5WY/b 無能ほど偉そうなんだよなぁ
413デフォルトの名無しさん
2020/08/23(日) 22:36:25.12ID:PvvBVKTl >>406
要件?HTML(DOM)のボタンでいいよ
https://www.w3schools.com/jsref/dom_obj_button.asp
プロパティ一覧
autofocus
defaultValue
disabled
form
name
type
value
ボタンを作ったら、これだけの情報が初期化されて
作ったボタンからこれだけの情報を取得することも出来る
本当はスタイルもあるからもっと多いけどね
要件?HTML(DOM)のボタンでいいよ
https://www.w3schools.com/jsref/dom_obj_button.asp
プロパティ一覧
autofocus
defaultValue
disabled
form
name
type
value
ボタンを作ったら、これだけの情報が初期化されて
作ったボタンからこれだけの情報を取得することも出来る
本当はスタイルもあるからもっと多いけどね
414デフォルトの名無しさん
2020/08/23(日) 22:46:04.13ID:eNcX4Z1l ベクトル化の概念が抜け落ちてるんだろうけど。
説明しろと言われても、自分で勉強しろとしか。
説明しろと言われても、自分で勉強しろとしか。
415デフォルトの名無しさん
2020/08/23(日) 22:49:28.19ID:PvvBVKTl 関数型言語
button = CreateButton({name: "名前", type: "submit"})
// buttonは連想配列 {name: "名前", type: "submit"}
print(button["name"])
オブジェクト指向
button = CreateButton({name: "名前", type: "submit"})
// buttonはオブジェクト
print(button.name)
こんな感じっすかね?w
button = CreateButton({name: "名前", type: "submit"})
// buttonは連想配列 {name: "名前", type: "submit"}
print(button["name"])
オブジェクト指向
button = CreateButton({name: "名前", type: "submit"})
// buttonはオブジェクト
print(button.name)
こんな感じっすかね?w
416デフォルトの名無しさん
2020/08/23(日) 22:53:17.20ID:eNcX4Z1l ボタンの「作成」と言ってるところにセンスの悪さを感じるというか。
きちんと説明してやろうという気力が失せるんだよな。
どうせコイツじゃわかんねーだろうっていう。
きちんと説明してやろうという気力が失せるんだよな。
どうせコイツじゃわかんねーだろうっていう。
417デフォルトの名無しさん
2020/08/23(日) 22:54:20.36ID:RQFTaUls じゃあボタンの「作成」以外でもいいよ
お前が好きなように言いたいことを言え
お前はまだ何も言ってない
お前が好きなように言いたいことを言え
お前はまだ何も言ってない
418デフォルトの名無しさん
2020/08/23(日) 22:57:18.72ID:RQFTaUls 関数型言語派は、「はぁ〜お前らわかってないんだよな〜」って言うのが目的なので
説明しろといわれたら、説明できなんだよなw
そのパターンばかり
説明しろといわれたら、説明できなんだよなw
そのパターンばかり
419デフォルトの名無しさん
2020/08/23(日) 23:00:00.42ID:HeDyBrKq そもそもの前提からして意味分かんない
何がどうなることを目指してるの?
お互いに
何がどうなることを目指してるの?
お互いに
420デフォルトの名無しさん
2020/08/23(日) 23:01:52.95ID:RQFTaUls プログラミング言語の目的なんて
目的は動くものを(できるだけ簡潔に)作ることに決まってるだろ
目的は動くものを(できるだけ簡潔に)作ることに決まってるだろ
421デフォルトの名無しさん
2020/08/23(日) 23:06:10.45ID:RQFTaUls 俺今丁度、環境変数を扱うコード書いてるんだけどさ、
1. 環境変数を設定する
2. (確認のために)設定した環境変数を表示する
3. 環境変数を残したまま他のプログラムを実行する
これを関数型言語で書いてみて
1. 環境変数を設定する
2. (確認のために)設定した環境変数を表示する
3. 環境変数を残したまま他のプログラムを実行する
これを関数型言語で書いてみて
422デフォルトの名無しさん
2020/08/23(日) 23:06:58.49ID:RQFTaUls これすごく簡単なことだと思うんだが、こういうのすら関数型言語では実装コードが出ないというねw
423デフォルトの名無しさん
2020/08/23(日) 23:10:12.46ID:+aN5WY/b このスレの流れは関数型狂信者がしつこくオブジェクト指向では駄目だと
根拠の薄い主張を繰り返し、具体的なことを聞くと煙に巻く
今の所、関数型推しはやべえ奴という印象しかない
根拠の薄い主張を繰り返し、具体的なことを聞くと煙に巻く
今の所、関数型推しはやべえ奴という印象しかない
424デフォルトの名無しさん
2020/08/23(日) 23:11:26.36ID:HeDyBrKq425デフォルトの名無しさん
2020/08/23(日) 23:14:04.02ID:+aN5WY/b 散々引っ張っといてこのざま
426デフォルトの名無しさん
2020/08/23(日) 23:14:19.38ID:RQFTaUls427デフォルトの名無しさん
2020/08/23(日) 23:17:02.46ID:RQFTaUls ソフトウェアというのは多数の「状態」をどうやって管理するかってことに尽きるんだが
関数型言語は「状態」が少ない場合はこれでうまくいくという話しかしない
多数の「状態」を管理する方法ではなくて、少数の「状態」を管理する方法しかいわない
多数の「状態」という問題の解決方法ではなく、問題をすり替えてる
関数型言語は「状態」が少ない場合はこれでうまくいくという話しかしない
多数の「状態」を管理する方法ではなくて、少数の「状態」を管理する方法しかいわない
多数の「状態」という問題の解決方法ではなく、問題をすり替えてる
428デフォルトの名無しさん
2020/08/23(日) 23:18:16.79ID:eNcX4Z1l 愚かな奴らよ。
429デフォルトの名無しさん
2020/08/23(日) 23:23:57.75ID:HeDyBrKq 正しく動くこととオブジェクト指向になんの繋がりがあるの?
430デフォルトの名無しさん
2020/08/23(日) 23:26:10.56ID:RQFTaUls 関数型言語にとっては正しく動くことが課題なので・・・
バグばかり
バグばかり
431デフォルトの名無しさん
2020/08/23(日) 23:26:16.73ID:+aN5WY/b まじでろくなやついないな
関数型を嫌う理由として十分だわ
関数型を嫌う理由として十分だわ
432デフォルトの名無しさん
2020/08/23(日) 23:27:32.42ID:RQFTaUls さあ、まだ関数型言語での実装コードは出ないぞ!
433デフォルトの名無しさん
2020/08/23(日) 23:33:01.07ID:HeDyBrKq >>432
お前もコード見て何がどうなってることを確認したいの?
お前もコード見て何がどうなってることを確認したいの?
434デフォルトの名無しさん
2020/08/23(日) 23:35:24.15ID:RQFTaUls >>433
どれくらいの複雑さになるかを確認したい
どれくらいの複雑さになるかを確認したい
435デフォルトの名無しさん
2020/08/23(日) 23:36:04.55ID:+aN5WY/b 簡単なコードなんだからぐずぐずせず
さっと出したほうが早いのに
言い訳してるってことはエアプか
さっと出したほうが早いのに
言い訳してるってことはエアプか
436デフォルトの名無しさん
2020/08/23(日) 23:36:18.75ID:HeDyBrKq 結局、何もかも前提がない
いいソースとはどういうソースを言うの?
っていう単純な前提がないから
全てにおいて結論が出せない
十年以上もコード組んでるくせに
こんなこともわからない時点で
そんなに能力高くないんだよお前ら
いいソースとはどういうソースを言うの?
っていう単純な前提がないから
全てにおいて結論が出せない
十年以上もコード組んでるくせに
こんなこともわからない時点で
そんなに能力高くないんだよお前ら
437デフォルトの名無しさん
2020/08/23(日) 23:36:38.11ID:HeDyBrKq >>434
複雑さの定義は?
複雑さの定義は?
438デフォルトの名無しさん
2020/08/23(日) 23:36:52.33ID:RQFTaUls >>437
コードを見ればわかる
コードを見ればわかる
439デフォルトの名無しさん
2020/08/23(日) 23:37:20.11ID:RQFTaUls いい悪いを議論する前に、まずコードを出さないと意味がない
動くコードを出しましょう
動くコードを出しましょう
440デフォルトの名無しさん
2020/08/23(日) 23:37:36.34ID:+aN5WY/b >いいソースとはどういうソースを言うの?
初心者みたいな質問出たぞ
初心者みたいな質問出たぞ
441デフォルトの名無しさん
2020/08/23(日) 23:37:45.06ID:tmHqRGVP 必死で逃げててワロ
442デフォルトの名無しさん
2020/08/23(日) 23:38:28.03ID:HeDyBrKq >>438
だからコードの何を見るん?
だからコードの何を見るん?
443デフォルトの名無しさん
2020/08/23(日) 23:39:45.71ID:RQFTaUls >>442
関数型のコード例
関数型のコード例
444デフォルトの名無しさん
2020/08/23(日) 23:41:36.66ID:HeDyBrKq もし、コードで判断をするなら全く同じ処理を記述した
方式Aと方式Bの両方が必要になるはずなのにそれも用意しようとせず
片方だけ集めたってしょうがねぇだろバーカ
お前のソースなんてみる必要すらない
方式Aと方式Bの両方が必要になるはずなのにそれも用意しようとせず
片方だけ集めたってしょうがねぇだろバーカ
お前のソースなんてみる必要すらない
445デフォルトの名無しさん
2020/08/23(日) 23:42:18.87ID:+aN5WY/b public staticくん
446デフォルトの名無しさん
2020/08/23(日) 23:43:26.03ID:a/7Z84eB 関数型言語をなんか勘違いしてない?
447デフォルトの名無しさん
2020/08/23(日) 23:43:36.05ID:RQFTaUls >>444
> 1. 環境変数を設定する
> 2. (確認のために)設定した環境変数を表示する
> 3. 環境変数を残したまま他のプログラムを実行する
>
> これを関数型言語で書いてみて
ENV["FOO"]=123
print(ENV["FOO"])
system("bar.exe")
> 1. 環境変数を設定する
> 2. (確認のために)設定した環境変数を表示する
> 3. 環境変数を残したまま他のプログラムを実行する
>
> これを関数型言語で書いてみて
ENV["FOO"]=123
print(ENV["FOO"])
system("bar.exe")
448デフォルトの名無しさん
2020/08/23(日) 23:43:50.12ID:HeDyBrKq そもそもまともな思考ができてねーじゃん
本当にその程度でプログラム組めてるのかよ
恥を知れバーカ
本当にその程度でプログラム組めてるのかよ
恥を知れバーカ
449デフォルトの名無しさん
2020/08/23(日) 23:44:56.07ID:+aN5WY/b >>448 お前がなw
450デフォルトの名無しさん
2020/08/23(日) 23:46:21.56ID:RQFTaUls451デフォルトの名無しさん
2020/08/24(月) 00:20:14.32ID:VfgDhYHP >>413
それら全部状態って呼ぶのかぁ
とりあえず言いたいことは理解した
elmのチュートリアル1ページ目のサンプルコードで
HTMLのボタンも作ってるから見てみるといいよ
https://guide.elm-lang.org/
それら全部状態って呼ぶのかぁ
とりあえず言いたいことは理解した
elmのチュートリアル1ページ目のサンプルコードで
HTMLのボタンも作ってるから見てみるといいよ
https://guide.elm-lang.org/
452デフォルトの名無しさん
2020/08/24(月) 01:27:13.84ID:nvJPtqaW453デフォルトの名無しさん
2020/08/24(月) 03:43:12.52ID:ePkGqGTS インスタンスの代わりに、連想配列を受け取って連想配列を返す
それが関数型
状態はメンバ変数の代わりに、連想配列に入っている
連想配列.メソッド(); これがオブジェクト指向で
関数(連想配列); これが関数型
ということでOK?
それが関数型
状態はメンバ変数の代わりに、連想配列に入っている
連想配列.メソッド(); これがオブジェクト指向で
関数(連想配列); これが関数型
ということでOK?
454デフォルトの名無しさん
2020/08/24(月) 14:43:56.73ID:lWuWtpGZ そもそも、時間の流れがある≒刻一刻と状態が変わる、というパラダイムがある
例えば3Dアクションの全てが四次元プログラミングになる
x,y,z,tの四変数が必要になる
GUIは三次元プログラミングで、x,y,tの三変数が必要になる
未来がどーなるかは分からん、ってのがダイナミック、
一度決めたら未来永劫変わらない、ってのがスタティック
例えば3Dアクションの全てが四次元プログラミングになる
x,y,z,tの四変数が必要になる
GUIは三次元プログラミングで、x,y,tの三変数が必要になる
未来がどーなるかは分からん、ってのがダイナミック、
一度決めたら未来永劫変わらない、ってのがスタティック
455デフォルトの名無しさん
2020/08/24(月) 16:21:03.36ID:uvJBs23t え?実行中に変えるの?
456デフォルトの名無しさん
2020/08/24(月) 17:04:36.25ID:jN2NYQ9A >>453
違います
違います
457デフォルトの名無しさん
2020/08/24(月) 18:30:41.04ID:uvJBs23t メリットが全然わからんのよな
458デフォルトの名無しさん
2020/08/24(月) 18:34:32.74ID:9GBeU53A459デフォルトの名無しさん
2020/08/24(月) 20:26:10.91ID:g9Wmq8dv いちいち理由を説明してもらえるのは小学生までやろな
自分で学ばないやつは数十年前にオブジェクト指向理解できなくて既存のパラダイムに囚われてた老害たちと同じ道を辿る
自分で学ばないやつは数十年前にオブジェクト指向理解できなくて既存のパラダイムに囚われてた老害たちと同じ道を辿る
460デフォルトの名無しさん
2020/08/24(月) 21:48:58.65ID:HcNsafA/ 関数型とかw
461デフォルトの名無しさん
2020/08/24(月) 21:56:58.62ID:Um3NUpro 愚かなり。
462デフォルトの名無しさん
2020/08/24(月) 22:09:11.19ID:uvJBs23t >>459
俺なんかそれ怪しいと思ってるんだよね
オブジェクト指向ってどこをどう探してもメリットねぇよコレ
何でこんなもん広めたんだ?
俺これのおかげでソフトウェア業界何十年停滞したかわかんねぇぞって思ってる
俺なんかそれ怪しいと思ってるんだよね
オブジェクト指向ってどこをどう探してもメリットねぇよコレ
何でこんなもん広めたんだ?
俺これのおかげでソフトウェア業界何十年停滞したかわかんねぇぞって思ってる
463デフォルトの名無しさん
2020/08/24(月) 22:13:42.34ID:Um3NUpro 一つのコンピュータ内に複数のプロセッサがある状況になって、俄然関数型が注目されるわけです。
しかし関数型には、数学的思考力が無いと使い方がわかりづらいという欠点があります。
オブジェクト指向でさえパターンを提唱した人たちがいるのです。
世間を侮ってはいけません。
あなたが思うよりずっと低能です。
しかし関数型には、数学的思考力が無いと使い方がわかりづらいという欠点があります。
オブジェクト指向でさえパターンを提唱した人たちがいるのです。
世間を侮ってはいけません。
あなたが思うよりずっと低能です。
464デフォルトの名無しさん
2020/08/24(月) 23:03:49.96ID:Um3NUpro コンピュータは電子計算機なので、関数型は非常に素直なアプローチです。
465デフォルトの名無しさん
2020/08/25(火) 00:06:02.99ID:1TkiLLpa >>462
ずーっと昔はグローバル変数丸出しで
モジュール間の結合度が高すぎて、
既存コードの保守が難しくなった。
既存コードの保守をしやすくする為に、
モジュール間の結合度を下げよう、
カプセル化してモジュール間のインタフェイスを
最小限にしようという機運が高まった。
そこで出てきたのがオブジェクト指向。
計算機科学は発展途上だから完璧なものは未だ無いよ。
有るのは「よりマシなもの」だけ。
文句を言うのは自由だけど、賢い人はそれを
チャンスと捉える。
ずーっと昔はグローバル変数丸出しで
モジュール間の結合度が高すぎて、
既存コードの保守が難しくなった。
既存コードの保守をしやすくする為に、
モジュール間の結合度を下げよう、
カプセル化してモジュール間のインタフェイスを
最小限にしようという機運が高まった。
そこで出てきたのがオブジェクト指向。
計算機科学は発展途上だから完璧なものは未だ無いよ。
有るのは「よりマシなもの」だけ。
文句を言うのは自由だけど、賢い人はそれを
チャンスと捉える。
466デフォルトの名無しさん
2020/08/25(火) 00:41:02.89ID:+asFNcyT 個人的には関数型に大いに興味があるし、勉強もしてみたいと思っているが、一般的には>>464とは逆の理解の方が一般的なのでは?
電子計算機であることと関数型のメリットがどう結び付くのかよくわからないが。
電子計算機であることと関数型のメリットがどう結び付くのかよくわからないが。
467デフォルトの名無しさん
2020/08/25(火) 01:03:47.54ID:OVVmNr3I >>465
オブジェクト指向のビジネス的な成功理由は
メリットがないことで弱点がないってことかな
メリットがあればみんな当然そこを挫きに来るし
もっといいモノを見つけて来るだろう
メリットが無ければそのアプローチで挑むことはできない
そんなくだらないアプローチが通ってしまうほど技術者が劣化してしまっていたことも原因の一つだと思う
資本主義のセーフティが全く働いていない
より良いものを使用者が選択できる選択肢は無く
どこもかしこも全く余裕がなく世界中でMSの提供物を使うしかなかった
そこまで世界が劣化してしまった結果として生まれた悲劇だと思う
二十年?三十年近くプログラミング言語は何も進化しなかった
これは大き過ぎる失策だったと思う
オブジェクト指向のビジネス的な成功理由は
メリットがないことで弱点がないってことかな
メリットがあればみんな当然そこを挫きに来るし
もっといいモノを見つけて来るだろう
メリットが無ければそのアプローチで挑むことはできない
そんなくだらないアプローチが通ってしまうほど技術者が劣化してしまっていたことも原因の一つだと思う
資本主義のセーフティが全く働いていない
より良いものを使用者が選択できる選択肢は無く
どこもかしこも全く余裕がなく世界中でMSの提供物を使うしかなかった
そこまで世界が劣化してしまった結果として生まれた悲劇だと思う
二十年?三十年近くプログラミング言語は何も進化しなかった
これは大き過ぎる失策だったと思う
468デフォルトの名無しさん
2020/08/25(火) 01:18:33.72ID:udMwTrr2 CでADT書いてみればオブジェクト指向の利便性がわかるよ
オブジェクトはADTの延長線にあるものだから
流行ったのはGUIを実現するにあたっての現実な解だったからだろうね
オブジェクトはADTの延長線にあるものだから
流行ったのはGUIを実現するにあたっての現実な解だったからだろうね
469デフォルトの名無しさん
2020/08/25(火) 01:33:38.55ID:fuDvWy3W470デフォルトの名無しさん
2020/08/25(火) 01:34:35.54ID:fuDvWy3W471デフォルトの名無しさん
2020/08/25(火) 01:36:44.68ID:fuDvWy3W 関数型言語の方が(ある点では)メリットが有るのは事実だが
オブジェクト指向にもメリットは有るわけで
それが理解できないのはセンスがない
オブジェクト指向にはメリットがあるが、関数型言語なら
それを上回るメリットが有るという言い方をするならわかるが
メリット自体がわからないんでしょう?
オブジェクト指向にもメリットは有るわけで
それが理解できないのはセンスがない
オブジェクト指向にはメリットがあるが、関数型言語なら
それを上回るメリットが有るという言い方をするならわかるが
メリット自体がわからないんでしょう?
472デフォルトの名無しさん
2020/08/25(火) 02:08:54.58ID:U8JRnYTu オブジェクト指向のメリットと謳われていたものはすべてデメリットだったんだよ。
暗殺組織が「両親を殺したのはあいつらだ」と言って子供に殺人させるが、本当は両親を殺したのは暗殺組織みたいな。
もっとも邪悪なのは階層化だろうな。
暗殺組織が「両親を殺したのはあいつらだ」と言って子供に殺人させるが、本当は両親を殺したのは暗殺組織みたいな。
もっとも邪悪なのは階層化だろうな。
473デフォルトの名無しさん
2020/08/25(火) 02:37:14.24ID:fuDvWy3W > オブジェクト指向のメリットと謳われていたものはすべてデメリットだったんだよ。
じゃあそのメリットというものをすべて言ってみてください
それがデメリットかどうか語るのはそれからですね
じゃあそのメリットというものをすべて言ってみてください
それがデメリットかどうか語るのはそれからですね
474デフォルトの名無しさん
2020/08/25(火) 02:46:05.11ID:U8JRnYTu Microsoftから関数型OSが出るかもしれんな。
出せなければMicrosoftは終わりだろ。
出せなければMicrosoftは終わりだろ。
475デフォルトの名無しさん
2020/08/25(火) 03:49:49.16ID:fuDvWy3W じゃあ俺はMicorosoftどころか、Apple、Googleも含めて
関数型OSなんてのは登場せず、終りもしない方に掛けるわw
少なくとも100年以上安泰だろうな
でお前はMicrosoftはいつまでに終わると思う?
終わると言っては見たものの、すぐには終わりそうもないから
100年後には終わってるはずだーとか言う?w
なんかぐぐってみたらNixOSとかいうのが純関数型OSとか書いてあるの見つけて調べてみたら
たんにパッケージマネージャーが関数型(というより宣言的記述で使えるだけ?)みたいでワロタ
お前が言う関数型OSっていうのもこういう意味?w
https://www.atmarkit.co.jp/news/200902/17/nixos.html
> もう1つ、最近私が気になっている実験的OSは“純関数型”を標榜する「NixOS」だ。
>これもLinux上に構築したシステムで、本来の意味でのOSとは違うのだが、
>ユーザーが利用するシステムが抱えている課題を解決しようとしているという意味では
>OSと呼んでもいいと思う。NixOSの公式ページには純関数型ディストリビューションと書いてある。
関数型OSなんてのは登場せず、終りもしない方に掛けるわw
少なくとも100年以上安泰だろうな
でお前はMicrosoftはいつまでに終わると思う?
終わると言っては見たものの、すぐには終わりそうもないから
100年後には終わってるはずだーとか言う?w
なんかぐぐってみたらNixOSとかいうのが純関数型OSとか書いてあるの見つけて調べてみたら
たんにパッケージマネージャーが関数型(というより宣言的記述で使えるだけ?)みたいでワロタ
お前が言う関数型OSっていうのもこういう意味?w
https://www.atmarkit.co.jp/news/200902/17/nixos.html
> もう1つ、最近私が気になっている実験的OSは“純関数型”を標榜する「NixOS」だ。
>これもLinux上に構築したシステムで、本来の意味でのOSとは違うのだが、
>ユーザーが利用するシステムが抱えている課題を解決しようとしているという意味では
>OSと呼んでもいいと思う。NixOSの公式ページには純関数型ディストリビューションと書いてある。
476デフォルトの名無しさん
2020/08/25(火) 07:10:53.76ID:DynTdfXH なんで「関数型」が「オブジェクト指向」の対義語になってるのか
「関数」なら分かるけど
「関数型」(宣言型)は「手続型」の対義語だよね(あまりにかけ離れてるので親階層で対義語)
「手続型」の「関数」は「関数指向」と言えばいいのかなw
・手続型(命令型)
・コマンド型
・関数指向
・オブジェクト指向
・メッセージ型 ←これも関数指向
・クラス型
・宣言型
・関数型
・構造型(SQL)
しかも「関数型」は反「カプセル化」でもないし
本来はループ処理しなきゃ実現できないものを、むしろ隠蔽しちゃうでしょ
SQLもそうだけど(SQLはループじゃなく並列処理だけど)
値1つ1つの変遷をステップ実行で確認できず、手続脳な人には意味が分かりにくい
「関数型」を希望した人はそれが邪魔だってわけだけど
「関数」なら分かるけど
「関数型」(宣言型)は「手続型」の対義語だよね(あまりにかけ離れてるので親階層で対義語)
「手続型」の「関数」は「関数指向」と言えばいいのかなw
・手続型(命令型)
・コマンド型
・関数指向
・オブジェクト指向
・メッセージ型 ←これも関数指向
・クラス型
・宣言型
・関数型
・構造型(SQL)
しかも「関数型」は反「カプセル化」でもないし
本来はループ処理しなきゃ実現できないものを、むしろ隠蔽しちゃうでしょ
SQLもそうだけど(SQLはループじゃなく並列処理だけど)
値1つ1つの変遷をステップ実行で確認できず、手続脳な人には意味が分かりにくい
「関数型」を希望した人はそれが邪魔だってわけだけど
477デフォルトの名無しさん
2020/08/25(火) 07:24:06.19ID:DynTdfXH OSについては、SQLの発想はありだと思う
既にWMIで一部SQLのようなもので操作できるけど
フォルダやレジストリを全検索すると、物凄い時間かかるじゃん
DBなら一瞬なのに
なのでOS自体がDBでできてればなとは思う
縦横無尽に検索したり更新したりできる
メーカーの中の人も影響関係を瞬時に正確に把握でき、バグ率も下がると思う
システムログに物凄い書式のXML使ってるけど、無駄が多過ぎる
肝心な条件で絞れないし
DB形式の2次元では階層表現できないということなんだろうけど、
2次元でも複数のテーブルに分ければいくらでも多次元にできるし、
検索も速いし、分かりやすいし、二次加工しやすい
Webについては最近はJSONとか?
XMLよりはマシだけど、やはりDB形式より無駄が多い
「関数型OS」とかわけわからんけど、XMLと似た危険な香りがする
なぜ人はDB形式以外に挑戦するのか
既にWMIで一部SQLのようなもので操作できるけど
フォルダやレジストリを全検索すると、物凄い時間かかるじゃん
DBなら一瞬なのに
なのでOS自体がDBでできてればなとは思う
縦横無尽に検索したり更新したりできる
メーカーの中の人も影響関係を瞬時に正確に把握でき、バグ率も下がると思う
システムログに物凄い書式のXML使ってるけど、無駄が多過ぎる
肝心な条件で絞れないし
DB形式の2次元では階層表現できないということなんだろうけど、
2次元でも複数のテーブルに分ければいくらでも多次元にできるし、
検索も速いし、分かりやすいし、二次加工しやすい
Webについては最近はJSONとか?
XMLよりはマシだけど、やはりDB形式より無駄が多い
「関数型OS」とかわけわからんけど、XMLと似た危険な香りがする
なぜ人はDB形式以外に挑戦するのか
478デフォルトの名無しさん
2020/08/25(火) 07:56:10.50ID:qpVxWgT6 >>476
オブジェクト指向にとって関数型は対義語じゃないよ
だけど関数型にとってオブジェクト指向は対義語
なぜなら関数型は極めると純粋関数型言語に向かうから
オブジェクト指向にとって関数型は取り入れるもの。便利な部分をつまみ食い
だけど純粋関数型言語にとってオブジェクト指向は純粋関数型言語ではない
オブジェクト指向にとって関数型は対義語じゃないよ
だけど関数型にとってオブジェクト指向は対義語
なぜなら関数型は極めると純粋関数型言語に向かうから
オブジェクト指向にとって関数型は取り入れるもの。便利な部分をつまみ食い
だけど純粋関数型言語にとってオブジェクト指向は純粋関数型言語ではない
479デフォルトの名無しさん
2020/08/25(火) 07:57:31.04ID:qpVxWgT6 >>477
> フォルダやレジストリを全検索すると、物凄い時間かかるじゃん
> DBなら一瞬なのに
インデックスが張られてないDBは検索がものすごく遅い
全件検索するから
つまり、速いか遅いかはインデックスがあるかどうかでしかない
> フォルダやレジストリを全検索すると、物凄い時間かかるじゃん
> DBなら一瞬なのに
インデックスが張られてないDBは検索がものすごく遅い
全件検索するから
つまり、速いか遅いかはインデックスがあるかどうかでしかない
480デフォルトの名無しさん
2020/08/25(火) 08:01:41.39ID:qpVxWgT6 >>477
どうせあれの話をしてるんだろうけど、
Microsoftから学んだほうが良いよ
ファイル検索をSQLでできるようにしたと
大々的に発表したけど結局搭載するのをやめた
時間がなかったわけじゃない。だって随分と前の話で
本当にやる気があるなら、次期バージョンで搭載にしてたはず
つまりMicrosoftという技術力の高い会社が
「発想は面白かったが実際にやってみたら意味がなかった」
と判断したんだから
どうせあれの話をしてるんだろうけど、
Microsoftから学んだほうが良いよ
ファイル検索をSQLでできるようにしたと
大々的に発表したけど結局搭載するのをやめた
時間がなかったわけじゃない。だって随分と前の話で
本当にやる気があるなら、次期バージョンで搭載にしてたはず
つまりMicrosoftという技術力の高い会社が
「発想は面白かったが実際にやってみたら意味がなかった」
と判断したんだから
481デフォルトの名無しさん
2020/08/25(火) 08:04:32.16ID:DynTdfXH482デフォルトの名無しさん
2020/08/25(火) 08:08:52.19ID:DynTdfXH483デフォルトの名無しさん
2020/08/25(火) 08:15:35.41ID:qpVxWgT6 >>481
検索はインデックスが全てです
検索はインデックスが全てです
484デフォルトの名無しさん
2020/08/25(火) 08:18:46.61ID:qpVxWgT6 Googleの検索がめちゃくちゃ速い理由
https://logmi.jp/business/articles/234684
Googleのコンピューターも膨大な時間と努力を投入して
インデックスを作っていますが、その努力の甲斐があるというものです。
インデックスによって劇的に検索スピードが上がり、毎秒、約40,000件もの検索にGoogleは答えているのです。
https://logmi.jp/business/articles/234684
Googleのコンピューターも膨大な時間と努力を投入して
インデックスを作っていますが、その努力の甲斐があるというものです。
インデックスによって劇的に検索スピードが上がり、毎秒、約40,000件もの検索にGoogleは答えているのです。
485デフォルトの名無しさん
2020/08/25(火) 08:38:05.59ID:d88THs21 ここはオブジェクト指向すら理解できない老害の教育の場かな?
486デフォルトの名無しさん
2020/08/25(火) 09:03:39.44ID:+ObH0gCT >>482
>内部的な設計思想
それがWinFSだったんだけど
https://www.itmedia.co.jp/enterprise/articles/0607/18/news010.html
データは複数のデータベース(またはデータストア)に保存され、WinFSはこれらのストアとファイルシステム間でデータの同期を効率よく実行する。
また、連絡先や予定表アイテム、電子メールなど、一般的に使用される類のデータの標準のプロパティスキーマも提供する予定だった。
WinFSが実現されていれば、ファイルの検索や整理機能の向上、および特定の種類のデータ
(連絡先や予定表のイベントなど)の共有を共通スキーマにより簡素化する相互運用性の向上などが期待できた。
>内部的な設計思想
それがWinFSだったんだけど
https://www.itmedia.co.jp/enterprise/articles/0607/18/news010.html
データは複数のデータベース(またはデータストア)に保存され、WinFSはこれらのストアとファイルシステム間でデータの同期を効率よく実行する。
また、連絡先や予定表アイテム、電子メールなど、一般的に使用される類のデータの標準のプロパティスキーマも提供する予定だった。
WinFSが実現されていれば、ファイルの検索や整理機能の向上、および特定の種類のデータ
(連絡先や予定表のイベントなど)の共有を共通スキーマにより簡素化する相互運用性の向上などが期待できた。
487デフォルトの名無しさん
2020/08/25(火) 09:32:10.77ID:1MKRoGus >>486
そして実験的に実装したけど、結局速い検索ならインデックス作るだけでよくね?となったんだよね
そして実験的に実装したけど、結局速い検索ならインデックス作るだけでよくね?となったんだよね
488デフォルトの名無しさん
2020/08/25(火) 09:33:14.13ID:1MKRoGus 特定のプロパティで検索するのも、プロパティをインデックスすればいいだけだしね
489デフォルトの名無しさん
2020/08/25(火) 10:38:19.23ID:ILy/WoQ4 GUI用の概念を別用途に持ち込んだから今の混乱がある
490デフォルトの名無しさん
2020/08/25(火) 10:44:00.33ID:8u+D4Xfy アップルのデスクトップアイコン?
491デフォルトの名無しさん
2020/08/25(火) 10:45:31.68ID:8F6lcUT7 >>478
純粋関数型以外の関数型言語(関数型をベースにしつつオブジェクト指向の機能を付け加えた言語等)も人気があるから、「関数型は極めると純粋関数型に向かう」というのは語弊があるような。
結局今は、純粋なオブジェクト指向を出発点にするにせよ、純粋な関数型を出発点にするにせよ、他方の良い点ををうまく取り込み、バランスを取ることを目指すアプローチが多いんだろう。
純粋関数型以外の関数型言語(関数型をベースにしつつオブジェクト指向の機能を付け加えた言語等)も人気があるから、「関数型は極めると純粋関数型に向かう」というのは語弊があるような。
結局今は、純粋なオブジェクト指向を出発点にするにせよ、純粋な関数型を出発点にするにせよ、他方の良い点ををうまく取り込み、バランスを取ることを目指すアプローチが多いんだろう。
492デフォルトの名無しさん
2020/08/25(火) 12:06:50.27ID:d4ZTtTef 手続き型でしょ
関数型とは言わない
関数型とは言わない
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【おこめ】「有能だったんじゃ」おこめ券で批判殺到の鈴木農水大臣…ネットでは前任の“進次郎再評価” ★2 [ぐれ★]
- 「暖房が使えない」「食費が高くて子どもの栄養が…」 物価高に苦しむ子育て世帯、政府に期待する支援は ★2 [蚤の市★]
- オイルマッサージ施術中20代女性にわいせつ行為か セラピストの男(30)を再逮捕 余罪複数とみて警視庁が捜査 [どどん★]
- 内閣支持、微減59.9% 5割超が補正予算評価 時事通信世論調査 [どどん★]
- 【中国外務省】日本への渡航自粛を再度呼びかけ 今度は「地震発生」を理由に [ぐれ★]
- 日本語が話せない「外国籍」の子が急増中、授業がストップ、教室から脱走も…先生にも大きな負担「日本語支援」追いつかず★3 [七波羅探題★]
- 高市内閣の支持率、下落wwwwwwwwwww [834922174]
- お前ら嫁や彼女にセックス中にどんな声がけしてる? [369521721]
- Vtuber「人気アニメとコラボします!」←これでVが叩かれるの謎じゃね
- Xでフォローしてきた人をフォロバして相手のフォロー解除するのが趣味なんだが
- あー…女児のつるつるまんまん舐め回してえなあ…
- 愛国者「徴兵されるのは嫌。でも敵が侵略してきたら考えます」 [834922174]
