カプセル化は愚かな考え

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2020/07/29(水) 17:17:58.13ID:u638n5uE
■危険性

かつて偏差値の低い学校向けの情報処理系教科書において「カプセル化は大変すばらしいものであり絶対に使うように」と大体的に宣伝された。

一方、カリフォルニア大学バークレー校の有識者を中心とした「インターネットを作った人たち」は「階層化の有害性(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)
393デフォルトの名無しさん
垢版 |
2020/08/23(日) 01:49:35.65ID:+aN5WY/b
こんなふわふわした論理を積み重ねちゃう感じで
本当にプログラムがかけるのかも疑問
2020/08/23(日) 01:49:53.43ID:Gvt1TzeD
>>392
そのとおり

私は状態がない世界に住んでいる
私の世界では引数と戻り値だけで表現できる
状態がない世界では関数型が一番

こういう理屈

現実はたくさんの状態がある世界
たくさんの状態をどうやって管理するか?が難しい
そこに架空の世界を持ってきたって意味がない
395デフォルトの名無しさん
垢版 |
2020/08/23(日) 01:50:15.25ID:rOaea7BL
>>386
プログラミングの生産性は地味でちっちゃいことの積み重ね
管理職やアプリコンサルやその他ペテン師は大きいことを言いたがるから、
多大なコストをかけてマイナンバーカードを作っておいて、未だに当たり前のデータ連携ができておらず、相変わらず無駄な申請

もしくは、ついでに出てきたものに対するついでの返信でしかないものを、「クローズアップ」とする解釈の方が大げさ

>>387
その機能は、あるクラスオブジェクト指向言語、が持ってるのだが、コーディングはスタティックなコストで済む
どの言語を選ぶべきかという話ではなく、どんなコーディングをすべきか、という話
または、いい機能なので他の言語にも付けてね、っていう願望

メソッド風に出てくるのは書式の違いであって、本質的に括弧と違わない
スタティックだと言ってるんだから仕様的にも裏切っちゃいけないし
宣言は length( this string s ) で普通の関数と同じく括弧の中に呼び出し元がある(ちょっと気持ち悪いが)
2020/08/23(日) 14:03:19.82ID:OgLdxADB
馬鹿はオブジェクト指向にかぶれるくらいなら関数型にかぶれてる方がまだ扱いが楽。
モジュール分割へたくそなくせにオブジェクト指向にかぶれるとほんま手に負えんモンスターになるから。
2020/08/23(日) 14:24:19.29ID:mH2YjVlt
>>396
人間の話なんてどうでもいいんですよ
技術の話をしなさい
398デフォルトの名無しさん
垢版 |
2020/08/23(日) 19:35:46.59ID:FOCNZ4Ko
staticが技術的な話なのか。
C++をbetter Cとして使ってくれてればいいよ。
C++使ってんのにどうしてOOPじゃないんだ、とか言わないからさ^^
2020/08/23(日) 19:39:10.85ID:a/7Z84eB
スタティック関数っていってるの多分javaのスタティックメソッドの方だと思うよ
400デフォルトの名無しさん
垢版 |
2020/08/23(日) 19:41:19.27ID:eNcX4Z1l
オブジェクト指向から関数型へは、ある程度発想の転換が必要なんだろな。

スレの子たちは転換できてないな。

オブジェクト指向で設計できないから関数型では出来ないというが、そもそもオブジェクト指向の必要が無いのだが。
2020/08/23(日) 20:08:07.34ID:ij+CyHSL
C++をbetter Cとか言う奴は
C++もCも両方ニワカである
2020/08/23(日) 20:22:19.98ID:mH2YjVlt
>>400
> オブジェクト指向から関数型へは、ある程度発想の転換が必要なんだろな。
必要なのは発想の転換じゃなくて実装サンプルだよ
多数の状態を持つボタンのようなものをどうすればシンプルに実装できるか
その実装サンプルがどこにもないから関数型には無理なんだなってことになってる
2020/08/23(日) 20:25:02.95ID:eq+oHtYe
そもそもオブジェクト指向について、関数型について
きちんと説明できる人っているんだろうか

みんな、なんとなくこういうもの、というイメージしか
持てないでいるんじゃなかろうか
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
2020/08/23(日) 21:13:29.31ID:WHl934bN
>>402
>多数の状態を持つボタン

もう少し要件が明確にしてくれる?
407デフォルトの名無しさん
垢版 |
2020/08/23(日) 21:33:12.94ID:+aN5WY/b
>カプセル化だけではなくオブジェクト指向自体が時代遅れ
といいながら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
無能ほど偉そうなんだよなぁ
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

ボタンを作ったら、これだけの情報が初期化されて
作ったボタンからこれだけの情報を取得することも出来る
本当はスタイルもあるからもっと多いけどね
414デフォルトの名無しさん
垢版 |
2020/08/23(日) 22:46:04.13ID:eNcX4Z1l
ベクトル化の概念が抜け落ちてるんだろうけど。

説明しろと言われても、自分で勉強しろとしか。
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
416デフォルトの名無しさん
垢版 |
2020/08/23(日) 22:53:17.20ID:eNcX4Z1l
ボタンの「作成」と言ってるところにセンスの悪さを感じるというか。

きちんと説明してやろうという気力が失せるんだよな。

どうせコイツじゃわかんねーだろうっていう。
2020/08/23(日) 22:54:20.36ID:RQFTaUls
じゃあボタンの「作成」以外でもいいよ
お前が好きなように言いたいことを言え
お前はまだ何も言ってない
2020/08/23(日) 22:57:18.72ID:RQFTaUls
関数型言語派は、「はぁ〜お前らわかってないんだよな〜」って言うのが目的なので
説明しろといわれたら、説明できなんだよなw
そのパターンばかり
2020/08/23(日) 23:00:00.42ID:HeDyBrKq
そもそもの前提からして意味分かんない
何がどうなることを目指してるの?
お互いに
2020/08/23(日) 23:01:52.95ID:RQFTaUls
プログラミング言語の目的なんて
目的は動くものを(できるだけ簡潔に)作ることに決まってるだろ
2020/08/23(日) 23:06:10.45ID:RQFTaUls
俺今丁度、環境変数を扱うコード書いてるんだけどさ、

1. 環境変数を設定する
2. (確認のために)設定した環境変数を表示する
3. 環境変数を残したまま他のプログラムを実行する

これを関数型言語で書いてみて
2020/08/23(日) 23:06:58.49ID:RQFTaUls
これすごく簡単なことだと思うんだが、こういうのすら関数型言語では実装コードが出ないというねw
423デフォルトの名無しさん
垢版 |
2020/08/23(日) 23:10:12.46ID:+aN5WY/b
このスレの流れは関数型狂信者がしつこくオブジェクト指向では駄目だと
根拠の薄い主張を繰り返し、具体的なことを聞くと煙に巻く
今の所、関数型推しはやべえ奴という印象しかない
2020/08/23(日) 23:11:26.36ID:HeDyBrKq
>>420
動くもの?
正しく動くものでしょう?
この「正しく」ってのが重要になると思うんだけど
425デフォルトの名無しさん
垢版 |
2020/08/23(日) 23:14:04.02ID:+aN5WY/b
散々引っ張っといてこのざま
2020/08/23(日) 23:14:19.38ID:RQFTaUls
>>424
言葉遊びして言い訳はいらんよ
さっさとやれ
2020/08/23(日) 23:17:02.46ID:RQFTaUls
ソフトウェアというのは多数の「状態」をどうやって管理するかってことに尽きるんだが
関数型言語は「状態」が少ない場合はこれでうまくいくという話しかしない

多数の「状態」を管理する方法ではなくて、少数の「状態」を管理する方法しかいわない
多数の「状態」という問題の解決方法ではなく、問題をすり替えてる
428デフォルトの名無しさん
垢版 |
2020/08/23(日) 23:18:16.79ID:eNcX4Z1l
愚かな奴らよ。
2020/08/23(日) 23:23:57.75ID:HeDyBrKq
正しく動くこととオブジェクト指向になんの繋がりがあるの?
2020/08/23(日) 23:26:10.56ID:RQFTaUls
関数型言語にとっては正しく動くことが課題なので・・・
バグばかり
431デフォルトの名無しさん
垢版 |
2020/08/23(日) 23:26:16.73ID:+aN5WY/b
まじでろくなやついないな
関数型を嫌う理由として十分だわ
2020/08/23(日) 23:27:32.42ID:RQFTaUls
さあ、まだ関数型言語での実装コードは出ないぞ!
2020/08/23(日) 23:33:01.07ID:HeDyBrKq
>>432
お前もコード見て何がどうなってることを確認したいの?
2020/08/23(日) 23:35:24.15ID:RQFTaUls
>>433
どれくらいの複雑さになるかを確認したい
435デフォルトの名無しさん
垢版 |
2020/08/23(日) 23:36:04.55ID:+aN5WY/b
簡単なコードなんだからぐずぐずせず
さっと出したほうが早いのに
言い訳してるってことはエアプか
2020/08/23(日) 23:36:18.75ID:HeDyBrKq
結局、何もかも前提がない

いいソースとはどういうソースを言うの?

っていう単純な前提がないから
全てにおいて結論が出せない
十年以上もコード組んでるくせに
こんなこともわからない時点で
そんなに能力高くないんだよお前ら
2020/08/23(日) 23:36:38.11ID:HeDyBrKq
>>434
複雑さの定義は?
2020/08/23(日) 23:36:52.33ID:RQFTaUls
>>437
コードを見ればわかる
2020/08/23(日) 23:37:20.11ID:RQFTaUls
いい悪いを議論する前に、まずコードを出さないと意味がない
動くコードを出しましょう
440デフォルトの名無しさん
垢版 |
2020/08/23(日) 23:37:36.34ID:+aN5WY/b
>いいソースとはどういうソースを言うの?
初心者みたいな質問出たぞ
2020/08/23(日) 23:37:45.06ID:tmHqRGVP
必死で逃げててワロ
2020/08/23(日) 23:38:28.03ID:HeDyBrKq
>>438
だからコードの何を見るん?
2020/08/23(日) 23:39:45.71ID:RQFTaUls
>>442
関数型のコード例
2020/08/23(日) 23:41:36.66ID:HeDyBrKq
もし、コードで判断をするなら全く同じ処理を記述した
方式Aと方式Bの両方が必要になるはずなのにそれも用意しようとせず
片方だけ集めたってしょうがねぇだろバーカ

お前のソースなんてみる必要すらない
445デフォルトの名無しさん
垢版 |
2020/08/23(日) 23:42:18.87ID:+aN5WY/b
public staticくん
2020/08/23(日) 23:43:26.03ID:a/7Z84eB
関数型言語をなんか勘違いしてない?
2020/08/23(日) 23:43:36.05ID:RQFTaUls
>>444
> 1. 環境変数を設定する
> 2. (確認のために)設定した環境変数を表示する
> 3. 環境変数を残したまま他のプログラムを実行する
>
> これを関数型言語で書いてみて


ENV["FOO"]=123
print(ENV["FOO"])
system("bar.exe")
2020/08/23(日) 23:43:50.12ID:HeDyBrKq
そもそもまともな思考ができてねーじゃん
本当にその程度でプログラム組めてるのかよ
恥を知れバーカ
449デフォルトの名無しさん
垢版 |
2020/08/23(日) 23:44:56.07ID:+aN5WY/b
>>448 お前がなw
2020/08/23(日) 23:46:21.56ID:RQFTaUls
>>444

>>447で関数型ではない状態を変更するコードを書いた
関数型はまだでないのか?
2020/08/24(月) 00:20:14.32ID:VfgDhYHP
>>413
それら全部状態って呼ぶのかぁ
とりあえず言いたいことは理解した

elmのチュートリアル1ページ目のサンプルコードで
HTMLのボタンも作ってるから見てみるといいよ
https://guide.elm-lang.org/
2020/08/24(月) 01:27:13.84ID:nvJPtqaW
モチツケ
https://i.imgur.com/ZtPP1P0.jpg
2020/08/24(月) 03:43:12.52ID:ePkGqGTS
インスタンスの代わりに、連想配列を受け取って連想配列を返す
それが関数型

状態はメンバ変数の代わりに、連想配列に入っている


連想配列.メソッド(); これがオブジェクト指向で
関数(連想配列); これが関数型

ということでOK?
454デフォルトの名無しさん
垢版 |
2020/08/24(月) 14:43:56.73ID:lWuWtpGZ
そもそも、時間の流れがある≒刻一刻と状態が変わる、というパラダイムがある

例えば3Dアクションの全てが四次元プログラミングになる
x,y,z,tの四変数が必要になる

GUIは三次元プログラミングで、x,y,tの三変数が必要になる

未来がどーなるかは分からん、ってのがダイナミック、
一度決めたら未来永劫変わらない、ってのがスタティック
2020/08/24(月) 16:21:03.36ID:uvJBs23t
え?実行中に変えるの?
2020/08/24(月) 17:04:36.25ID:jN2NYQ9A
>>453
違います
2020/08/24(月) 18:30:41.04ID:uvJBs23t
メリットが全然わからんのよな
2020/08/24(月) 18:34:32.74ID:9GBeU53A
>>456
違いません。

という反論で十分やなぁ
理由も言わないお前に対してはw
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
愚かなり。
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
ずーっと昔はグローバル変数丸出しで
モジュール間の結合度が高すぎて、
既存コードの保守が難しくなった。

既存コードの保守をしやすくする為に、
モジュール間の結合度を下げよう、
カプセル化してモジュール間のインタフェイスを
最小限にしようという機運が高まった。
そこで出てきたのがオブジェクト指向。

計算機科学は発展途上だから完璧なものは未だ無いよ。
有るのは「よりマシなもの」だけ。
文句を言うのは自由だけど、賢い人はそれを
チャンスと捉える。
2020/08/25(火) 00:41:02.89ID:+asFNcyT
個人的には関数型に大いに興味があるし、勉強もしてみたいと思っているが、一般的には>>464とは逆の理解の方が一般的なのでは? 
電子計算機であることと関数型のメリットがどう結び付くのかよくわからないが。
2020/08/25(火) 01:03:47.54ID:OVVmNr3I
>>465
オブジェクト指向のビジネス的な成功理由は
メリットがないことで弱点がないってことかな
メリットがあればみんな当然そこを挫きに来るし
もっといいモノを見つけて来るだろう
メリットが無ければそのアプローチで挑むことはできない

そんなくだらないアプローチが通ってしまうほど技術者が劣化してしまっていたことも原因の一つだと思う

資本主義のセーフティが全く働いていない
より良いものを使用者が選択できる選択肢は無く
どこもかしこも全く余裕がなく世界中でMSの提供物を使うしかなかった
そこまで世界が劣化してしまった結果として生まれた悲劇だと思う
二十年?三十年近くプログラミング言語は何も進化しなかった
これは大き過ぎる失策だったと思う
2020/08/25(火) 01:18:33.72ID:udMwTrr2
CでADT書いてみればオブジェクト指向の利便性がわかるよ
オブジェクトはADTの延長線にあるものだから

流行ったのはGUIを実現するにあたっての現実な解だったからだろうね
2020/08/25(火) 01:33:38.55ID:fuDvWy3W
>>459
オブジェクト指向の方が優れているよ
理由はいちいち説明しないよw
2020/08/25(火) 01:34:35.54ID:fuDvWy3W
>>462
お前がオブジェクト指向のメリットが理解できないだけじゃね?
お前自信に問題があるって自覚しよう
2020/08/25(火) 01:36:44.68ID:fuDvWy3W
関数型言語の方が(ある点では)メリットが有るのは事実だが
オブジェクト指向にもメリットは有るわけで
それが理解できないのはセンスがない

オブジェクト指向にはメリットがあるが、関数型言語なら
それを上回るメリットが有るという言い方をするならわかるが
メリット自体がわからないんでしょう?
472デフォルトの名無しさん
垢版 |
2020/08/25(火) 02:08:54.58ID:U8JRnYTu
オブジェクト指向のメリットと謳われていたものはすべてデメリットだったんだよ。

暗殺組織が「両親を殺したのはあいつらだ」と言って子供に殺人させるが、本当は両親を殺したのは暗殺組織みたいな。

もっとも邪悪なのは階層化だろうな。
2020/08/25(火) 02:37:14.24ID:fuDvWy3W
> オブジェクト指向のメリットと謳われていたものはすべてデメリットだったんだよ。

じゃあそのメリットというものをすべて言ってみてください
それがデメリットかどうか語るのはそれからですね
474デフォルトの名無しさん
垢版 |
2020/08/25(火) 02:46:05.11ID:U8JRnYTu
Microsoftから関数型OSが出るかもしれんな。

出せなければMicrosoftは終わりだろ。
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の公式ページには純関数型ディストリビューションと書いてある。
476デフォルトの名無しさん
垢版 |
2020/08/25(火) 07:10:53.76ID:DynTdfXH
なんで「関数型」が「オブジェクト指向」の対義語になってるのか
「関数」なら分かるけど
「関数型」(宣言型)は「手続型」の対義語だよね(あまりにかけ離れてるので親階層で対義語)
「手続型」の「関数」は「関数指向」と言えばいいのかな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形式以外に挑戦するのか
2020/08/25(火) 07:56:10.50ID:qpVxWgT6
>>476
オブジェクト指向にとって関数型は対義語じゃないよ
だけど関数型にとってオブジェクト指向は対義語
なぜなら関数型は極めると純粋関数型言語に向かうから

オブジェクト指向にとって関数型は取り入れるもの。便利な部分をつまみ食い
だけど純粋関数型言語にとってオブジェクト指向は純粋関数型言語ではない
2020/08/25(火) 07:57:31.04ID:qpVxWgT6
>>477
> フォルダやレジストリを全検索すると、物凄い時間かかるじゃん
> DBなら一瞬なのに

インデックスが張られてないDBは検索がものすごく遅い
全件検索するから

つまり、速いか遅いかはインデックスがあるかどうかでしかない
2020/08/25(火) 08:01:41.39ID:qpVxWgT6
>>477
どうせあれの話をしてるんだろうけど、
Microsoftから学んだほうが良いよ
ファイル検索をSQLでできるようにしたと
大々的に発表したけど結局搭載するのをやめた

時間がなかったわけじゃない。だって随分と前の話で
本当にやる気があるなら、次期バージョンで搭載にしてたはず

つまりMicrosoftという技術力の高い会社が
「発想は面白かったが実際にやってみたら意味がなかった」
と判断したんだから
481デフォルトの名無しさん
垢版 |
2020/08/25(火) 08:04:32.16ID:DynTdfXH
>>479
インデックスなんて大したことないよ
(最近は結構差が出る場合があるけど、わざとじゃないかとw)
DBの速さはデータ形式の単純さ、全行並列処理、ハードディスクの自前管理
482デフォルトの名無しさん
垢版 |
2020/08/25(火) 08:08:52.19ID:DynTdfXH
>>480
まあ一般ユーザーは使わんわな
じゃなくて、内部的な設計思想の話
2020/08/25(火) 08:15:35.41ID:qpVxWgT6
>>481
検索はインデックスが全てです
2020/08/25(火) 08:18:46.61ID:qpVxWgT6
Googleの検索がめちゃくちゃ速い理由
https://logmi.jp/business/articles/234684

Googleのコンピューターも膨大な時間と努力を投入して
インデックスを作っていますが、その努力の甲斐があるというものです。
インデックスによって劇的に検索スピードが上がり、毎秒、約40,000件もの検索にGoogleは答えているのです。
485デフォルトの名無しさん
垢版 |
2020/08/25(火) 08:38:05.59ID:d88THs21
ここはオブジェクト指向すら理解できない老害の教育の場かな?
2020/08/25(火) 09:03:39.44ID:+ObH0gCT
>>482
>内部的な設計思想

それがWinFSだったんだけど

https://www.itmedia.co.jp/enterprise/articles/0607/18/news010.html

データは複数のデータベース(またはデータストア)に保存され、WinFSはこれらのストアとファイルシステム間でデータの同期を効率よく実行する。
また、連絡先や予定表アイテム、電子メールなど、一般的に使用される類のデータの標準のプロパティスキーマも提供する予定だった。
WinFSが実現されていれば、ファイルの検索や整理機能の向上、および特定の種類のデータ
(連絡先や予定表のイベントなど)の共有を共通スキーマにより簡素化する相互運用性の向上などが期待できた。
2020/08/25(火) 09:32:10.77ID:1MKRoGus
>>486
そして実験的に実装したけど、結局速い検索ならインデックス作るだけでよくね?となったんだよね
2020/08/25(火) 09:33:14.13ID:1MKRoGus
特定のプロパティで検索するのも、プロパティをインデックスすればいいだけだしね
489デフォルトの名無しさん
垢版 |
2020/08/25(火) 10:38:19.23ID:ILy/WoQ4
GUI用の概念を別用途に持ち込んだから今の混乱がある
2020/08/25(火) 10:44:00.33ID:8u+D4Xfy
アップルのデスクトップアイコン?
2020/08/25(火) 10:45:31.68ID:8F6lcUT7
>>478
純粋関数型以外の関数型言語(関数型をベースにしつつオブジェクト指向の機能を付け加えた言語等)も人気があるから、「関数型は極めると純粋関数型に向かう」というのは語弊があるような。
結局今は、純粋なオブジェクト指向を出発点にするにせよ、純粋な関数型を出発点にするにせよ、他方の良い点ををうまく取り込み、バランスを取ることを目指すアプローチが多いんだろう。
2020/08/25(火) 12:06:50.27ID:d4ZTtTef
手続き型でしょ
関数型とは言わない
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況