オブジェクト指向はオワコン
レス数が950を超えています。1000を超えると書き込みができなくなります。
オブジェクト指向言語で書きさえすれば勝手にオブジェクト指向になると
勘違いしてるやつが多かったな そうなの?もう標準になっちゃってるだけじゃないの? そもそもライブラリがオブジェクト指向だし
オブジェクト指向を回避したくても出来ない みんな一時的に反発して違うパラダイムに行くけど結局帰ってくるのさ コンストラクタに独自のクラスいくつも要求してくるタイプの設計マジで嫌い この処理は一箇所に集約できるんじゃないかっていう人間の感覚と
型による論理的な整合性がズレてることがあって
継承を使ったオブジェクト指向は思ってるより難しいのよね
作り始めたときはよかったけど修正が入るうちにどうしようもなくなった
なんてことも起こりがち プログラム作れない奴注目してほしくてクソスレ立てるムーブ
リアルで犯罪やらかす前に病院行った方がいいぞマジで オブジェクト指向じゃなくて継承が諸悪の根源なだけだろ オブジェクト指向を不適切に使っている人が多いだけ。オブジェクト指向で本当に書くべき所だけ書けばよい。 ペテン師がうそばっかこいて布教
ttps://stat.ameba.jp/user_images/20140429/20/kurosawa-tomoyo/99/73/j/o0800107112924360687.jpg 継承w
継承なんかフレームワーク構築で使うもの。
アプリでは、委譲、集約を使う。 アプリは底辺土方の作業なのでどうでも良いじゃん
プログラマはライブラリやフレームワークを作ります 土方的にはオブシコは時代遅れっていうかー
オブシコでは複雑さに対処できないことが多くの人の経験から明らかになってるのでー
昔はstaticおじさんとかドメイン貧血症と言われてバカにされていたものが
実は正しかった可能性が高いっていうのがいまの状況でー
データと振る舞いを分離することでシステムがしなやかになると認識してますねー
以上、土方の現場はそんな感じですねー オブジェクト指向最強説が巷間に流布していたのは~2007年くらいまでですね
2007年前後にオブジェクト指向ってなんかおかしくない?と聡明な人たちが気付き始めて
より良い方向を探り出して関数型やデータ指向が再発見されて
その考えが一般の人にまで広がりだしたのが現代ですね
聡明な人はさらにその先まで見えてるのかもしれないですが
俺のような一般土方的にはデータと振る舞いは分けて設計するのがいまの現場のベストプラクティスです これ会議が負けて、現場が勝ったみたいな話よね
現実は机上で考えるより複雑だったと 正確に言えばオブシコがキモいんじゃなくて
オブシコおじがキモい ちょっと論点ずれるかもだけど、
結局何が良いのだろう。
最近、Goが気になってるのですが、頭いい人教えてください。
下記見て混乱してるところにオブジェクト指向オワコンと来るとどういう時に使い分ける(関数型?)か混乱します。
Goはオブジェクト思考?
https://postd.cc/is-go-object-oriented/
GoとJavaの違い
https://inside.dmm.com/articles/ex-java-engineer-thoughts-about-go/ 混乱するなら関わるな
無理に理解しようとすると頭がおかしくなって死ぬぞ トップオブトップのPythonさんがオブジェクト指向なんだから安心してついていこうぜ コピペするなっていうけどコピペしてクラスメソッドとして実装した方が何かと都合いいよな WindowsにしろMacにしろUNIXにしろGUIがオブジェクト指向を根本原理として作られているから
フルスクラッチで刷新されない限り、オブジェクト指向の呪縛からは逃れられない フルスクラッチとは言ってもライブラリ使う時点でもうオブジェクト指向なので >>32
クソスレで雑談したがるお前みたいなカスがいるからだよ
当たり前のように使うものをオワコンって言うのが異常 オブジェクト指向は部分的には成功してるんだと思う
よくあるコンテナ類のクラスライブラリとか使いやすいでしょ?
別になんにも文句ないでしょ?
OOPを定義するお題目、カプセル化がどうのとかも、
非常によくマッチして効果を発揮してくれてると思う。
だけどそっから先が盲点。
OOPのコンセプト自体はいいのかもしれん。
OOPで作ったクラスライブラリも、良いのがあるのかもしれん。
でも、クラス設計が難しい。
クラスライブラリの設計が難しい。
OOPを使ってさあ自前の何かを作ろうとしたら難しい。
間違う。間違いをさらなる間違いで補う。
糞の山を糞でラッピングする。
自分でクラスや、関連する一連のクラス群をつくるとき、
そこに最大の困難があり、さらにそれは自覚されない。
プログラマの共通認識とすらされていない。
OOPやOOPLについては語れど、クラス設計の困難さには意識が行かない。
またはその困難さを解決する認識も知識も文化もなにもかもが不足している。
クラス設計の難しさに対して誰もが、とたんに無力に、無自覚になる。
ここにOOPの恐ろしさがある。 Javaでないならムリに自分でクラスを作らなくても良くない? とりあえず構造体と関数で書いてみて、必要だと思ったらクラスに移行するとか。スクリプト言語とかでもそんな感じだし。
組み込みのクラスライブラリを使うだけでも十分にOOLの恩恵はあると思うけど。 正解
クラスを書かないほうが正解
標準のクラスライブラリだけを使って済むならそれが正解
ただ、そうもいかないときに徐々にホラーになっていく クラス使わないなら構造体のない言語でデータはどうやって定義すんの
全部辞書型か?
クラス自体が動作を振る舞う必要はないっていうデザインパターン論ならわかるが
それすら人間が歩いたり物を持ったりするという機能から考えると直感に反するけどな ここで人間とか動物の話はやめてくれんか
少なくともオブジェクト指向のアプローチは失敗した
その直感とやらは錯覚かもしれん メソッドは成功してると思う
継承と過度なカプセル化は失敗だと思う >>34
MFC ω のことですねωω判りますωωω >>37
Rustは?
Nimは?
知ってて言ってるのか? 動物の例も批判されがちだけど
あれもねえ
例えは例えなんだから
そのあとは自力で応用しようよ?
コツだけうまく受け取ろうよ? って思うわ
実装に対するインタフェースだとか
継承時のポリモーフィズムだとか
そこだけ例から読み取って
あとはうまく応用しろよって思うわ
具体例からエッセンスだけを取り出して
うまいこと抽象化してくのは必須よね >>42
Nimは知らんがRustは構造体あるだろ。
俺はRustはオブジェクト指向で書けると思ってるよ。
俺の考えるオブジェクト指向の中では継承は必須でも何でもないので。 アプリレイヤを記述する際、継承は確かに百害あって一利くらいしかなかったけど
オブジェクト指向の本質的な問題点にちゃんと気が付いている人は
とても少ない 向き不向きがあると思う
GUIとかゲーム開発には向いているからスマホアプリ開発やwindowsアプリ開発には向いている
サーバサイドには全く向いていない
GUI、ゲーム開発は動物、犬に当てはめやすいから向いてるけど、サーバサイドは向いてないのよね >>37
> 全部辞書型か?
そうなる
型の安全性と引き換えに柔軟性を得るっていうのがデータ指向の考え方
オブジェクトに状態をもたせるオブジェクト指向も使い所によってはあり
人間の場合はたとえば明日人間の機能が変わりますなんてことないし機能が安定しているのよね
オブジェクト指向はスタックやリストといったデータ構造とも相性が良い
一方で仕様がころころ変わる業務要件とはあまり相性が良くない > オブジェクト指向の本質的な問題点
それは一体なに? 帯び文
やっぱりみんなオブジェクト指向に帰ってくる そもそもオブジェクト指向にとって代われると思うこと自体勘違い甚だしい >>58
方法の一つでしか無いものにとって代わるって何言ってんの
コピペでしかプログラムできないバカ消えろ こういうつまんねぇ話は2003年頃に済ませておけよ OOP信者の方はC#の拡張メソッドのことどう思ってるんですかw >>67
おじいちゃん、ここは若者のスレッドなの老害はでしゃばらないでね 既存フレームワークはオブジェクト指向かもしれんけど
俺はその書き方では使ってない
これが答えだ >>71
5chで若者とか笑わせなくていいからハロワ行けよ オブジェクト指向こそ至高だろ?
オブジェクト指向のコード読めなくて負い目感じてるよね? >>75
お前の書くコードはくちゃくちゃで眺めると目がつぶれそうだよ >>75
オブジェクト指向の最大の長所は可読性の高さだが、お前はオブジェクト指向の基本からまるで分ってないな オブジェクト指向の最大の長所が可読性って、そんなに言われているかな? うまいことブラックボックス化ができたたきにゴチャっとしたコードをクラス内部に閉じ込められる効果はあるけれども、オブジェクト同士の相互関係は、基本的にはオブジェクトの海と言われるスパゲティじゃない? >>78
スパゲッティの定義次第だからその定義を共有しないと話が噛み合わない。
同じコードをオブジェクト指向以外で書いたらスパゲッティじゃなくなるのか、と。
「私が読みにくいと感じるからスパゲッティ」ならどうとでもなる。 OOPのメリットが何なのか未だに分からん
Smalltalkみたいに実行環境からオブジェクトをいろいろいじれるやつのときは
オブジェクトってもんがもっと動的に、マウスで触れるような存在で
なんかそういういじくりやすさ含めて親しみ持ってるんだろうけど 書き込むのは好きにしたらいいが板違いのスレだからsageてくれよ >>80
メリットもなにもコード書いてたら普通にオブジェクト指向型になるものじゃね
「Hello World」をわざわざオブジェクト指向にするようなバカならともかく
クラスや継承を作れとか強制するような宗教でもない >>80
オブジェクト指向のメリットはプログラムを管理しやすいことだと思う
たとえば
・DBからデータを取得する
・データを元にExcelファイルを作成する
・Excelファイルをメールで送信する
・作業完了のメッセージをSlackにPOSTする
という一連の処理がある場合に
・DBにアクセスするオブジェクト
・Excelファイルを作成するオブジェクト
・メールを送信するオブジェクト
・Slackにアクセスオブジェクト
があればそれらを組み合わせることでプログラムを作れるじゃん
そして世の中にはすでにたくさんのオブジェクトがライブラリという形で用意されている
プログラマはそれを利用することでさまざまなことが行えるようになるんだ
既存のライブラリで要件をみたせなければ自分で作ることもできる
便利だよね オブジェクト指向のデメリットはオブジェクトを自由に定義できるがゆえに
簡単な処理さえも抽象化してスパゲティになることがありがちってことかな
Hello World Enterprise Editionはきれいに設計されてはいるけど
System.out.println("Hello, World!");
でいいじゃんみたいな
Hello World Enterprise Edition
https://gist.github.com/lolzballs/2152bc0f31ee0286b722
そして世の中には簡単なの処理なのにオブジェクトがたくさんあって
きれいに設計されてるわけでもなくプログラマがそのときの思いつきだけで
作ったんじゃないかと思われるような正気を疑うようなオブジェクトがたくさんあるんだ
どうだい楽しいだろう DBやExcelなどのようにドメインがはっきりとわかれている場合には
これはDBにしか関与しないデータだからDBオブジェクトの中に閉じ込めるみたいに
考えてオブジェクトを作ればいんだろうけどね
業務のドメインは流動的だからね
・この概念とこの概念は違っていてこのようにわけられる
・でもやっぱりこういう橋渡しは認めておいたがいいからこれは例外
・ユーザからこれができなくて困ってるといわれたからなんとかしてもらいたい
・あの概念とあの概念はじつはこういう切り口でみたときには繋がりがあってそれを計算してほしい
みたいなことが業務ドメインの日常だからね
どこが変わるかを予測して多少流動しても設計を変えなくてすむように作り込んだら
あっというまにHello World Enterprise Editionのできあがり
オブジェクトは固体だけれども業務は液体みたいなところがある
オブジェクトの前段階いわばスライムみたいな状態にあえてとどめておくことで
適応力を高められるんじゃないかと思う
計算によって人間の認知能力が生まれ
人間の認知能力によってオブジェクトが生まれるとするならば
関数はオブジェクトよりも次元の高い抽象化のように思われる
関数はスライムの可能性がある オブジェクト指向もモジュール化の1つの(かなり優秀な)手法だと思うよ。オブジェクトの内部はブラックボックス化され、外部からはオブジェクトのインターフェイスだけを相手にすればよいので、同時に考えなければいけないことが減り、プログラムの見通しが良くなる。
問題は、モジュールとしてのオブジェクトを機能させるためには、「これをオブジェクトとして扱う」というモジュール境界の決定が必要になるところ、オブジェクトの粒度が大きくなると、コードを書いた人の恣意的な決定の要素が増えるために、コードを読む人の理解・把握が難しくなっていくことかな。文字列オブジェクの方がcsv_readerオブジェクトよりできることを把握・イメージするのは簡単だし、より抽象度の高いオブジェクトになると、さらに理解は難しくなる。
オブジェクト指向によって得られる見通しの良さは、ゴチャっとしたコードをブラックボックスの中に閉じ込めることによって得られるものなので、オブジェクトの中に取り込まれないコード(オブジェクト同士の相互関係)の複雑性はそのまま残る。これがオブジェクトの海と呼ばれる問題。
オブジェクト指向は重要な進歩だし、今さらそのメリットを捨てることは難しいと思うけど、オブジェクトの「外」の問題については別の手法による対処が必要になる。 コード書けない奴が抽象的な御託つらつら並べるのはどこのスレでも出てくるんだよな
バカをさらして何が楽しいのやら 俺は抽象化自体はどうでもよくてifを減らすために使ってるわ
いくらわかりやすい名前をつけても結局全部読むなら大差ないからな > Hello World Enterprise Edition
全部は読んでないけどニヤニヤしながら読んだわ
ただし
> if(code.getStatusCode() != 0){
は
> if(code.getStatusCode() != IStatusCode.OK) {
とかしてインタフェース側に定義された定数使うほうがオツやと思ったわ OOPのメリットとして感じてるのは結局は
モジュール化のメリットなんよね
これはOOPのメリットを矮小化させるものじゃないけど
適度に分割して整理して
それらを適度に組み合わせて使うってことは
まぁそこにOOPLならではのことに焦点を当てるなら
継承っていう軸が発生することにより
クラスライブラリや自前のクラス群を説明するとき
継承関係っていうものでもって説明できる場面が出てくる OOPでは演算子を型と関数の間の関係として自然に定義できるけど、Cみたいな手続き型とか関数型ではどうやってるんですか? おうおうPの良いところだけを継承したモダンな仕組みを作ればいいんじゃないかな >>92
>OOPのメリットとして感じてるのは結局はモジュール化のメリットなんよね
8割方同意する
>>84に列挙されてる「〜するオブジェクト」も「〜するモジュール」にすべて置き換えてもなんら支障がないから
>まぁそこにOOPLならではのことに焦点を当てるなら継承っていう軸が発生する
これには同意しない
オブジェクト指向の根幹は継承じゃなくて
データと振る舞いをオブジェクトという基本構成単位にまとめることにある
関数型のモジュールでは代替できない
また継承のうちインターフェース定義とその実装のような関係は
Haskellのtypeclassをはじめ関数型言語でも広く存在するものなのでOOPLならではのことではない
つまりデータと振る舞いをオブジェクトという基本構成単位にまとめられていることによるメリットというのがOOPLならではのメリットということになる
じゃそれは何なのか? >>95
> オブジェクト指向の根幹は継承じゃなくて
根幹とまでは言ってないし思ってもないよw
> また継承のうちインターフェース定義とその実装のような関係は
インタフェースと実装の関係を継承とは言ってないつもり
あくまで
インタフェース間の継承であったり
もっと広義には単に型の継承
ごめんね今相当酒飲んでるから取りこぼしてたり誤解してたりするかもだけど
> つまりデータと振る舞いをオブジェクトという基本構成単位にまとめられていることによる
> メリットというのがOOPLならではのメリットということになる
このへんについてはなんとなく同意
カプセル化だの継承だのお題目色々あるけども
結局はオブジェクトって単位だよね
ってとこに着目すんのはわりと同意できる
要点を外してるレスになっちゃってたらすまぬ >>95
> つまりデータと振る舞いをオブジェクトという基本構成単位にまとめられていることによるメリットというのがOOPLならではのメリットということになる
じゃそれは何なのか?
状態だと思う ほどよいフィット感だと思う
データと関数まとめる?
まとめたい?
まとめましたけどどうですか?
↓
ええやんええやん の感 ミュータブルなオブジェクトを簡単に作れるっていうのがオブジェクト指向言語の利点な気がする
Haskellだとモナドを使わないといけないからね オブジェクト指向は何かってのはWikipediaでも見ればいい。読んで理解してもプログラム技術は変わらないが
オブジェクト指向のメリットは何かって言うのは「どの部分もオブジェクト指向とは言えない」形に自分のコード書きなおしてみればわかる。逆にすべての部分をオブジェクト指向の形にするのはアホな上にキチガイだが
これだけのことを技術板でグダグダ語ってるのはアホ >逆にすべての部分をオブジェクト指向の形にするのはアホな上にキチガイ
Rustですね判ります よく知らないが、Smalltalkとか? 「アホな上にキチガイ」かどうかは意見が分かれそうだが。 1バイトのデータを1バイトのオブジェクトとして表現でない
スタック上に確保できない
そんな言語は全部ゴミ クリントン大統領にどんな強大な権限が有っても、自らのチンポがしこしこしてしまうのは止められない!
class チンポ extends クリントン{
super.不適切な関係;
}
クリントンの再定義、クリントンの拡張された人格ということだ! >>107
あれは知性が要るからな…
つまりこの仕事向いていないってことだよ >>107
パイプライン演算子は取り入れてほしいかな
setXXXX系メソッドをそのままつなげられたらと思う >>109
それはただのエンジニアの自己満オナニーだよしょうもないw いくら頭良くても5chでくだまいてたら意味無いですよね
目糞鼻糞ですよね T,o,k(迷惑という方は←をあぼーんしてください。)
更に家族友人にも紹介して、加えて¥4000をゲットできます!
https://i.imgur.com/g7fQwmH.jpg >>114
こんなところで自己紹介してる暇があったらハロワ行けばいいのに >>121
毎日5chでチンポ舐め書き込み続けるゴミ人生でした
オブジェクト指向興味無いやつ来んなよ
暇かよ >>116
これ他のタスクだけで1000円くらい簡単に稼げるよな。 そしてあちこち依存が絡んだスパゲティーコードを量産
他人が解読するは難しく
時間がたつと自分でもメンテできない 必死にスレ何度も上げてるけどそんな構ってほしいのかよ 関数型ならスパゲッティコードにならないというのはどういう理屈? ここまでのまとめ
オワコンとなったのは「クラス」
オワコンとなった理由は「クラスは継承に基づくため」
オワコンとなった証拠は「最近のプログラミング言語Go、Rust、Nimなどは全てクラスを持たない」
以上
つまりオワコンとなったのは「クラスとその継承」
もっと広い意味の「オブジェクト指向」は有効 GoにしろRustにしろNimにしろ継承が不要になったわけじゃない
言語機能として直接サポートされないためにより面倒でより暗黙的な方法で継承が行われている
上辺だけ見てる人にはそれがわからない クラスや継承は高水準な機能だから
低水準を目的とする言語には向いてない >>133
クラスの本質は継承にあり
クラスは不要
クラスを必要だと思い込んでいる人はクラスと関係ない部分を必要としている
例えばクラスのメンバー変数はGo、Rust、Nimなどでは構造体のメンバー変数
クラスのメソッドはGo、Rust、Nimなどでは構造体のメソッド
つまりそれらはクラスとは関係なくクラスより小さい概念である構造体でも持っている
一方でクラスの本質は継承である
>>134
継承は害悪であり不要
継承しか知らない人だけが継承に固執している >>137
クラスを使ってもいい。
以上
害悪ではない
以上 ID:gR/F5lVJ
プログラム書けない上にどこに行っても相手してもらえないから板違いのスレで吠えるしかないんだな 何故自分は相手してもらえると思うんや
おまえの相手して誰が得するんや
オブジェクト指向興味無いなら来んなよ暇人 オブジェクト指向は非常に重要
しかしクラスは不要
これはプログラミング言語界で結論が出ている
だから最近のプログラミング言語Go、Rust、Nimなどはいずれもクラスを持たない これまでオブジェクト指向分析に触れているコメント0 オブジェクト指向は非常に重要
クラスも重要
これはプログラミング言語界で結論が出ている
だから最近のプログラミング言語Swift、kotlinなどはいずれもクラスを持っている JavaScriptのclass構文はよく使われてる印象だな
オブジェクト指向言語でもないのにわざわざclass名乗るって、よほど需要ありと見えるが javascript ω の object で class less 設計に目覚めた SwiftはObjC、KotlinはJavaの代替だから外れるわけないわな >>144
あれは prototype が理解出来なかった人が多かったから class が後付けされたんだろ 俺は継承よりもカプセル化が重要だと思う
だがカプセル化はクラスの専売特許ではない >>143
自ら敗北を認めたようだな
SwiftはAppleがObjective-Cの後継と位置付けた訳ありでクラスを採用
KotlinもJavaの後継と位置付けた訳ありでクラスを採用
つまり二つとも例として出してないけない過去のしがらみのある訳あり言語
一方で過去のしがらみのないGoやRustやNimなどの新たな言語では当然クラスは採用されなかった
いずれも全く異なる方向性の言語であるがクラスは不要なものであるという共通認識がプログラミング言語界にあるためだ >>149
そんな共通認識は無い
おまえが勝手に言ってるだけ
新しい、なんてのは何の根拠にもなってない
残念、論破、さよなら 元々「クラス」という言葉は義務教育の頃から皆馴染みがあり下位層で育った奴には嫌な思い出しかないだろう
クラスという言葉に忌避感を持つ人間は日本だけでなく恐らく世界中にいると推測できる
だからクラスは不要だとかオワコンとか言ってクラスの概念自体を排除した新しい物を模索しようとする
一方、過去にトラウマの無い上位層は特にクラスに忌避感を持たずに有力な1手段として使い続けるだろう
これが悲しい真相ではないかと仮説を立ててみる >>150
いわゆるクラス継承は害悪という共通認識が広まり
Go, Nim, Rustなどの新しい言語では排除されている 複オジこんなところでも自演してまで珍説唱えてんのかよw
>>137,149,153はRustスレ出禁扱いになってる珍説を強弁するだけの複製オジさんなる人物なので相手にするだけ時間の無駄 ID:gR/F5lVJ はちょっと煽って からかえばポンポン反応してワロスw
沸点低すぎ 今頃また顔真っ赤にして怒り狂ってそう
( *´艸`)クスクス まあ顔真っ赤おじさんとかどうでもいいんすけど、どう考えてもオブジェクト指向の優勝、圧勝なんすよ、もー話になんないす オブジェクト指向はプログラム方法の一つの「説明」でしかないのに勝ち負けって頭悪すぎる >>159
と、また釣れたおじさんが申しておりますw ポンポン ダボハゼみたいにすぐ釣れて釣りとしては面白くないな。
入門で目にしたオブジェクト志向以外知らない頭の悪い初心者だということはよくわかった はい論破とオウム返しばっか、池沼かよ
┐(´д`)┌ヤレヤレダワ >>164
と池沼が申しております
おまえには十分だろw いまだオブジェクト指向、継承とか言っているのはこんなやつ 非表示にしとけよ拘りつよつよアスペくん😅
>>169 モジュール化の手法として関数がまず考えられた。
共通するまとまったルーチンを実行するにあたって関数は便利であったが、
呼び出しをしてメモリ上に展開されても処理が完了するとメモリ上から消滅してしまう
(それまでの履歴がパァ)という性質のものだった。
simulaの開発者の一人であるダールは、そのせっかくメモリ上に展開したデータであるのに、呼び出しが完了してしまうと制御もメモリ展開ももとに戻ってしまう関数(正確にはブロック)に代わるものとして、
呼び出したとしても制御もメモリ展開も消滅しない、つまり状態をもつ関数(局所変数を持つ関数)を「オブジェクト(object)」と呼んだ。
アラン・ケイは、その関数とは性質が異なる「オブジェクト」を多用するプログラミングを安直にオブジェクト指向と呼んだ(ようだ)。
歴史的に整理すると
構造化プログラミングは、関数を多用するプログラミング(基本3構造は前提)。
オブジェクト指向プログラミングは、ダールのオブジェクトを多用するプログラミング。
と言える。嘘だと思うならダールの論文を読んで見ればいい(と言いつつ本当に読んだら細かい重要なところをバッサリと切り落としているのがバレる)。 オブジェクト指向がわかりにくいのは
ダールの論文がいろんな画期的なアイディアてんこ盛りなせいだ。
オブジェクト(object)という概念が画期的なのに、オブジェクトを生成するクラスやオブジェクトの型概念にも触れていて、何がポイントかわかりにくい。
でも何回か読んでるとダールのいうオブジェクト(object)という概念が画期的なのだと分かる。
要するに関数に代わるモジュール化の手法が(ダールの)オブジェクト。 今年から流行りだした生成AIはオブジェクト指向と関係ない
数式のように誰にとっても明解でないところが終わってるオブジェクト指向は愚かな人間どもの間違ったアプローチ
その先には何も無さそうな事だけは誰の目にも明解 状態が可変のオブジェクトはデバッグが難しい
どこで状態が変わるのかわからんようになるわ
業務要件とは独立したデータ構造でさえ多少複雑なことするとそういうことおこる
ミュータブルは最小にしたが良い、マジで >>102
あれはオブジェクト指向ではなくて抽象データ型。
インスタンスが状態持たないでしょ? オブジェクトは状態持ってるからオブジェクトなんだよ!と強く言いたい。
持ってないならそれはそれは単なる抽象データ型のインスタンス。 >>172
それはクロージャ
オブジェクト指向に限らず関数型でも使える
つまりオブジェクト指向の本質ではない >>175
Rustでももちろんインスタンスが状態を持つよ Cで書いた抽象データ型のインスタンスでも状態持つものはいくらでもある >>177
クロージャからオブジェクトを生成する事もできるから似ていることは認めるが、オブジェクトを生成できるのは関数型でも破壊的変更ができるcommon lispとかschemeだけ。sicpにも書いてある。
純粋関数型のhaskellはクロージャからオブジェクトを生成するのは無理。破壊的変更ができないから。
schemeをもとにしたというjavascriptは実際クラスを使わない場合、クロージャでオブジェクトを生成する。真似するとオブジェクト指向でクラスは本質ではない。 >>178,179
そら状態じゃなくて値
多分そういうのrustだとlet mutと宣言してるだろ? 【根拠あり】フリーランスエンジニアは年収862万円取れて普通という話【高収入】
【こんな僕が】フリーランスエンジニアで月収100万円を達成した5つの方法
ITフリーランスエンジニアの年収|会社員との違いや独立後の案件の取り方
月収90万のITフリーランスプログラマー・SEが選んでる在宅案件はこんな案件です
フリーランスの年収は平均いくら?年収1000万円以上の割合とは
2021年最新版 エンジニアの平均年収はいくら?全体平均と比べて○○円も高い! インスタンスとか面倒くさい
全部グローバルなstaticクラスで良くね? みんなオブジェクト指向で作ってんだし合わせようよガキじゃないんだからさぁ! >>181
君だけに通じるご都合主義的な定義で話されても誰も分からんよ
let mutで宣言されたら状態じゃなくて値になるて何のこっちゃ オブジェクト指向はイメージが広がる(といえば聞こえはいいが妄想を掻き立てられる)
人がいるからオレオレ定義があちこちで膨らんだり独善が独り歩きして
おかしな慣わしみたいになり弊害が出てきた それはおまえの意見、何の根拠もない
残念、はい論破
オブジェクト指向は非常に重要
これはプログラミング言語界で結論が出ている
オブジェクト指向の大勝利 >>188
ご都合主義はお互いじゃね?
俺が言ってるのは値でもlet mutで宣言したら状態持ってるように見えるから、抽象データ型が状態持ってると言ってんじゃねっと言ってる
極端なこと言うと
let mut x:usize = 0;
x += 1;
こう書いたらxは状態持ってるように見えるけど
単なるデータ型が状態持ってると考えるのはおかしいからこれは単なる可変の変数に入った値と考えるべきじゃないか?
と言っているんだよ。 単純に状態を持った局所変数環境のオブジェクトって概念が新しいんだよ。
言ってしまうとそれを使えば全部オブジェクト指向と言える。 >>189
ソフトウエアを開発できないくせに薀蓄だけは立派な
宣教師みたいなやついるよな。
あれもマウントの一種、というか飯のタネなんだろう。
悲惨なのは今だに新たな入門者が宣教師の餌食になって
犠牲者が増えつづけていること 宣教師が最近布教してるのは、アジャイル開発やドメイン駆動だから
オブジェクト指向はオワコンなのかもな オブジェクトを信じなさい
オブジェクトこそが唯一無二の真理 >>196
原語が
Object Oriented Programing
だから日本語で指向って言ってるだけ
あいつらoops!のノリで付けたんであって
Orientedに不快意味は無い >>197
そもそもアジャイル開発やドメイン駆動はオブジェクト指向と直交する概念では無い。というかレイヤーが違う
むしろオブジェクト指向はアジャイル開発やドメイン駆動を実現する根幹手法の一つと言って良い パトラッシュ、疲れただろう?
ボクもマジメに突っ込むのはもう疲れたよ。 *'``・* 。
| `*。
, 。∩∧ ∧ * これで元気にな〜れ
+ (´・ω・`) *。+゚
`*。 ヽ、 つ *゚*
`・+。*・' ゚⊃ +゚
☆ ∪~ 。*゚
`・+。*・ ゚
っ
https://i.imgur.com/RFbLlK2.gif 元気があればオブジェクト指向もわかる
ありがとー!! ・クラス型オブジェクト指向はオワコン
・プロトタイプ型オブジェクト指向は有用
って考えでいいの? >>205
違う
オブジェクト指向自体は有効
ダメなのはクラスとその本質である継承
プロトタイプ方式によるクラス実装も継承なので当然同じくダメ javascriptのカオス具合からして失敗だろうプロトタイプは jsのエコシステムはoopどころじゃない邪悪じゃろ 継承は規模が大きければ使いどころがある
無理に使うと害悪なので、必要に迫られるまで使うな 継承の良いところと悪いところを両方把握して使い所を見極めればいいんだよ
何でもかんでも継承するのがよくないというだけ
クラスベースの継承、プロトタイプ継承、委譲の3つを比較してそれぞれの良いところ悪いところをきちんとおさえること 継承が悪いとかもう何十年も前から言われてるから
それについてはもう語らずに置くけど
クラス化が難しい
クラス化の難しさが悪い
クラス化の難しさの自覚しにくさ語りにくさが悪い
と言いたい
継承関係のないクラスを数個つくる
その時点で難しい
分担、切り分け、依存関係がもう難しい
再利用性のある単位でくくりだすのが難しい
スッキリしたインタフェースを提供するのが難しい
これもっと一般化して言うなら
単に抽象化の難しさってことでもあるけど >>212
なんでそれが抽象化なんだよ
クラスベースオブジェクト指向ごときが何を抽象化したとw >>210
大規模アプリケーションで広範囲・多階層に渡る継承を多用してソフトを構築したら地獄やでー
初期CDするときはいいんよ。
やっちゃえやっちゃえって感じでソースベースのメソッドなどの単位で差分プログラミングできるところ
どんどん継承活用して、流用性を高めたとか言って俯瞰せずコード書き進めちゃえばなんとかCDが進む
がしかし、ふと立ち止まり、あるいは時間がたち別の者が全体を見渡しなおすと
もうクロスファイルでソースベースマクロ展開みたいな継承がクチャンクチャンの依存のジャングルを成していて
gotoの嵐とはまた違った混沌に手がつけられなくなるぜ 入門書のサンプルコードレベルで一見便利そうに見えても
継承が有用なケースというものはあるにはあるが、
実践では実はあまり多くない >>212
それは抽象化が難しいのではなく、
ソフトウエアプログラムの構造(アーキテクチャー)を
いわゆる迷信のように流布するクラスベースオブジェクト型にはめて現そうとしたけど
うまく現せないことに気が付いたってことだよ
いつまでも気が付かないよりはるかにまし >>214
それはクラス使わなくても変わらない。
混沌に見えるのは大規模になったことが原因であって継承が原因ではない。
クラスにも継承にも欠点は無い。
理解できない人がアホみたいに欠点欠点言ってるだけ。 継承があるメソッドは必ずoverrideするって決めたら
ベースクラスの事も思い出されて良いのでは?
まあ、無駄な処理挟むけど、忘れてしまうよりは良いのでは? 書けてしまうのが問題
継承使うのはライブラリやフレームワークで留めて
応用では使わんことやね 継承使うかクラスコードコピペしまくるかの違いなら
継承の方が何万倍マシだろうに オブジェクト指向は
コードの再利用のためという建前で余計な文法を追加すること 顕わに目に見えないところでコード展開&マージが起きているのと同じなので
小さくて浅い階層なら把握できるが広範で深い階層に渡る依存のジャングルは
何かどうなっているのかわからなくなってしまう >>220
それはもう既に発想がおかしいんだよ
そのままだとコピペになる(同じコードになる)ところはプログラムに当然発生して多くはコピペを回避すべきなんだけど
それを継承という間違ったやり方で解決するのは間違っているという話だよ
その時に継承しか知らないと継承するしかないと思いこんじゃう
だから継承禁止もしくは原則として継承を使わないというプロジェクトや会社があったり指導が入ったりするわけだよ
最近のプログラミング言語は継承自体を無くしたものが増えてるのもその流れだね >>217
カプセル化と継承と多態
オブジェクト指向を乱用して構築した大規模アプリソフトウエアの目を覆いたくなるような分かりにくさは
単に大規模だからというだけのものではない厄介さがあるぞ まあ、フレームワークで継承使わないとかどんだけ縛りだよって話だ罠 >>226
GUIのフレームワークではクラスベースオブジェクト指向の継承が有効な典型だよな。
まぁ、仕様・IFが長年練り上げられてきたことの結実ともいえるが >>225
その大規模アプリをオブジェクト指向じゃなくて何を使えばましになるの? 言語や開発ツールが規模の大きいソフトウエアの構築を支援するために提供しているモジュラリティ―のための
パッケージなどを利用した機能階層・分割設計の方がましだろ クラスは物とその動作の設計図なんだろうけど
動作だけをうまく整理してまとめて設計図にして、物はその動作によって加工されるだけでよくて、別に物自体が何かしてくれなくていい発想の方が自然なことは多いと思う
だからクラスベースだと頭の中と噛み合わなくて残念な気持ちになる 動作とか考えるからおかしくなる
役割と考えれば分かりやすい >>224
継承が不適切な場合もあれば適切な場合もある
それを見極めろよという話
盲目的にあらゆる継承がダメだと思ってんなら
それは盲目的に継承使うやつと同じレベルだぞ 右に動かすメソッドが
WindowでもRectでもウンコでもなんでも動かせるのが自然で良いということかな? >>232
盲目的に継承は必要ないとしても支障はないと思うよ
今時の継承を持たないプログラミング言語も使うようになったけど継承がないことで支障が出たことがない
『継承は不要』の結論でよいと思う 他言語待ち出してオブジェクト指向言語の作法説いても意味が無いだろw
そんな事言った何でも不用で最後はアセンブラに回帰するわw >>236
継承を持たない各言語でもオブジェクト指向のプログラミングが自然に行える
継承だけが不要だとはっきりわかった つまりライブラリ前提で作るくらい設計がしっかりしてるモノ以外、独自クラスを継承させまくるようなコードは難あり? >>235
あなたがどう思うのもあなたの問題なのでそれでよいと思う >>237
オブジェクト指向なんて、C言語ですらそれなりに書けるんだが
なんで言語仕様有意義に使おうとしない? まあ、ここでマイポリシー語るのもいいが、決めつけたり他人に強要するなよってな 客観的な根拠が一番強い
過去のしがらみのない最近の各プログラミング言語GoやNimやRustなどはいずれも継承を持たない
継承がないという以外の点では全く方向性の異なる各プログラミング言語が継承は不要という同じ結論に辿り着いている 継承に限ったことではないが Pros/Cons両面理解した上で状況に応じた使い分けがてきないうちはいつまで経っても素人のまま しがらみとか考え方次第でどうとでもなるからそれは客観的じゃないよw とある言語仕様に無いから全言語に渡って不用って
極端なw Rustはトレイトのデフォルト実装で継承の一部をまかなってる
それ以上の部分はマクロでコピペコードを生成するかそのままコピペすることで継承相当を実現している 必要と不要ではなく静的と動的で分けるのが、商業的でない中立な見方
継承は不要だから採用されないのではなく
動的ディスパッチだから動的言語に近い言語でしか採用されない 最近のプログラミング言語
【継承がない】Elixir、Go、Julia、Nim、Rust、Zig
【継承がある】Kotlin(Javaの後継)、Swift(Objective-Cの後継)
つまり過去のしがらみで継承を含めざるを得なかったKotlinとSwiftを除いて全ての言語に継承はない >>247
Derefが継承の代替として使われることもあるよ >>249
広く使われてるGUIライブラリのある言語とそうでない言語の分類そのものですね jsにはラムダがあるからGUI目的の継承をしなくなった >>227
> まぁ、仕様・IFが長年練り上げられてきたことの結実ともいえるが
彗眼やね
屍の山の上にしか良い設計は無いんよ
>>230
いいとこに着目してると思う
やっぱ関数と値で済んでたときより大げさなんよね
Javaに悪い意味で鍛えられた人は平気なんだろうけど
(FizzBuzzEnterpriseEditionみたいなやつのことね)
>>238
ありなし語る必要ないと思う
やってみればいい
100%失敗するから
クソの山になるから rust や go だと継承に相当するようなことができるのでいまいちピンとこないんだよね。 >>247
ちょっと違うので補足するね
Rustのトレイトは機能・性質を示すもので型でもクラスでもなく変数(やその値)を持つこともなく各型に対して横断的な位置付けであり
クラスとその継承を排除したRustでは各型に対して必要な複数のトレイトを実装すなわち合成していくわけだけど
トレイトのメソッドは二種類に分かれていて
必須メソッド(required methods)は各型で実装コードが異なるメソッド
提供メソッド(provided methods)は各型で実装コードが共通にできるメソッドで必須メソッドやトレイト境界となる他のトレイトのメソッドを用いてデフォルト実装している
つまり機能性質を示すトレイトに対して各型固有の実装と各型共通の実装の二種類に整理しているだけにすぎないよ
したがってRustではトレイトとそのメソッドをきちんと設計すればコピペは出て来ない
複数の型でコードが全く同じとなるならば上述のように各型共通の実装となる提供メソッド(provided methods)になりデフォルト実装となる
もしマクロでメソッド実装を自動生成する場合はそれは各型固有の実装となる必須メソッド(required methods)に対してマクロの引数指定部分だけが各型で実装が異なる場合になりコピペではないね Rustだとライブラリで定義済みのトレイト実装を少しカスタマイズしたいだけでも
変更の必要ないメソッドやトレイト実装も全て元の構造体に委譲するコードを書かないといけない
継承がないから構造体1つに対して10個や20個トレイト実装があるのは普通なのでマクロ使わないとコピペ地獄でやってられない
一般的OOPならメソッド1つオーバーライドするだけの簡単な作業 >>257
発想がおかしい
そんなことが必要になることはない
使わないメソッドを生やす必要はない
もし元の型の全てのメソッドを生やす必要があるのならばその時はDerefを使えばよくて自動的に全てのメソッドが生えた形になる Derefのそういう使い方はアンチパターンでしょ
Traitをカスタムするという発想がおかしいというのは同意
オーバーライドなんてするな 世の中、似た様な画面で項目だけ違う処理がたくさんあり過ぎる 型クラス構造を階層的に取り込んで内包していくような設計に
考えが凝り固まっているんじゃねーかな
昨日階層の抽象化は本来そういうものではなく
階層が上がるにつれより抽象的な構造に「昇華」していく筈だと思うが >>261
より複合的な構造に融合していくことで
機能階層の抽象化を現す、というか代用しようとしたところに
どだい無理があったんだ
やりにくいわけだよ 以前Javaのユーザグループミーティングに出席した際、James Gosling(Javaの生みの親)がメインの講演者として招かれていました。
すばらしいQ&Aセッションの途中に、こんな質問が出ました。
「もう一度最初からJavaを作り直すとしたら、どこを変更したいですか?」
答えは「クラスを除外するでしょうね」というものでした。
笑いが静まった後、彼が説明したのは、本当の問題はクラス自体ではなく実装継承(extendsの関係)なのだということでした。
インターフェースによる継承(implementsの関係)のほうが望ましいのです。できる限り実装継承は避けたほうがよいでしょう。 カプセル化とアクセサーがまたクソなんだよな
ソフトウエアの規模拡大に伴う複雑さをより増長させる 同一マシン内である事すら不用な仕組み
全ての手続きはメッセージでやり取りされる
ゆえにアクセサは各エージェントに1組だけ >>259
>Traitをカスタムするという発想がおかしいというのは同意
なんでおかしいと思うの? >>264
そのレスの中に技術的な根拠ある?
誰々が言ってたから、で何使うか決める感じか?
別に好きにすればいいけどそれは素人でもできますよね なんとか技法とか、なんとか指向とか
宗教みたいなもんだから、別に従う必要も無いんだよなぁ >>272
変な詭弁だな、玄人でもできるぞ。
そして意見は専門家・元祖だぞ、
技術的根拠的根拠なしに子供みたいに上げ足とってるだけのレスはお前さんだろ
さては論破君だな すみませんね、根拠が要らない人たちと思わなかったんでね。
話にならないよね。
ここでその元祖の名前だけ示して誰得なんすか? 話にならないなら黙てればよい。
まぁ一応謝っているようだから非は認めたわけだな。
今後気を付けるように。 皮肉だとわからない
権威主義で名前だけでありがたがる
生きてて幸せだよねw
話にならないなら黙てればよいならおまえが黙っとれよw 性格どうこうというより権威主義「玄人」プログラマーと話噛み合わないの目に見えてるから誰もまともに相手しないよ
実際「ここで元祖の名前だけ出して誰得なのか」は答えられなくて意味不明なレスしか来ないわけじゃん ちょっと刺激するとすぐむきになって食いつくw
ほんと、ダボハゼ並みだな なんで見当違いの宗教闘争延々とやっているんだ
A「九九は便利だ」
B「九九では足し算引き算に役に立たない」
こんなアホな言い争い続けるのは暇すぎるどころか病院行った方がいい >>280 頭に血が上ると
〜と申しております
大前こそ〜(単なる言い返し)
はい論破
すぐこういう言い方をする
反応が子供みたいで分かり易い いつまで経っても小学生の悪口みたいなことしか出てこない
本当にしょうもない
足し算引き算の役に立たない、という理由が示されているならまだ有益な議論になり得るが、「誰々が九九は役に立たないと言っていました」だけでいけると本気で思ってるんだからマジですごい 別に教えてもらわなくても一人でやったらいいやん、ままごとみたいに
結局同じことなんだからそれで満足すれば済む話だ オブジェクト指向って、C++で、
classのコンストラクタとデストラクタが
メモリーの安全な自動解放に簡単に対応できるので
重宝している。
もしそれらが無かったら、メモリーを簡単に自動解放できない。 道端でも誰も聴いてないのに一人でブツブツ大声で自問自答してるヤバいおっさんおばさんおるけど
ああいう類の人間なんかな C++ではclassの概念は、とても重要。
主にメモリーの自動解放のため。それ以外の
言語では余り要らないのでピンとこないのかも。 自分みたいにメモリの開放忘れる人間にはC++は難しい classなくても自動解放くらいできるでしょ
interface/trait/protocolを使う
C++にはそれがないからclassで代替してるだけ オブジェクト指向の考え方/やり方だけでなく
オブジェクト指向以前とポストオブジェクト指向での考え方/やり方を把握してないと
オブジェクト指向の良し悪しは評価できない メモリに関してはCとC++の違いはブロック終端のトリガの有無だけだから
Cでもコンテナに紐付ける仕掛け作れば問題なかった
アホが多すぎただけ 人に説明することが難しいことは、とても保守性が低い。構成が複雑であるほど、危険である。
要素が独特で実績が少ないと、世間にわかっている人が少ない。そうすると、「誰か助けて」と言ったとき
に人が集まらない。ベンダーも消失するかもしれない。
https://www.orangeitems.com/entry/2022/03/26/164116
オーバーライド(英:override)とは
オブジェクト指向におけるオブジェクトの継承の話で出てくる用語のひとつ
であり
親クラスにあるメソッドを子クラスで再定義することによって、子クラス上で親クラスのメソッドを上書きすること
https://wa3.i-3-i.info/word138.html
チンポは人格メソッドや脳メソッドを上書きする機能が有る!!!
https://mobile.twitter.com/ki45_nisiki/status/1581300043935494145
フローズンぺんぎん@とりゅー
@ki45_nisiki
返信先:
@LunRon5
さん
どんなに教養と勉強で武装しようとも、自身が抱える性癖には逆らえん。チンポが脳や人格にオーバーライドして支配してくる欲求には逆らい難い…だからこそ最低限の慎みと矜持として2次元があるのではないか…デブでもおばさんでも勃起できる人にはこの苦しみはわからんっすね
https://twitter.com/thejimwatkins メッセージングを基礎単位として取ることは、より徹底的な遅延束縛を可能にする。というのも、
メッセージそれ自体は意味を持たず、実際にメッセージがオブジェクトに送信されてはじめて、意味が決まるからである。
https://qiita.com/ukyo-su/items/8c861f114809a96d1378
オシッコを出したり止めたりというのは、チンポから力を抜いたりチンポに力を入れたりと、
オシッコはオシッコそれ自体は意味を持たず、オシッコが尿道を介してチンポに送られることによって、
オシッコを出したり止めたりが可能になるということだ。
928 デフォルトの名無しさん 2018/11/21(水) 18:59:11.61 ID:8Yc2p7H1
>>922
>ナンチャッテメッセージングスタイルになったのは
チンポ.オシッコを出す
チンポ.オシッコを止める
さっきトイレでやってきた。
929 デフォルトの名無しさん 2018/11/21(水) 19:07:17.83 ID:8Yc2p7H1
>>915
>単なる動的なメソッド呼び出しをメッセージと称し、ただしコールするメソッドが見つからない場合だけメッセージを
>ハンドリングできる省コストなナンチャッテメッセージングスタイルに落ち着いた。
×
俺.オシッコを止める 俺.オシッコを出す
○
俺.チンポに力を入れる 俺.チンポから力を抜く 多態性まとめ
多態性・ポリモーフィズムとは、同じ命令を送ったにも関わらずそれぞれが独立した固有の処理を行うという特性を指す。
多態性・ポリモーフィズムは継承関係の子から親への代入を通じて実現することができる。
多態性・ポリモーフィズムのメリットとして、同一視して配列を利用できたり、同一視して引数を受け取ることができることが挙げられる。
https://engineer-life.dev/polymorphism/
この車、タイヤがパンクしてしまった!
この男クリントン、チンポがシコシコしてしまった!
繋がっているけれども独立している、共有性と独立性!
息子とムスコは、必ずしも親の命令通りには動かない!
立て、立つんだ!
立 つ ん だ 、 ジ ョ ー !
息子1
起立!
息子2
勃起!
息子3
立ちくらみ!
https://mobile.twitter.com/yokillme/status/970300973301219328
ヨキ
@yokillme
自分の息子のことを愚息って言うの、現代においては息子を自分とは別人格の一人の人間として尊重してないからやめた方がスマートだと思うんだけど、不意に勃起した自分のチンコを「愚息」と表現するのめっちゃ好きなんですよね。
https://twitter.com/thejimwatkins >>290
それはclassとは全く関係がない
C++の比較としてわかりやすいのRustはclassを持たないがメモリが安全に自動解放される
C++もRustもその機構はRAII機能に基づいておりオブジェクト指向は関係ない >>297
タイミングが異なる点を除けば似たような仕組みは作れる >>301
でも仕組みの簡単さからC++流のclassの方が先に出た。 >>301
でも仕組みの簡単さからC++流のclassの方が先に出た。 >>306
オブジェクト指向とは何かについて、他にわかりやすい説明が有るのか? 1996年ころから購読していたのCマガジン雑誌
まだたくさん残っているが、オブジェクト指向とか
また当時の日経プログラミングだったか?雑誌にも
関係ないがLinuxって1996年ころはまだ初期の時代だったんだな 訂正思い出した日経ソフトウェアだw
当時はCDとかいっぱいおまけがついていた >ID:ReS9VmD8
言語障害の気が出てるから病院で検査してもらってこい 継承を使いまくる数学、化学、天文分野があるんじゃないの?
知らないだけかもしれないやん 学問は継承されてるよね教育によって
継承を使いまくってるねうん 継承というか増築だな
間違いを糺す方向なら良いが
臭いものに蓋をしているだけのケースもある オブジェクト思考言語しか触ったことないなぁ……JavaとC#だけ C#には20年前からデリゲートがあった
デリゲートはオブシコ的に邪道と言われて
Javaは当時デリゲートを否定してた
それから12年後Javaでラムダ式が使えるようになった
この20年間はオブシコが限界につきあたりそれを関数型で突破する
試行錯誤が行われているように思われる 弾幕系シューティングゲームの敵弾を無限に増やしたり、消したり。
弾幕の軌道の種類を継承で増やす。
とか? >>5で早々に指摘されてる通りライブラリがすでにオブジェクト指向なんだよなあ。ついでにAPI使うのもそう
こんなスレでごちゃごちゃ書きたがるのは当たり前にライブラリやAPIを使わない人たちかな オブジェクト指向と言っても階層がある
フレームワークやライブラリを造る層
中間層
単に利用するだけのクレクレ層 ちなみに >>323 の視点はどう観てもクレクレ層 ライブラリは使えばいいんよ。
車輪の・・・は時間の無駄だしさ
例えばオワコンだとして、オブジェクト指向に代わる概念ってあるの?かな? オブシコでもある程度まではうまくいく
オブシコが潰していったパラダイムの中に適切なものがあたかもしれない オブジェクト指向は複雑性が増すごとに破綻し易くなるく砂上の楼閣理論
やはりデータに手足を生やすのは間違っていた
祖の争いSmalltalkerはLisperに勝てなかった
それだけのこと Javaなんか継承しまくって機能拡張してるからそういった方面で使うのでは?
過去の資産を活用できるように作るか、毎回新規で作るかによるね オブジェクト指向でないと、プラグインとかまともなインターフェイスにならんやろ。 まだこんなクソスレ立ててるやついるのか
10年くらい前からオワコン言い続けてるけどいつ終わるんだか 業者に近い香具師のやってることみたいなので、業者と思うのがいい
# ダックテスト ORMって便利だと思うが
オブジェクト指向否定するやつはいつも名前SQL叩いてんのか? >>345
ORMとオブジェクト指向って何か関連があるの?
ちょっとよくわかんないんだけど 正直 struct relation mapper と言っても差し支えないものがほとんどたからな。 >>345
巷で使われてるORMが便利なのって「DBMS間の差異を吸収してくれる」「クエリを自動で作ってくれる」「結果をオブジェクトに詰めてくれる」あたりだろ
前二つはオブジェクト指向関係ないし、最後もオブジェクト指向言語だからオブジェクトに詰めてるだけで、>>347も書いてるように本質的には構造体でもいいんだよ
オブジェクト指向がなくなったとしても、また別のxRMが出てくるだけだと思うぞ LaravelのDBクラスより標準のPDOクラスのほうが使いやすいという オブジェクト指向とは何なのかの前提から分かってないやつが多すぎる
構造化プログラミング=シングルスレッドプログラミング
オブジェクト指向プログラミング=マルチスレッドプログラミング
これが大前提
https://qiita.com/iHdkz/items/3714155bb94a23ca1b9c 2つのプログラムを連接したいときにシングルスレッドでは変数名や関数名が衝突して簡単にはできないという困難を、マルチスレッド=オブジェクト指向が解決してくれる
この大前提を書いてない言説が世の中多すぎる 同じ名前が使えるのはネーム空間のおかげだよな?
別にマルチかどうかは関係ないし… preview_and_printも普通に組み合わせればいいよね
preview_and_print(data) {
preview(data)
if (ask() == true) {
print(data)
}
}
それぞれ独立したプログラムという前提みたいだから現実的にはpreviewやprintそのものではなく各mainが利用してるlibを再利用することになるけど考え方は変わらない >>359
いやこれは自警だ。今見てびっくりした。
なんかよくわからんけどwikipediaも関係ないのにまだつきまとわれる。なんか成り済まされるし。
なんなんこの人? wikipediaにゴミ情報書くなばりに追い出されたからひっそり書いているのに一々突っかかってくる。
この人俺のファンなのか(笑)?なんか変なのに粘着されてすごい面倒なんだけど。 なんで粘着自警の貼った話を俺が回答するのかわからんのだがなんか書くと
>>355
Simulaのクラスは当初プロセスという名称だったんだよ。
>>357
その名前空間をどう実現するの?
>>358
関数型プログラミング的な考え方だが、想定しているのは当時の構造化言語で
その時代にそんなレキシカル・スコープ備えた言語なんてないよ。
ただ、そういう突っ込みの説明が面倒だったので連接(concatenation)でプログラム合成した場合に限ってる。
関数で抽象した場合のケースはよく読むとすっ飛ばしている。 >関数型プログラミング的な考え方だが、想定しているのは当時の構造化言語で
>その時代にそんなレキシカル・スコープ備えた言語なんてないよ。
>>358はめちゃくちゃ手続き的な考え方だしレキシカルスコープなんて全く必要ない
逆に言えば君は関数型についてもレキシカルスコープについても何も理解していないということがわかる
これだとwikipediaならbanされて当然
でもQiitaならトンデモ記事でもエンタメとして成立するので好きにすればいいと思うよ
俺も>>352の記事は楽しませてもらったから お前蹴りだな。twitterでも一々突っかかってくるし、生温かく見守ってとかいいつつ喧嘩吹っ掛けてくるとか。いったいなんなん?
レキシカルスコープなんて全く必要ないというのなら全部グローバル変数ってか?それこそ衝突するだろ。
局所環境が無いと関数プログラミングなんてできない。
逆にいえば、局所環境がちゃんとあるならば構造化プログラミングも別方向に進展することができる。
関数型プログラミングを考える上ではそれは必須だ。
逆に構造化プログラミング知らずに関数型プログラミングでござい、なんてありえないだろ。 キータは関数型プログラミングでも炎上してたし
オブジェクト指向でもトンデモ理論を提唱するかたが現れるとはな
自由であることの証左ではあるだろうけど >>364
自意識過剰が過ぎる
twitterとかやってねーしお前が誰かとか知らねーから
レキシカルスコープを理解してないばかりかダイナミックスコープは存在すら知らないんだな
無知や間違いを指摘してくれる友人や同僚はいないのか? >その時代にそんなレキシカル・スコープ備えた言語なんてないよ。
当時ダイクストラが主として使っていたALGOL60はレキシカルスコープを備えている
当然それを念頭において構造化プログラミングに関する論文をかいている
お前の妄想だけで嘘八百書くからbanされたんだろ 自警とか蹴りとか、自分用語を説明もなく使っちゃうのが如何にもアレだなぁ 次回作はSmalltalkやC++でマルチスレッド性がクラスから消滅した理由を書いてください! >>366,367
お前認知機能障害だろ。
>twitterとかやってねーしお前が誰かとか知らねーから
>お前の妄想だけで嘘八百書くからbanされたんだろ
数分で記憶が無くなってるぞ。それにqiitaでbanされていないぞ。何言ってんだ?
ダイナミック・スコープなんてLispでしか聞いたことない。Funarg問題とかで問題になるやつだろ。
Common Lisp, Schemeでレキシカル・スコープ実装してそれから普及したという認識で、
スコープがはっきり意識されるようになったのはそこからだったはずだが。
Algolは確かにレキシカル・スコープ実装しようとしたが占有修飾子ownの扱いで仕様にあいまいさがあって
スコープまわりは確か不完全なんじゃなかったか?結局staticなメモリ割り付けをすることになると決着して
C言語に継承されたらしいが。
>当然それを念頭において構造化プログラミングに関する論文をかいている
ほうそれは知らんかった。後学のために論文名を教えてもらえないかね。
>>370
Simulaの時点で疑似的なマルチスレッド。
オブジェクトを呼び出してもそのプロセスが消滅しないという特徴がポイント。 次回作はSmalltalkやC++で疑似マルチスレッド性がクラスから消滅した理由を書いてください! 上の話によれば変数環境のモデルがAlgolの時代にすでにあったらしい。それは知らなかった。ぜひその論文を教えて欲しい。 C++のクラスは疑似マルチスレッドとかないので、2つのプログラムを合体させようと思ったときにむっちゃ困るわー 友人がPythonでクラスを使うのを頑なに拒んでいたが、時代の先端を行っていたのか… pythonはシェルスクリプトやるよりはマシなんだよなあ >>376
GoやRustなど最近の言語はクラスを廃止した言語が多いね まじでやばいやつだった
https://mevius.5ch.net/test/read.cgi/tech/1534260508/357
357 デフォルトの名無しさん 2019/01/22(火) 23:18:43.63 ID:b9p++nKt
上で荒らし行為を行っていた I.hidekazu が降臨!
https://ja.wikipedia.org/wiki/%E5%88%A9%E7%94%A8%E8%80%85%E2%80%90%E4%BC%9A%E8%A9%B1:Monadaisuki#%E6%A7%8B%E9%80%A0%E5%8C%96%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%AE%E8%A8%98%E4%BA%8B%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6
>あれは私がコツコツと毎週末に図書館に通ったりして見つけた文献やネット古書店で集めた古書、
>国立国会図書館で複写した文献など(総額費用数十万円)を自分の余暇や日中の仕事時間の合間
>に考えに考えてまとめた内容を、インターネットに接続できる人なら誰でも閲覧できるネット百科
>事典のWikipediaの記事として無料で図まで含めて作成した記事だったんです。
こいつアホすぎるわ。
構造化定理と構造化プログラミングの区別もできないくせに数十万円使って調査ってバカ丸出し。
金かけても内容がクソなら意味ないだろうに。
358 デフォルトの名無しさん 2019/01/22(火) 23:49:00.65 ID:Mi5mcpEM
>>357
その人、かなりおかしいというかキティなのかねえ?
ここを読んでいたら目眩がしてくるよ
Wikipedia:管理者への立候補/i.hidekazu/20141215
https://ja.wikipedia.org/wiki/Wikipedia:%E7%AE%A1%E7%90%86%E8%80%85%E3%81%B8%E3%81%AE%E7%AB%8B%E5%80%99%E8%A3%9C/i.hidekazu/20141215
>結果
>賛成 2 票、反対 13 票、無効票なし。ガイドラインに基づき、今回は見送りとなります。
こんな人が管理者になったらやばすぎる 現代のオブジェクト指向の class の割れ窓化と宣言的プログラミング
https://zenn.dev/mizchi/articles/oop-think-modern
>いいたいのは、 状態コンテナとしての class とメンバーが
>不必要な副作用を生み出す割れ窓になっていて、
>副作用を持つメンバや関数というのは例外的な事項として扱うべきである、ということ。
>class をまったく書くべきではないという話ではなく、
>class は例外的な状態コンテナであるということ。 3時まで返事待ってる上にキレるメンヘラとは会話できんねー。
会話できる見込みあれば会話しようかと思ったけどこれは無理だわー。 >>381
ほんとクソ記事だな
間違ったこと最もらしく書き散らかして悦に入ってるポエマー気質が気持ち悪過ぎる 結局、ALGOLのこと分かってないのがバレて逃げたんかな
もっとエンターテイメントを提供してくれよ 同じクソ記事でも
>>352はハイファンタジー
>>381はノンフィクションに見せかけたフィクション 倫理的には問題ないと思うが
もし生理的に無理だとしたら
倫理より生理的な縛りのほうが自由を制限していることの証左 ニューヨーク市長の政策とクラスに何の関連があるんだ
説明下手糞が 割れ窓理論には対になる六角ボルト理論というものがあってだな、六角ボルトを回す工具はきれいな六角形をしていたら六角ボルトがすり減ったときに噛み合わなくなって空回りするんだよ、六角形を崩してあえて遊びを設けておくことできれいな六角ボルトもすり減った六角ボルトも回せるようになる
これはオブシコも全く同じ、あえてオブシコをすこし崩すことでプログラムコードは柔軟になる NYとOOPの、風が吹けば桶屋が儲かる的な関係は
法則を崩すのではなく法則に厳密に従ってもカオスになるんじゃないか エンタメ記事を放置して置くと増殖するから楽しみが増えるってことだろ フロント設計の場面でもオブジェクト指向はオワコンなの? 設計なんて後からどんどん崩れて行くんだから
最初は完璧だと思うくらいまでしっかり作らなきゃ
すぐに破綻するだろ >>394
フロントはオブジェクト指向の独壇場だろなにいってんの Webアプリのフロントエンドという文脈ではオブジェクト指向は今や大事にされていないんじゃないか?Reactみたいなのが流行ってるんだし。
結局状態の複雑性はブラウザのdomやcssに丸投げしてるだけだとは感じるが。
GUIにおけるオブジェクト指向は今なお大事なんじゃない? GUIのオプション指向、昔作って流行ってしまった資産があるから捨てられないだけってわけじゃないんですかね
今もなにか本質的に重要なことがあるのか? >>400
テストがしやすいとかあるじゃん
オブジェクト指向のせいで開発に支障が出ることないし >>401
それはCやアセンブラと比べた時の話?
Cやアセンブラと比べて新しい言語がテストしやすいのはそれはそう
だからCやアセンブラやパンチカードと比べて過去に流行ったわけだし 何千とある似た様な画面のコードを継承と少しの個別コードだけ書けば済むんだからやめられない それはオブジェクト指向に限らず現代的な言語なら大体そうな気がする
Cやアセンブラと比べてコードの使い回しが効くのはそれはそう >>404
おまえの言ってる「オブジェクト指向」は「オブジェクト指向言語」だ
部品を構成してプログラムを組んでいく「オブジェクト指向」はC言語や用語自身が作られる以前からある >>405
「オブジェクト指向」じゃなくて「オブジェクト指向言語」の利点を語り出したのは>>401や>>403なんだよな
俺はもちろんオブジェクト指向の話をして欲しかったのだが、誰もその話をしてくれなかったのだ あら?
継承は言語仕様じゃ無いくても作れるよ?
アセンブラだってC言語だって、関数も変数もテーブル形式にしてオフセット追加するとかだから 似たようなユーザインターフェースを作るようなプロダクトならオブジェクト指向のが便利
継承やらポリモーフィズムやらが重要になるから
関数型はざっくりに言うと考えたコードをフローチャートのようにそのままコードにしていくっていう考え方でしょ?
そもそもプロダクトによってどちらを採用するかが違うじゃん オブジェクト指向だとスパゲティコードになるだぁ?
定期的にリファクタリング点検をすれば問題なしだよ >>396
Webフロント最有力のReact.jsだと
昔はクラスコンポーネントベースだったけど
使いにくいのとクラス継承使うなと言っても使っちゃうバカが出てきたり問題も多く
今は関数コンポーネントベースとなった まあ継承、ポリモーフィズムといっても例えばMVVMでのレポジトリ周りに適用されるものでUI部品は関数型になると思うけどね
Java/C#民なので悪しからず >>396
どこからどこまでのフロントかで話が180度違ってくるから、そういう言い方はやめてくれ UPLIFT プレミアム・サービスのお知らせ
https://uplift.5ch.net/
UPLIFT 主な特典
・連続投稿の規制を緩和します。
・スレッド作成時の規制を緩和します。
・5ch.netのスレッド表示画面に表示される広告を除去します。
・5ch.net専用ブラウザで5ch.netの過去ログを閲覧できるようになります。
・海外からのアクセス・ホスト経由からでも書き込みができるようになります。
・書き込みが規制されているプロバイダーからでも書き込みができるようになります。
・5ch.netを安定して利用できるように運営を支援できます。
5ちゃんねるを存続させるためには、皆様のご協力が必要です。
最後まで御精読いただきありがとうございました。 >>410
reactが勝手に禁止したところでそんなの知らんがなw
そもそもただのお気持ち表明しただけで禁止じゃないだろ そもそもオブジェクトを使わない言語なんてあんの?
ミュータブルの代わりにイミュータブル使った方がいいよっていうだけの話を誤解してるやついね? それはオブジェクトの定義次第やろな
例えば構造体はオブジェクトなのか? C++だとオブジェクトだな
Cでも頑張ればオブジェクトと言えなくもない C++がオブジェクト指向言語でなきゃどれがそうなんだ 狭義のオブジェクト指向はクラスを持つこととはっきりしている
クラスと他との違いはあるクラスを引き継いで他のクラスを作る継承機能があること
このクラス継承は現在ではできる限り使わないようにするべき派が多数派
そのためモダンなプログラミング言語はクラスとその継承を排除した言語が多数派 >>422
>狭義のオブジェクト指向はクラスを持つこととはっきりしている
ソースを出してくれ そもそも継承はお前ら土方が使うものじゃなくてライブラリ作成者が使うものだよ
「継承を使うな」と言われた意味を都合よく解釈してるんじゃね? >>426
どれのことを言ってるのかわからんが何か刺さったか? 土方が作るプログラムとライブラリの違いは何かね?
ビルドしたらライブラリになるでしょうが C++は昔からマルチパラダイム言語って呼ばれてた
オブシコと言ったらJavaでしょ, Javaは関数型の方に舵を切ってるけどね
オブシコではキャストを使うのは邪道中の邪道と言われてキャストが必要な
プログラムは設計が間違ってるなんて言われてたけど最近だと
パターンマッチでキャストこそが正義みたいになってるからねー なりますよ、jarが出来ます
jarっていうのはJavaのライブラリです >>431
jarはアーカイブフォーマット
jarにしたらライブラリになるわけじゃない
JavaアプリケーションとJavaライブラリの違いを勉強してね >>432
Javaのライブラリはjarで提供されます
ライブラリじゃないjarなんてこの世に存在しません JavaアプリケーションなんてものはMainのライブラリを呼び出してるだけ 実行ファイルなんてものはライブラリの利用形態の一つでしかない
プログラムはビルドしたらライブラリです java -jar
ってオプションが最近のjavaにはあるんですよ また新たなトンデモ人を召喚しやがって
面白いなこのスレw >>425
ライブラリというよりフレームワークじゃないかね?
ベースクラス提供するんで継承で拡張して使ってねっていう >>436
それは「-cp ライブラリ メインクラス」のシンタクスシュガーであることはご存知でいらっしゃいますよね
違いますか? 僕がなにか間違ってますか?(間違ってない) ライブラリの話はもう良いじゃないですか、もうやめましょう、二度としないでください不愉快です >>439
マニフェストからmainのクラス名を読むからただのシンタックスシュガーじゃないぞ >>441
あ、アライグマだ! 違うあれはツキノワグマだ!と言ってるようなもので
そこを詳しく言われても僕はどうしたら良いんでしょうかというのがいまの僕の心境です
どっちもクマじゃん…そんなこまかい種別にこだわられても僕はなんて返したら良いんでしょうか もうライブラリの話は良いでしょう、お腹いっぱいです >>442
違いが気にならないなら存在するもの全部ライブラリでいいと思うよ アライグマとツキノワグマはだいぶ違うが
クマアンチか? アライグマもクマのように歩いて、クマのように鳴くかもしれん 継承はあれば便利だけどなくてもなんとかなるかな
オブシコにとって必須なものではないように思う
属性と操作をまとめることこそがオブシコにとって唯一欠かせない性質だ
オブシコが多くの人を引き付ける理由は人間に近いからだと最近思うようになった
人間は意識という属性を持ち自律して動作する操作を持つ
人間はロボットを作るときにも人間の姿に似せた形にするように
自分に近いものに安心感を覚えてそれを求める本能があるんだろう
その根幹にあるのは慣れだと思う
自分が知っていること慣れていることに近づけることによって危険じゃないことを知って
安心するんだと思う
そのように考えるとオブジェクトは人間にとって慣れたものであるがゆえに
正しいものであるかのようなバイアスを与えるんだと思いました、おやすみなさい アライグマとツキノワグマはJavaScriptとJavaくらい違う 土方がライブラリを作らないと思ってるやつがアライグマ級だとすれば
何でもjarにすればライブラリだと思ってるやつはミノタウロス級
そのぐらい違う ライブラリはほとんどの場合で静的動的リンクライブラリのことを指すはずだけど、jarがライブラリって言ってる人は単にバイナリであるって主張してるのかな
メインクラスを持つ場合もリンクライブラリである場合でも拡張子が同じ.jarで分かりにくいから仕方ないね 特殊なスタブなど経由しなくても他から呼び出し可能かどうかでは?
JVMの世界ではそうなんだから一般化して話をややこしくする必要はない オブジェクト指向とか、
データとプロセスを個別に扱わずに、双方を一体化したオブジェクトを基礎要素にし、メッセージと形容されるオブジェクト間の相互作用を重視して、ソフトウェア全体を構築しようとする考え方がオブジェクト指向である。
ぐらいの意味だろ。 元々オブジェクト指向という言葉ができた当時のプログラミングでオブジェクトというのは「プログラムで扱えるデータ構造」のことだよ
具体的には引数や戻り値として使えるのがオブジェクト
「第一級オブジェクト」を調べてみなよ
手続き指向は手続き中心にプログラミングしてたけどオブジェクト指向はデータ中心にプログラミングする
手続きはデータを扱う主人ではなくデータに付随する従者
それだけのこと
継承はそこから派生した副産物であって本質ではないよ あとお前らずっと間違えてるけど関数型とオブジェクト指向は相反するものじゃないぞ
Hskellだってオブジェクトを使う
お前らはミュータブルとイミュータブルの話を関数型とオブジェクト指向の話だと思ってるから話が通じねんだよ
そもそもモダンなプログラミング言語はみんなマルチパラダイムだ 食肉目クマ科クマ属ツキノワグマ
食肉目アライグマ科アライグマ属アライグマ
食肉目までしか合ってないのにこれの区別がつかないやつはどうかしてる
イヌ科やネコ科も食肉目だがこれら全部区別つかないのかよ
全部「ワンワン」で許されるのは3歳までだぞ ほらな
「オブジェクト」を使ってればオブジェクト指向だと言い出すやつに話が通じるわけがない
ハンマーしか知らないから全部釘に見えるパターン >>454
調べてみたけど
第一級オブジェクト
https://ja.wikipedia.org/wiki/%E7%AC%AC%E4%B8%80%E7%B4%9A%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88
> ここで「オブジェクト」とは広く対象物・客体を意味し、必ずしもオブジェクト指向プログラミングにおけるオブジェクトを意味しない。
これオブシコのオブジェクトとは別人のようですよ
名前が同じだからといって同一人物とは限らないんですよ >>453
データとそのデータを扱うための関数群を「モジュール」という単位にまとめて、モジュールを基礎要素としつつモジュール間の相互作用によってソフトウェア全体を構築したら、オブジェクト指向なのか?
import Foo
…
Foo.doSomething(message) 関数型とオブジェクト指向は対立するものじゃなくて共存するものなんだよね >>459
Objective-Cとかが真のオブジェクト指向
独立したオブジェクト間をメッセージで繋げる
インスタンスと言う名のアドレス参照でコールするのは
まだまだナンチャッテの界隈 ゴールポスト動かし続けるやつばっかり
> ハンマーしか知らないから全部釘に見えるパターン
結局コレだから議論が成立しない
頑張れば全部釘に見えるし頑張れば全部釘ではない何かに見える >>458
それ今の話だろ?
454は当時の話をしてね?
用語の流用で意味が変わることなんていくらでもあるだろ >>462
みんなバラバラのゴールの話をしているから、ゴールが動いているように見えるだけだろ。
>>459
手法としてはそうじゃない?
言語としてのサポートがあるかどうか(エラーを出すとか)は別の話。 i.hidekazuみたいな感じがする
こんなとこで油売ってないで新作書いてよ >>465
「異世界ビルドの何でもライブラリアン」
〜 ハズレスキル『瓶詰め』で今日も自意識無双中w 〜 Oops!をもじって適当に作られた昔の言葉なのに変な宗教になってる人がいるな
仕事でこれはオブジェクト指向じゃないからだめとか逆にオブジェクト指向になってるからだめって言うのがいたらキチガイだわ メモリ領域を表すオブジェクトとオブジェクト指向のオブジェクトは違うものやろ
英語は日本語と違って普通の名詞を専門用語に割り当てるからかぶってるだけ
それよりも、メソッド呼び出しかメッセージかなんて同じ機能に対して各言語設計者がお気持ちで別の用語を割り当てただけなんだから、メッセージじゃないと真のオブジェクト指向じゃないなんちゃってオブジェクト指向みたいな話は時間の無駄 オブジェクトにプロパティがいっぱい生えてるのが気持ちいいんやろな
そうやってデータのまとまりとして見てて
構造体的にアクセスするのが気持ちいいんやろな
インタフェースをじっくり吟味して
内部構造を隠したり
想像しにくくしたり
想像させたりしないのがホントは好ましいんだろうけど オブジェクト指向は大したない物にいちいち横文字作り過ぎてて草
関数呼び出しをメソッドとか草
プロパティとか寒いわー草も凍る >>472
冬季オリンピックの開催地が変わる毎にスキー用語が変わるみたいなもんだろ 構造体的に
とりあえずいっぱい乗っけたものを
色んな所に持ち回ってなんとかする
ってのがズボラ志向とフィットするんやろな
プロパティは好ましいと思ってるんだろうし
言語でサポートされてるC#が素晴らしいということになるんだろうな プロパティは副作用あるから使わない方がいいよ
特にプロパティ内に処理を書いちゃう奴 まだミュータブルとイミュータブルの区別がついてないの草 オブジェクト指向という用語をオレオレ定義で使うのは別にいいんだけど
その定義におけるオブジェクト指向とオブジェクト指向でないものの境界線くらいは最低限明確にしろよな
じゃなければ誰かさんと同じファンタジーポエムと同じだぞ (例えば継承とコンポジションの) 境界線がなくても困らないのが非OO
境界線がなければ大変なことになると思ってるのがOO >>464
i.hidekazuくんさあ上のほうで質問されてるんだから答えてあげようよ
自分も答が気になるんよ
373 デフォルトの名無しさん 2023/12/13(水) 19:47:13.87 ID:2g95gV8C
上の話によれば変数環境のモデルがAlgolの時代にすでにあったらしい。それは知らなかった。ぜひその論文を教えて欲しい。 技術系ハイファンタジー記事の人じゃないの?
知らんけど ファンタジーというか無駄な情報をなくすには
勝手に編集するか、情報源を探し出し説き伏せる
普通に考えれば前者が合理的 エンタメ記事を勝手に編集? 説き伏せる??
さすがエンタメ供給側の人は言う事が一味も二味も違うなぁ エンタメ記事のやつJavaScriptスレに出没してたぞ
このスレで書いてたのと同じ妄想を書いてるからすぐわかる ところで「チンポがシコシコする」という日本語表現は、文法的に正しいのか?
チンボ「を」シコシコするのではなくて、チンポ「が」シコシコする。この場合、「チンポ」は主語となる。
オブジェクト指向で言う「集約」は2種類あって、全体(俺)と部分(チンポ)が繋がっている場合と、
全体(俺)と部分(チンボ)が別々になっている場合とが考えられる。けれども「チンボ」はそれ自体
が独立した生き物であり、所有者の意思とは無関係に、勃起して「シコシコする」。
例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。
違うか?
「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ! メッセージングを基礎単位として取ることは、より徹底的な遅延束縛を可能にする。というのも、
メッセージそれ自体は意味を持たず、実際にメッセージがオブジェクトに送信されてはじめて、意味が決まるからである。
https://qiita.com/ukyo-su/items/8c861f114809a96d1378
オシッコを出したり止めたりというのは、チンポから力を抜いたりチンポに力を入れたりと、
オシッコはオシッコそれ自体は意味を持たず、オシッコが尿道を介してチンポに送られることによって、
オシッコを出したり止めたりが可能になるということだ。
>ナンチャッテメッセージングスタイルになったのは
チンポ.オシッコを出す
チンポ.オシッコを止める
さっきトイレでやってきた。
>単なる動的なメソッド呼び出しをメッセージと称し、ただしコールするメソッドが見つからない場合だけメッセージを
>ハンドリングできる省コストなナンチャッテメッセージングスタイルに落ち着いた。
×
俺.オシッコを止める 俺.オシッコを出す
○
俺.チンポに力を入れる 俺.チンポから力を抜く 随意筋 不随意筋
↖ ↗
チンポ
自然言語処理において語の意味は文脈によって変わるので、Pythonのような多重継承が不可欠ね! ちんぽをシコシコするというのは主体が別に存在する(おそらく右手であろう)
しかし、ちんぼがシコシコするというのはちんぽさんが主体となって別の輪状、もしくは固定された箇所に向かって
往復運動をすることを言う
そしてそれはシコシコと形容される範囲内におけるような物体や部位である必要がある
つまり、日本語でいうところのチンポがシコシコするというのは文法上は正しい
しかしである
ちんぽは主語になってよいものかという問題が残る
ちんぽは思考できるのか、主体的な存在であるのかという疑問んである
我々はちんぽを自由自在に動かす事はできない
「勃つんだ!ジョー!!」などと呼びかけた人もいるであろう
ちんぽは人の付属物であると同時に1本の主体的な存在でもある
思考や意識といったものはないかもしれないし他動的な刺激により、また体調により変化を兆す。
つまり、チンポがシコシコするというのはチンポが主体的な存在かどうかが問われているのであり
勃起に至る過程からそれはまさに肯定されるべきなのである >>489
スレッドはメインルーチンとは独立して動くが、これはチンポが本体とは独立して勃起するのと同じ。 名前違うだけで中身空っぽ(追加属性や関数のない)クラスを基底から何種類も継承する意味ってあるのか?
同じ使い方出来るなら使いまわせばいいのでは? >>493
チンコってのは大統領権限でもどうにもならない、独立した別チン格で勃起したり射精したりするからな
class チンポ extends クリントン{
super.不適切な関係;
}
つまりクリントンの再定義、クリントンの拡張された別チン格ということ
大統領権限では動かせない別チン格だから、
勃起や射精については「別チン格」として、実装をふくまない抽象クラス(Abstract)にね >>493
分類に使える
基底クラスにenum持たせるだけでいい場合もあるけど
enumの代わりにクラス名使うと階層化できるしデータも積める (経営者目線で...)
土方コード→一回の動作にかかる費用は数万〜数億
ライブラリコード→一回の動作にかかる費用は数マイクロ円
みな土方やりたがるわけだ.... >>496
おまえ生まれてから今までずっと
何言うてんねん ・経営者目線(IT企業?ユーザー企業?)
・土方コード(何の?)とライブラリコード(何の?)の比較
・それぞれの1動作当たりの費用(どんな計算?)
・結論土方やりたがる(使う側?使われる側?)
支離滅裂でほぼ暗号 >>454
大型コンピュータ同士がネットワーク化されて単一のプロセスがひとつのマシン内で完結して動いてるという状況が壊れてきて
「あっちのマシンで動いてるプログラムとこっちのマシンで動いてるプログラムの同期がまったく取れない」って未来が見えてきた時点で
要するにプログラムモジュールの単位を切ってそこにコマンドを送って「これこれこういう処理を頼む」って形にしないと人間がコントロールできなくなる。
コマンドも処理A、処理B、処理Cじゃプログラムする“人間側が”わからなくなるから、なにをさせるのか平易なわかりやすい言葉にする。
ってすげぇわかりやすい前提でオブジェクト指向は組み立てられたんだけど、その後のマイクロコンピュータの発達で
「オブジェクトなんとか?いやこの機械の中でやってることすべて把握してるのがウィザード級ハッカーって奴だろ?www」に退化しちゃって
パソコン用言語がすぐに「素人にはわからない記号を多用して人間のタイプ数や数バイトを節約するんだ!デバグ性が上がるけど遅くなる言語仕様は不要!」って
わけのわからないプログラマ文化に毒され続けて、まあその流れが現代まで汚染されたまま残ってるというか。
要するに「ロボットに命令して仕事してもらう感じにしよう!」ってだけで、ロボットのコピー改造も、あのバカが連呼してる関数と命令は同じだろも
大暴投すぎて本質になんにもかすってないという。 ハ,,ハ ハ,,ハ
( ゚ω゚ )゚ω゚ ) おとこわりします
/ \ \ おとこわりします
((⊂ ) ノ\つノ\つ))
(_⌒ヽ ⌒ヽ
ヽ ヘ } ヘ }
ε≡Ξ ノノ `Jノ `J >>499
>「あっちのマシンで動いてるプログラムとこっちのマシンで動いてるプログラムの同期がまったく取れない」って未来が見えてきた時点で
スレッドがメインルーチンとは独立して動くというのは、チンポが本体とは独立して勃起するのと同じ
だからといってスレッドはメインルーチンから制御を受けないわけではない
オシッコを出したり止めたりする時は、本体の制御を受ける 委譲と継承の違いね!
>>454
>継承はそこから派生した副産物であって本質ではないよ
オシッコするときのチンポは委譲、勃起するときのチンポは継承
前者は本体の意思で動かされるメッセージング、後者は独立したチン格で動くポリモーフィズム
継承との違い
継承は親クラスの内容をすべて引き継ぎ、委譲は委譲元の振る舞いを一部引き継ぐ
https://qiita.com/Y_M27/items/a41b2aa8b49e7c3a1a7f プログラム作れずオブジェクト指向が欠片もわかってないのにオブジェクト指向というスレタイに反応してチンポ連呼するだけのキチガイ >>502
システムの歴史を簡単に述べる
最初にできたのは1台の大型のコンピュータで処理するシステムだ
それが複数台の大型のコンピュータをネットワーク化してより複雑な処理を行うシステムへと発展した
やがてコンピュータの小型化高性能化が進みかつて複数台の大型のコンピュータを必要としていた処理も1台の小型のコンピュータで処理できるようになった
オブジェクト指向は複数のマシンを協調して動作させるときに管理しやすくする仕組みだ
複数台の大型のコンピュータをネットワーク化して処理を行うために考案されたが
その後のコンピュータの小型化高性能化によってしだいに必要とされなくなっていった
オブジェクト指向は物理的なマシンだけでなくプログラム内の計算モジュールにも適用できる有用な概念だが
メモリを限界ギリギリまで節約することを美学とするプログラマ文化のせいで軽視されている
70年~80年台の話なんかね?
> 要するに「ロボットに命令して仕事してもらう感じにしよう!」ってだけで、ロボットのコピー改造も、あのバカが連呼してる関数と命令は同じだろも
> 大暴投すぎて本質になんにもかすってないという。
この段落は何言ってるのかわからなすぎてあきらめた Turbo Pascalの開発者でいまC#を作っているアンダース・ヘルスバーグは
アセンブリ言語でオブジェクト指向のプログラムを書いてたって言ってるから
Turbo Pascalが開発された80年代にもオブジェクト指向は役立ってたみたいだけどね
いまではオブジェクト指向自体の有用性は変わっていないけれども
オブジェクト指向言語と宣伝することの重要性は低くなってるかな
それだけオブジェクト指向が広まった結果だから喜ぶべきことなのかもわからんね >>499のようなウソを並び立てたクソ長文も
>>508なようなペラっペラな浅い知識も
何の役にも立たないという意味では全くの同類 >>506
なら「オブジェクト指向」とは何か、誰にでもわかりやすい説明をここで出せ! イルカも猫も「哺乳類」には違いないが、こういうところでオブジェクト指向など使うべきでは無い!
イルカはイルカ、猫は猫だ!
>>456
>イヌ科やネコ科も食肉目だがこれら全部区別つかないのかよ
つまり自然言語で容易に「区別」できるものは、オブジェクト指向を使う必要は無い!
>クリントンの「不適切な関係」
オブジェクト指向を使うべきはココ!
クリントンは同じクリントンでも、人格とチン格が別々に存在するからだ! チンコの随意筋と不随意筋
http://d.hatena.ne.jp/tottokotokoroten/20130516/1368716650
<俺>
「 部屋の英子がこちらを向いた気配に、彼は勃○した陰○を外から障子に突きたてた。障子は乾いた音をたてて破れ、
それを見た英子は読んでいた本を力一杯障子にぶつけたのだ。本は見事、的に当って畳に落ちた。 」
<チンポ>
「 その瞬間、竜哉は体中が引き締まるような快感を感じた。彼は今、リングで感じるあのギラギラした、
抵抗される人間の喜びを味わったのだ。 」
まさに独立した人格を有したチンポという、もう一人の俺がそこに現れるのである!
【藤子・F・不二雄】「みきおとミキオ」現在と未来、憧れの入れ替わり生活!
https://www.google.com/amp/s/middle-edge.jp/articles/0izbO.amp >>507
日本語は通じるようになったけど、相変わらず内容は意味不明だな
オブジェクト指向はネットワークより後なんだろうか?時期的にはわからんけど、ネットワークがオブジェクト指向に影響を与えたとは思えんな 人間に独立した人格が有るように、チンポにも独立したチン格が有る
これは親クラスと子クラスの継承関係である
チン格とはつまり「愚息」であり、自分にも他人にも成り得る
これがオブジェクトの多態性と表現される
オシッコするときのチンポは随意筋、勃起するときのチンポは不随意筋
このように時と場合によって真逆の性質を併せ持つことができる
随意筋 不随意筋
↖ ↗
チンポ
自然言語処理において語の意味は文脈によって変わるので、Pythonのような多重継承が不可欠ね! オシッコを止めたり出したりする時、内尿道括約筋や膀胱平滑筋を意識する必要無いからな
>>88
>オブジェクトの内部はブラックボックス化され、外部からはオブジェクトのインターフェイスだけを相手にすればよいので、
オシッコするときは便器とチンポだけを意識し、オシッコが便器からはみ出さないように気をつけることね
膀胱に尿を溜めているとき(蓄尿)には、交感神経が働いて、膀胱の筋肉(膀胱平滑筋)は緩みつつ、
膀胱の出口の筋肉(内尿道括約筋)はギュッと収縮して尿が外に出ないようにしています。
https://www.kissei.co.jp/urine/about_urine/about.html https://twitter.com/YS_GPCR/status/1746099832962605293
YS@GPCR
@YS_GPCR
専門的な知見を探求し、専門家同士で通じる「わかりやすさ」をもって論文を書きセミナーする頭の良さと、一般人に「わかりやすい」物語にする頭の良さは全く別。
この二者を兼ね備えるものもいるだろうが、後者の能力だけを「頭の良さ」だと思っていると、後者だけを語る疑似科学に騙される。
https://twitter.com/thejimwatkins 『シコシコ』という擬音はどうでもよい。問題は、
自我 チンポ
↑ ↑ チンポ=自我
チンポ 自我
オブジェクト指向では、この三種類が考えられるということだ。
>チンポ=自我
散歩している時、自分もチンポも所在地は同一である。
https://i.imgur.com/4XhBmP3.jpg
https://i.imgur.com/PPFJZqI.jpg
夏目くんの場合は、チンポが自我を圧倒し、体が自然に滝川さんの股間に近づいていったのだ。
『笑ってごまかすな!!』
と言われても、夏目くんは何と言えば良かったのだろう?
チンポ≫自我
『チンポが自我を超えてしまった』を簡略化して、チンポがシコシコする!
チンポがシコシコしていると(チンポが自我を超越していると)、息もハァハァになる。
チンポがシコシコしている(チンポが自我を超越している)と、顔もアヘ顔になる。
つまりその顔は『チンポの一部』つまりチンポの皮と同じということ。
博士号の肩書きがあっても、STAP細胞のそれは間違いであり科学者として失格。
チンポと自我の関係について、それが間違いということなら、俺も科学者を自称するのを止めよう。
しかしながらあの夏目くんは、笑ってごまかす以外に何と申し上げたら良かったのか。 >「あっちのマシンで動いてるプログラムとこっちのマシンで動いてるプログラムの同期がまったく取れない」
どういうこと?データベースのトランザクションはネットワーク越しにちゃんと動いてるぞ >>518
分散コンピューティングの話
中央集権的なDBで解決するのはあくまでひとつの手法 >>519
なら最初から分散コンピューティングって用語を出せば余計な説明はいらないと思う
それから分散コンピューティングのためにオブジェクト指向が必要という話を
聞いたことがないんだけど、よかったらリンクを貼ってもらえないか? >>520
>それから分散コンピューティングのためにオブジェクト指向が必要という話を
分散コンピューティング・システムは、数多くのベンダーから提供されるハードウェアで稼動可能で、
さまざまな 標準ベースのソフトウェア・コンポーネントを使用することができます。
このようなシステムは、 土台にあるソフトウェアから独立しています。
https://www.ibm.com/docs/ja/txseries/8.2?topic=overview-what-is-distributed-computing
>このようなシステムは、 土台にあるソフトウェアから独立しています
独立性(クラス化)
独立性とは、外部のオブジェクトのデータを参照せず、自分自身の処理で完結している事です。
独立性が高いプログラムの場合、プログラムを変更しても、他のプログラムに与える影響が少なくなります。
そして外部の依存度を無くし、独立性が高い変数や振る舞いをまとめる事を、クラス化と言います。
https://www.vacslab.co.jp/object-orientation/#:~:text=%E7%8B%AC%E7%AB%8B%E6%80%A7%EF%BC%88%E3%82%AF%E3%83%A9%E3%82%B9%E5%8C%96%EF%BC%89,%E3%82%AF%E3%83%A9%E3%82%B9%E5%8C%96%E3%81%A8%E8%A8%80%E3%81%84%E3%81%BE%E3%81%99%E3%80%82 >>506
繋がっているけれども独立しているということだが? >>521
言われて困るやつに横槍されても
>>522
>このようなシステムは、 土台にあるソフトウェアから独立しています
この文は分散コンピューティング・システムはOSから独立してるということを言ってると思うんだけど、
それがオブジェクト指向のオブジェクトの独立性と共通してるってこと?だから必要になったと? >>525
>それがオブジェクト指向のオブジェクトの独立性と共通してるってこと?
そうだ。 分散コンピューティングとオブジェクト指向は全く関係ないわな
オブシコ君はそんな基本的なことも知らずに何年もシコシコ言い続けてるんだな クリントンは同じクリントンでも、チンポは本体のクリントンシステムとは独立して動くからな
>このようなシステムは、 土台にあるソフトウェアから独立しています
class チンポ extends クリントン{
super.不適切な関係;
}
21年前のクリントン弾劾裁判 躊躇した「性的関係」の詳細描写(樫山 幸夫)2020年4月
https://www.jnpc.or.jp/journal/interviews/35171 CORBAとかDCOMとかオブシコそのものじゃん…
まったく関係ないってそんな自信満々に間違ったこと言われても… CORBAもDCOMも大失敗したのは事実だけどさ
REST APIへと形は変わったけどオブシコはまだ生きてる! >>530
あーやっぱり区別がついてないんだな
直交した概念を関係あるものと誤認識してるだけだよ クリントン大統領の「不適切」というのは、チンポが独立して主体意思でシコシコしてしまったから。
チンポは独立した生き物であり、アメリカ大統領の権限をもってしても、制御することは不可能だ。
クリントンの「不適切な関係」
https://eigo-kobako.blog.so-net.ne.jp/2008-06-21
class チンポ extends クリントン{
super.不適切な関係;
}
クリントンーーーーーーーーーー
┃ ┃
┃ ┃
┃ ┃
┃ ┃
┃ ┃
ーーーーーーーーーーーーーーー
┃チンポ┃
 ̄ ̄ ̄ ̄
『人格を性欲に乗っ取られる』、つまりクリントンはチンポに人格を乗っ取られて、チンポにシコられてしまった!
https://i.imgur.com/WMeTh5O.jpg >CORBAとかDCOMとかオブシコそのものじゃん…
これは何でもオブシコに見えてしまう病
誰かが書いてたけどすべてが釘に見えてしまうやつと同じ >>534
CORBAのOが何を表してるか知ってるか?
DCOMのOが何を表してるか知ってるか?
それがすべて >>532
区別なんてをつける必要なんてないのよ
なぜならオブシコはもっと大きな包括的概念だからね お前らはオブシコのことを何もわかってない
その生い立ちその歴史その意味その未来
俺にははっきり見えているWebサービスこそがオブジェクトです
Webサービスの連携によってシステムが形作られるさまはまさにオブジェクト指向なわけですよ > 分散コンピューティングとオブジェクト指向は全く関係ないわな
これは完全に間違ってる完全にだ 現代のWebサービスはいわばまさにアラン・ケイが提唱したオブジェクト指向そのものなわけですよ >>538
板違いのスレ真っ赤になってあげてるのが間違い
ハロワ行けカス >>90
>俺は抽象化自体はどうでもよくてifを減らすために使ってるわ
抽象化とは、前述の通り大事なとこだけ抜き出して他はポイすることである。
例えば「白米」という項目に「パンの説明」が併記されていたら、「おいおいそれはないだろ」という話になる。いわばこれが白米の抽象化が効いていない状態だ。
逆に、白米の要素を省きつつパンの説明だけを抜き出して一つにまとめられれば、それはパンの抽象化である。
https://qiita.com/0w0/items/2cfaf3ca0b653960f5e9 それは要約とか抽出じゃね
抽象化はたとえば白米とパンから主食とか穀物みたいな抽象的なグループを作り出すことでしょ >お前らはオブシコのことを何もわかってない
虚しい叫びだね〜w >>542
まーたすごいw記事見つけてくるな
抽象化を理解できてない上に本人が「白米の抽象化か効いてない」状態を見事に体現しててウケる 複数のカテゴリに重複して分類出来るものを例えに使うから分からなくなる
だいたい多重継承禁止なのに >>544
要点を抽出して要約するのも抽象化の一種
汎化が伴わない場合は抽象度の変化が小さいので抽象化とは異なると考えがち >>549
そんなプログラミングの役に立たないものはどうでもよくね >>550
プログラミングの役に立たないもとだと認識してしまう人は抽象化能力の低い人なのでそういう人にこそどうでもよくないこと
汎化が伴わない抽象化もプログラミングにおいて日常的に使われるものだけどそれを汎化が伴う抽象化とシームレスに使えない人は抽象度のコントロールが上手くできない
これは>>542の記事がわかりにくい原因の一つでもある >>507
>この段落は何言ってるのかわからなすぎてあきらめた
もともとが「プログラムはひとつの機械の中で順番に処理をするもの」という前提が崩れた時点で
外部のプログラムモジュールに“この仕事を頼む”って非同期的に作業を預けて
モジュール間で「できてる?」「できた」ってやりとりすることで動作する環境を考えなければいけなくなった。
その時イメージされたのがロボットに仕事を頼んでそれぞれが「できました」するイメージ
この前提で考えた時にシステムを人間が管理するためにはロボットに与える命令は
人間側が平易に理解できるコマンドと内容でなければ人間が困るというのが
現代まで続くメッセージ/メソッドという概念の始まり。
またロボットなのだから複製して似た作業させたり、アームや移動装置を付け替えることで
別な作業に使えるように改造するという発想も自然に出てくる。
(ただ後年言われているように基本→改造A→改造Bってできる継承は
バージョン違いで逆に混乱の元にしかならないので、コンポジションをベースにした方がよかった)
こういった前提でプログラムモジュールをオブジェクトと考えるオブジェクト指向は生まれたのだが
この前提が見事にすっこ抜けたC ++が「継承ってのがオブジェクト指向なんだよ
車にタイヤだよ、改造パーツ付け替えだよ」って異端が“ボクがオブジェクト指向ござい”したせいで
いまだに間違った言語の間違った仕様を前提に「あれがオブジェクト指向だった」と思われてる。
そういう話 あと、あたりまえの話だけどひとつのプログラムモジュールなんて小さい単位の中では
普通に処理が順番に走ってるんだから、そんな細かい単位の中でマイクロオブジェクト作って
継承だのなんだのする意味がなくて、そういうレベルのマイクロコンピュータプログラミングで
次の時代はC ++だよ!されたのが最大の不幸だったとも言える。 アラン・ケイの言及
>さながら生物の細胞、もしくはネットワーク上の銘々のコンピュータ、それらはただメッセージによって
>コミュニケーションする存在、僕はオブジェクトをそう考えている
人間が平易に理解できるうんぬんは上のバカが言ってるだけで関係ないのでご注意ください
あとマイクロコンピュータという用語の使い方も間違ってるので無視してください ネットワークが当たり前になって、複数のサイトで個々の対応をする様になったら、またオブジェクト指向が見直されるってか? こいつ、オブジェクト指向にマルチスレッド的な要素があると思ってるところが、なんかiHdkzくさいな >>553
>人間側が平易に理解できるコマンドと内容でなければ人間が困るというのが
>現代まで続くメッセージ/メソッドという概念の始まり。
よって我々はモノに着目している場合ではない。機能に着目すべきなのだ。インターフェイスとは機能をユーザー側の視点から記述したものだ。
これによって機能を構成するものの中でユーザーが知る必要のない情報(実装)を隠蔽するのである。
各コンポーネントが自分が知る必要のあることだけを知ることで、現代の複雑かつ大規模なソフトウェア開発が可能になるのである。
https://qiita.com/hush/items/33da14ddf45f45b5ef65 >>88
>オブジェクトの内部はブラックボックス化され、外部からはオブジェクトのインターフェイスだけを相手にすればよいので、
多くの機能を保有する管理画面は、業務の種類によってメニューが細分化されています。
しかし、ユーザーが利用する機能は限られていることが多く、使うたびにメニューから目的の機能まで辿る作業は面倒です。
https://baigie.me/blog-ui/2020/06/16/ui_design_for_admin_screen/ 必要最低限の機能を、過不足なく抽出するのが抽出化ね!
>>90
>俺は抽象化自体はどうでもよくてifを減らすために使ってるわ
オシッコするときはチンポと便器だけを意識するべきで、内尿道括約筋や膀胱平滑筋を意識する必要無い! あーなるほど、ユーザーのことを人間って言ってたのか
こいつ言葉の使い方が無茶苦茶だな
常に>>562みたいな卑猥な表現ならまぎらわしくないんだけどな ユーザーを人間に言い換えちゃうと、実装の詳細をすべての人間が平易に理解できちゃいけないことになるけど、
機能を実装した人間は平易に理解できちゃってるからまずいよねえ
そこはユーザーとか利用者とか言わないと意図が伝わらないよねえ プログラマのことを人間って書いてるのかと思ってた
利用者のことだとわかるのすげーな
そんな発想みじんもなかった >>565
>プログラマのことを人間って書いてるのかと思ってた
それはまあ合ってるんじゃね
ライブラリの提供者と、それを使う利用者っていう文脈ならプログラマだからね
ただし「人間と非人間(機械?)」という構図ではなく、
「提供者と利用者(ユーザー)」という構図だったらしい
それなら片方を指して人間と呼ぶのはまぎらわしすぎる まあ、インターフェイスはどっちかというと理解しやすくするためというより、
依存を減らすことで、実装変更の影響が広がらないようにするためだけどな >>568
インターフェイスは契約だよ。
依頼人は事前条件の義務を果たせば事後条件の利益が受けられる。請負人は事前条件が揃ったら事後条件を提供する義務がある。
それを契約書みたいに切り離したのがインターフェイス。 >>569
そういう面もあるけどどっちかというとDbCの話だな >>557
元々のオブジェクト指向はマルチスレッドだけでなくマルチプロセスでもマルチノード環境でもよくて
それらマルチな環境で動いている独立したオブジェクト同士がメッセージパッシングをするところから始まっている
そのメッセージパッシングの実装の一つのあるインターフェイス切り口の一つがオブジェクトのメソッド呼び出し したがってシングルスレッドおよび同期呼び出しという二つの足枷を前提とする極めて特殊な制限された環境を前提とするのは間違い >>571
メッセージパッシング?Smalltalkのメッセージはメソッド呼び出しをかっこよく言い換えただけやろ? >>573
概念と実装の区別ができない人は出入り禁止 >>574
じゃあ違う実装をしてる言語を挙げてみろよ なんで、関数呼び出し以外でメッセージを実装してる言語が存在しないの?
オブジェクト指向の始祖はなんでそんな実装しなかったの? 実装のひとつなんでしょ?なんで他の実装がないの?
はやく出してよ ここでの言語がプログラム構築ツールに過ぎないのだから
関数呼び出しとなるのは理にかなってて当然じゃない?
オブジェクトの扱いをもっと大げさに実装しても嬉しくないし
業務フロー構築とか高レベルな領域を扱うためのものはあるけど
汎用的なプログラム言語ではなくなる 関数呼び出しの意味合いが多義たから噛み合ってないようにみえる
古典的な関数呼び出しだと求める値は関数の返り値として返ってくる
しかし今は当然それだけではなくて
例えばJavaScriptなど継続(continuation)を用いる言語だとその場合は関数の返り値として求める値は返って来ない
さらに今は多くはの言語が非同期呼び出しをサポートしていて関数呼び出しで返ってくるのは求める値ではなくFutureやPromiseが返って来る
さらにそれらを使わずあるいは併用してChannelを使ってメッセージや値を送り合う言語も多い
関数呼び出ししかないと主張する>>576はあまりにも無知すぎるようにみえる >>579
そんな感じでプリミティブな関数呼び出しを利用してなんでもできるじゃん
それをメッセージパッシングとか名前だけ変える意味ないやろ >>580
まずはContinuation、Promise/Future、Channelなど各々を勉強してみたらどうかね
そうすれば関数呼び出しだけではなぜ実現できないのかを理解できる javaとか関数呼び出し以外に特別なメッセージパッシングの仕組みがないのに、PromissもFutureもあるじゃん…
Continuationはないけどさ schemeなんて関数呼び出ししかないのに全部あるじゃん…
何が言いたいのかさっぱりわからん… 屁理屈で言い訳しているだけにみえるが
もし本当に理解できてないなら相手にしてもしかたないな >>585
実際にjavaやschemeでは関数呼び出しだけで実装できてるって言ってるのに、理由もなく実装不可能とか屁理屈言ってるのはそっちだろ
普通に考えて関数による抽象化はプログラムにおける万能のビルディングブロックなんだけど むっちゃ話がそれたんだけど、メッセージパッシングなんて関数呼び出しの名前をオシャレに変えただけなので、
>>571
に書いてあるマルチスレッドで独立したオブジェクトがメッセージを送りあうみたいな計算にはならないだろって言いたいんだけど
そういう独立に相互作用しあうような計算が念頭にあるなら、smalltalkみたいな言語にはならんと思う >>587
違うよ、実装から見ればアドレスにコールしてる様に見えるけど、本来は通信するんだよ >>571
>それらマルチな環境で動いている独立したオブジェクト同士がメッセージパッシングをするところから始まっている
メッセージングを基礎単位として取ることは、より徹底的な遅延束縛を可能にする。というのも、
メッセージそれ自体は意味を持たず、実際にメッセージがオブジェクトに送信されてはじめて、意味が決まるからである。
https://qiita.com/ukyo-su/items/8c861f114809a96d1378
オシッコを出したり止めたりというのは、チンポから力を抜いたりチンポに力を入れたりと、
オシッコはオシッコそれ自体は意味を持たず、オシッコが尿道を介してチンポに送られることによって、
オシッコを出したり止めたりが可能になるということだ。
>ナンチャッテメッセージングスタイルになったのは
チンポ.オシッコを出す
チンポ.オシッコを止める
さっきトイレでやってきた。
>単なる動的なメソッド呼び出しをメッセージと称し、ただしコールするメソッドが見つからない場合だけメッセージを
>ハンドリングできる省コストなナンチャッテメッセージングスタイルに落ち着いた。
×
俺.オシッコを止める 俺.オシッコを出す
○
俺.チンポに力を入れる 俺.チンポから力を抜く 独立したオブジェクト同士が、
>>571
>独立したオブジェクト同士がメッセージパッシングをするところから始まっている
「相互作用しあう」というのがイマイチわかりにくいかもしれない。
>>587
>そういう独立に相互作用しあうような計算が念頭にあるなら、
けれどもチンポは同一の個体であっても別人格または別チン格なので、本体との相互作用に矛盾は無い!
チンコの随意筋と不随意筋
http://d.hatena.ne.jp/tottokotokoroten/20130516/1368716650
<俺>
「 部屋の英子がこちらを向いた気配に、彼は勃○した陰○を外から障子に突きたてた。障子は乾いた音をたてて破れ、
それを見た英子は読んでいた本を力一杯障子にぶつけたのだ。本は見事、的に当って畳に落ちた。 」
<チンポ>
「 その瞬間、竜哉は体中が引き締まるような快感を感じた。彼は今、リングで感じるあのギラギラした、
抵抗される人間の喜びを味わったのだ。 」
まさに独立した人格を有したチンポという、もう一人の俺がそこに現れるのである!
【藤子・F・不二雄】「みきおとミキオ」現在と未来、憧れの入れ替わり生活!
https://www.google.com/amp/s/middle-edge.jp/articles/0izbO.amp オシッコするときのチンポは随意筋、勃起するときのチンポは不随意筋
このように時と場合によって真逆の性質を併せ持つことができる
>>579
>さらに今は多くはの言語が非同期呼び出しをサポートしていて関数呼び出しで返ってくるのは
随意筋 不随意筋
↖ ↗
チンポ
>求める値ではなく
随意筋(本人)である場合と、
>FutureやPromiseが返って来る
不随意筋(他人)である場合がある。 意味論上の原則として、メッセージ送信表現が何を意味するかは、メッセージを受けるオブジェクトによって決められる(SEO)。
この考え方の重要なところは次の二点だ。
メッセージはそれ自体でいかなる意味も持たない
メッセージが何を意味するか(システムとして何を起こすか)はオブジェクトが解釈する
https://qiita.com/ukyo-su/items/8c861f114809a96d1378
>>571
>それらマルチな環境で動いている独立したオブジェクト同士がメッセージパッシングをするところから始まっている
「オシッコがしたい」と自分がそう思っていても、体内に入っているうちはオシッコにはならない
そうでは無くてチンポから尿を出すことによって、それはオシッコなのだと意味づけられる 随意筋 不随意筋
↖ ↗
チンポ
チンポは本人の意思では動かせない別の生き物だが?
>>580
>そんな感じでプリミティブな関数呼び出しを利用してなんでもできるじゃん
×
俺.オシッコを止める 俺.オシッコを出す
>それをメッセージパッシングとか名前だけ変える意味ないやろ
○
俺.チンポに力を入れる 俺.チンポから力を抜く 俺↔チンポ
相互作用ね!
>>571
>それらマルチな環境で動いている独立したオブジェクト同士がメッセージパッシングをするところから始まっている
https://mobile.twitter.com/ki45_nisiki/status/1581300043935494145
フローズンぺんぎん@とりゅー
@ki45_nisiki
返信先:
@LunRon5
さん
どんなに教養と勉強で武装しようとも、自身が抱える性癖には逆らえん。チンポが脳や人格にオーバーライドして支配してくる欲求には逆らい難い…だからこそ最低限の慎みと矜持として2次元があるのではないか…デブでもおばさんでも勃起できる人にはこの苦しみはわからんっすね
https://twitter.com/thejimwatkins 前も歴史的タイミングがわかってない人が居たけど
大学のデータセンターみたいなのがネットワーク通信できるようになって
処理を外部のコンピュータに委任する状況が当時の最新システムで始まった時に
従来の一つのアドレス空間で結局内部でステップ順に処理しているという
プログラムの常識が通用しなくなって来たから
「もう独立した処理単位(オブジェクト)としてサブルーチンを捉えよう」という
オブジェクト指向が始まったので、結局アドレスで〜というのはお門違い。 オブジェクト指向うんぬんはあるけど、状態管理まわりのアーキテクチャうんぬんの議論も最近よく見かける
ReduxだのMVVMだのいろいろありすぎる
まあ結局フレームワークで状態管理アーキテクチャを選ぶことになるんだろうが >>595
なんで君はそんな嘘を吐き続けるの?
オブジェクト指向の起源と通信は全く関係ないよ いろいろ不思議なんだよね
80~90年代のカプセル化や新しいプログラムパラダイムの話題
現代のswift playgroundやunityの実装まで全てがステップバイステップで
プログラマがコントロール“できない”からオブジェクトに処理は任せるという思想で
近代プログラミングは成り立ってるのに、そこの歴史一切無視して
ずーっとCとかアセンブラ脳なんだままっていったいどこで情報科学を学んだの? むしろデータ型の歴史を無視することで
変数の型を宣言しないことが可能となる
関数がアルゴリズムを隠蔽するのと同様に変数がデータを隠蔽できるようになる >>596
誰もUIの話なんてしてないんだがバカか? reactはコンポーネント指向とかいうので開発するんだっけか知らんけど オブジェクト指向の最高傑作は依存性注入という考え方だよね
自動テスト最高 >>588
じゃあなんで、提唱されてから40年は経ってるのに、我こそは真のオブジェクト指向言語だメッセージは通信で渡すぞオブジェクトはみなスレッドだってやつが現れないの? >>603
オブジェクトはスレッドだけじゃないからでは? >>604
わいもそう思うんだけど、
>>571
が言うには元々のオブジェクト指向はオブジェクトが独立したスレッドで動いてるらしいんだよ
だから、なんでそういう「本来のオブジェクト指向」の実装が未だに現れないんだろうねえ不思議だねえって話 コントロールできる場合とできない場合が併存するということね!
>>598
>プログラマがコントロール“できない”からオブジェクトに処理は任せるという思想で
随意筋 不随意筋
↖ ↗
チンポ オブジェクト指向=人工知能
>>605
>なんでそういう「本来のオブジェクト指向」の実装が未だに現れないんだろうねえ不思議だねえって話
(第1章 はじめに 2頁)
たとえば、CycはFredという名前の男が朝にひげをそるという話が理解できなかった。
Cycの推論エンジンは、この話の中に矛盾を見つけた。Cycは人間には電気の部品がないことは知っているが、
Fredが電気カミソリを持っていたので、エンティティ「Fredがひげそり中(FredWhileShaving)」
には電気の部品が含まれていると考えた。したがって、CycはFredがひげをそっている間、
Fredはそれでも人間なのかと尋ねた。
『深層学習』
著者:
Ian Goodfellow, イアングッドフェロー,
Yoshua Bengio, ヨシュアベンジオ,
Aaron Courville, アーロンカービル >>131
>つまりオワコンとなったのは「クラスとその継承」
これは継承を使うしか無いでしょ?
>Fredが電気カミソリを持っていたので、
Fred
↑
電気カミソリ+Fred なんかすげえ伸びてるな
なんの議論してるのかだれか要約して >>609
わいは
>>571
が言ってる「本来のオブジェクト指向」ってのがおかしいと思ってるから、smalltalkが「本来のオブジェクト指向」に則って実装されてないのはなんでなんって話をしてるつもり >>607
昔はエージェント指向というのがあってなぁ。
AIの台頭で復権するかもね。
>>608
オブジェクト指向でも継承じゃなくて集約使う状況じゃない?
継承とか基本的にコンパイラの実装上の都合(性能とか)をプログラムの設計に押し付けているだけだから、安易に使うべきじゃないよ。 各種プログラミング言語の継承とかってコンパイル時には解決してるものなんだからコードの可読性が上がるのなら使っていくべきもの
安易に使うべきではないっていうのは、
・コンパイラ任せのプログラムを書くなってこと?
・コンパイル後でボイラーコードが増えてアホコードになるってこと?
・コンパイラに継承とかの解決をさせることが時間の無駄ってこと? 「装備品」ということなら集約かな?
>Cycは人間には電気の部品がないことは知っているが、
>Fredが電気カミソリを持っていたので、
<オブジェクト指向の集約について>
クラスが他のクラスの組み合わせで構成されている関係を集約(aggregation)と呼びます。
例えば、学校は生徒を含み注文商品は商品を持ちます。
集約では、含んでいる側が消滅しても、含まれている方はなくなりません。
例えば、生徒が変化しても学校は変わりませんし、注文商品が消滅しても商品は消滅しません。
http://wtar00.seesaa.net/article/438834930.html >>613
Vectorを継承してStackを作るようなヤツが現れないようにするためもあるぞ Pythonは多重継承だが?
>>612
>継承とか基本的にコンパイラの実装上の都合(性能とか)をプログラムの設計に押し付けているだけだから
オントロジーは、情報の親/子関係を表現できます。RDFドキュメントの例でも触れましたが、
オブジェクト指向の継承と同じ概念と理解いただいてもよいと思います。そして、
オントロジーの「継承」の特徴は、次のようにオブジェクト指向と近いものです。
子は親の情報(=設定値)を引き継ぐ
多重継承ができる。(継承した全てのクラスの定義を漏れなく引き継ぐ)
継承の関係は、「subClassOf」と表現します。「子 is a 親」という関係です。
https://qiita.com/mininobu/items/bce0e0ad97ed17e0aff2 >>613
設計の初期の段階でクラス継承関係みたいな変更しづらい仕様を固めなくてはならないのは「早すぎる最適化」だということ。
継承関係の変更はえてして根底からの設計変更が必要になるけど、設計が熟成する前にクラスの依存関係を確定するのは非常に難しい。
adaptorパターンとかで影響を減らすことはできるけど、それなら最初から継承関係用のadaptorを用意したほうがいい。
c++のコンセプトをそのまま変数の型に使用できればずいぶん楽になるんだけどな。 モダンなプログラミング言語
Go、Rust、Zig、Nim、Julia、Elixirは
クラスおよびその継承を言語仕様から排除している
クラス継承は悪手であるとプログラミング言語界では結論が出ている クラス継承が大事だつーなら、必ず多重継承も含めなければならなくなるからなw
随意筋 不随意筋
↖ ↗
チンポ
人工知能や自然言語処理なら、文脈によって語の意味が変化するから、多重継承必須ね!
618 デフォルトの名無しさん sage 2024/01/18(木) 21:03:06.30 ID:bwFEBIOM
モダンなプログラミング言語
Go、Rust、Zig、Nim、Julia、Elixirは
クラスおよびその継承を言語仕様から排除している
クラス継承は悪手であるとプログラミング言語界では結論が出ている Javaみたいな多重継承をサポートしていない言語なら、継承そのものを殆ど使わないほうがいいと思う
随意筋 不随意筋
↖ ↗
チンポ
継承を使う場合は、必ず多重継承をもサポートしなければならないのだから! さまざまなユースケースの必要なUIまわりくらいでしか継承はもはや必須じゃないよね
システムまわりでは継承使うとかえって将来的に保守をしにくくなる >>618
Rustはメッセージングもないけどな
Rustはオブジェクト指向じゃないという大きな根拠 rustは継承に変わる実装としてトレイトがある。継承はレガシーなゴミ技術だよ。
'''
オブジェクト指向言語の問題は、暗黙の環境を常に持ち歩いていることだ。
欲しかったのはバナナだけなのに、あなたが得たのはバナナを持っていたゴリラと、ジャングル全体だった。
Joe Armstrong
https://medium.com/@cscalfani/goodbye-object-oriented-programming-a59cda4c0e53
https://qiita.com/baby-degu/items/ae5777dad23ee6624ce2
''' 集約
独立して存在できる何かのコレクションがある場合
P.29
こちらは空港と飛行機で例えられています。
コンポジションのようなAとBの強い結びつきはありません。
https://qiita.com/gatapon/items/5e3292f897ab4f817001
ドラゴンクエストX
【主人公と職業】
・戦士
・僧侶
・魔法使い
・武闘家
・盗賊
・旅芸人
一般的に「オブジェクトの継承」が使われるが、この場合は「集約」でも代用可能だ
空港でどの飛行機を先に飛ばすかは、主人公がどの職業を選択するかに置き換えられる
プレイヤーの意思でコントロールできるからだ
>Cycは人間には電気の部品がないことは知っているが、
>Fredが電気カミソリを持っていたので、
装備品もプレイヤーが自分で選択可能だから、「集約」でも代用可能だ
class チンポ extends クリントン{
super.不適切な関係;
}
しかしながらクリントンが自分のチンポをコントロールすることは不可能
クリントンは同じクリントンでも、人格とチン格は違うからだ 継承は開発者の手腕によって神にも悪魔にもなる
きっちりとした仕様書とノウハウがあれば保守性に長けたプログラムがちゃんと出来上がるよ >>622
Rustも他の言語と同様にメソッド呼び出しがあり
内部構造の秘匿もできるため
オブジェクト指向 >>611
継承が必須だということなら、多重継承をサポートしていないJavaは欠陥言語となる
多重継承をサポートしていないということは即ち、他のやり方で代用できると考えていい
継承を使いこなしたいのであれば、Pythonのような多重継承をサポートしている言語をマスターすべき >>623
引用オナニー要らないよw
変態プレイは一人でやってください >>627
継承の継承を使えりゃ十分じゃね?
Kotlinやってるけど多重継承できなくて困ったことはない
あと改善版継承のようなsealed classは優秀 javaのやってる継承は継承もどき
本物の継承はpythonにしかできない ほんとはみんな継承をやりたいんじゃなくて、ポリモーフィズムと情報の隠蔽をやりたいだけなんだよね >>603-605
Erlangとかあるけどね
でもUnixなプロセスモデルに適合させようすると
変数とおなじアドレス空間にオブジェクトを置く
よくあるタイプになってしまう 情報隠蔽は情報不足と見分けがつかない
スクリプトに不足している情報を明示したいだけなのがGo、Rust >>633
まずはこの議論における基礎知識としてRustのトレイト(trait)を学習することをおすすめする >>632
そのへんも自分らが本来のオブジェクト指向を実装してるんだぜなんてことを言ってないことから、 >>571 の主張が出鱈目なのが分かっていいよね 「本来のオブジェクト志向」、体験するのが無理という難点がある
まさか令和の時代にSmalltalk触れってわけにもいかないし smalltalkのスレッドまわりはjavaとだいたい同じだった記憶があるし「本来のオブジェクト指向」とはきっと違うはず >>636
Smalltalkは多重継承をサポートしていないぞ? クラス継承ですらデメリットが大きいためモダンなプログラミング言語では採用されていないのに
クラス多重継承なんてあまりにもダメすぎるため採用しているメジャーな言語はPython Perl C++のダメ言語御三家のみ
クラス多重継承を採用していない言語が正しい 継承は凡人には使いこなせなかった
なので、機能として存在する意味がないし、下手に使うと有害なので廃止された 多重継承は曖昧だというが、自然言語処理はその曖昧さが大切になる。チンポは随意筋であり不随意筋である。
>>639
>クラス多重継承なんてあまりにもダメすぎるため
最終的に,クラス階層は最上位クラスを含めた
最大8 階層から構成され,「伝統的な日本の絵画」
に属する用語に対応する 55 クラスと解説文中か
ら抽出した139 クラスが配置された。ただし,そ
のうち 32 クラスが複数の上位クラスをもつとい
う多重継承が示された。例えば,「ngyc:絵巻物」
は「ngyc:伝統的な日本の絵画」と,「ngyc:表具の
形式」の下位クラスである「ngyc:巻子」の 2 つの
クラスを継承する(図 2)。こうした多重継承は,
本質属性をもつ基本概念と機能を表すロール概念
を分離することで,基本概念による属性継承に限
った階層関係に変更するという考え方もあり 10),
「ngyc:伝統的な日本の絵画」がロール概念で,
「ngyc:表具の形式」が基本概念と捉えることもで
きる。しかし,本研究ではテキストからの情報抽
出に即して配置し,多重継承を許容した階層を導
き出した。
http://www.mslis.jp/am2019yoko/05_kobayashi.pdf
随意筋 不随意筋
↖ ↗
チンポ テンプレートおよびジェネリクスは禁止で
それでいい 「なぜPythonが人気なのか」を機能性・転職市場・将来性の3視点で調査
Python入門
2023年11月24日
https://www.sejuku.net/blog/108069
>>639
>クラス多重継承なんてあまりにもダメすぎるため採用しているメジャーな言語はPython Perl C++のダメ言語御三家のみ
流行とかパラダイムが全てでは無いにせよ、オブジェクト指向=人工知能ということなら、
自然言語処理における意味解釈は語のルーツを掘り下げるための「多重継承」がメインになる
随意筋 不随意筋
↖ ↗
チンポ
文脈によって同一オブジェクトが真逆の振る舞いをするということね! もう継承はゴミってことで結論出てるのになんでそんなに無くてはならないって拘るの? >>647
最新調査でPythonが人気なのと、Pythonが多重継承をサポートしているのは、どう説明するのかな? 集約と継承を使い分けることが大切ね!
>>623
>欲しかったのはバナナだけなのに、あなたが得たのはバナナを持っていたゴリラと、ジャングル全体だった。
ジャングルーーーーーーーーーー
┃ ゴリラーーーー ┃ ┃ ┃ バナナ ┃ ┃
┃ ーーーーーーー ┃
┃ ┃
ーーーーーーーーーーーーーーー
クリントンーーーーーーーーーー
┃ ┃
┃ ┃
┃ ┃
┃ ┃
┃ ┃
ーーーーーーーーーーーーーーー
┃チンポ┃
 ̄ ̄ ̄ ̄ >>631
多態性・情報隠蔽ですら無くて、単にインスタンス間でやり取りするときのインターフェイスとプロトコルを確定しておきたいだけだよ。
継承みたいなコンパイラ都合のお作法はうざったいだけだし、インターフェイスとプロトコルを守っているなら多態かどうかもどうでもいい。結果的に多態になるけど、あくまで結果論。 >>648
pythonで複雑なシステムは普通の感性を持ってれば組まないし別にいいんじゃない?
継承がゴミだと言われる理由を考えてみて オブジェクト指向がオワコンというのは正しくて、よりインスタンス間のルール管理に注力した契約プログラムとかに発展的解消してんじゃないのかね。 >>650
インスタンス間でやり取りするときのインターフェイスとプロトコルを確定(カプセル化)することがまさしく不要な情報の隠蔽なのでは?
それでカプセル化したらポリモーフィズムに基づいてアクセスさせるか~みたいな感じでしょ? そんでカプセル化したものを継承させるのはプログラムが煩雑になるからやめましょうよ、継承の実装を省くならクラスもいらないねってそういう話じゃん >>646
多重継承の中でも型継承さえできれば十分ならインターフェースでよくね?
それなら他の言語でもできるぞい✌ >>653
そう、そう。
実装の結果ついてきた結果論。
スタートはインターフェイスとプロトコル。 オンラインゲームのアップデートは「カプセル化したものを継承」では?
>>654
>そんでカプセル化したものを継承させるのはプログラムが煩雑になるからやめましょうよ、
大型アップデート情報 バージョン6.5[後期] (2023/11/21 更新)
https://hiroba.dqx.jp/sc/topics/detail/0e4f5cc9f4f3f7f1651a6b9f9214e5b1/
システムのアップデートは一般的に「継承」と自分は思うが、丸ごと作り直したほうが良いのかな? 私見としてはオンラインゲームと言えども、大型バージョンアップ時は丸ごと作り直したほうがいいと思う
ドラクエ10のバージョン7ということなら、すべてを再インストール化でもいい >>657
オンラインゲームのアップデートってなに?もっと具体的に頼む
バグ修正?新機能の追加?新キャラの追加?
バグ修正や新機能はカプセル化の対応部分の丸ごと書き換え等いろいろあるだろうね
新キャラ追加はカプセル化したクラスモデルを継承して作り上げて、それをロードしてやれば、ポリモーフィズムに基づいて動いてくれるだろうね さすがにアプデを継承と考えるのはややこしくなるからやめたほうがいい >>659
>オンラインゲームのアップデートってなに?もっと具体的に頼む
オンラインゲームというのは、リリース後も次々とアップデートを繰り返し、機能が増えていきます。
よって、一番最初の設計で、どれだけ未来の変化を予測して、準備しておけるかが大事になってきます。
後になって苦しまないために、最初は多少面倒でも、柔軟でわかりやすい、変化に耐えうる設計を心がけたいものです。
https://developer.aiming-inc.com/programming/design-battle-program/
オブジェクト指向を初めて勉強していたころ、クラスの継承は(個人的には)理解しやすかったですが、
インターフェースはいまいち利点が分かりづらい印象がありました。
そこで、デザインパターンのひとつ「Observerパターン」を取り上げて、
継承とインターフェースの使用法を見ていきます。Observerパターンは先ほどの一斉攻撃にも近いパターンになります。
https://qiita.com/kcpoipoi/items/e6c495e7a481e02847d8 >>661
うん、新キャラ新技はカプセル化の継承だね
そんな表面層の部分を指して継承だ継承だ騒いでたの? あ、継承をゴミと言ってるのであって、インターフェースやトレイトは存分に使うべきものだから
勘違いしてもらったら困るぞ 新キャラ新技くらいならカプセル化の継承でもなくてインターフェースをただ実装するだけで済ませてるか>>661
自分の作品見てたら画面追加は継承を使ってたわ >>663
継承自体はただの機能なので良いも悪いもない。
継承を理解していない人、不適切な使い方をしている人が存在するだけ。
どんな使い方をしても不具合が出ない機能なんて無い。 >>665
大いに同意
継承は基底クラスがよほど煩雑にならない程度なら使ってもよい
ただ煩雑に組む輩等が多すぎたから継承を実装しないプログラム言語が生まれた
それだけなんだ >>665
継承は設計を初期の段階で固める「早すぎる最適化」だから避けるべき。
やるなら継承関係の実装だけ切り出したadapter用のholder templateを用意したほうがまだマシ。 >>670
それは将来の変更可能性が低くない場合。
実際変更可能性が低いケースなんかいくらでもあり、その場合避ける理由にならない。 >>670
つまりinterfaceで十分ってことだな _w 、... ョ ┌┐ ィ ′
 ̄+ ヘe、 j「. .¬气¬''..~''~ ,.ルw、.ーu、す
^^"~~l|~~^''' ォ′ .,. l| ┐ .√ j| _~+,.、.
. .,/. ょ_/ 、j「 { `¬.. 〃 .、l| 、
.. ~^. ~ ` ~^
. ;. ョ __
. j| ~ラ¬¬+ |.  ̄.  ̄..
. オ |.. ォ ,、
k、 ,j〃. L_. _ェ ~'――'~. ^^^^^^ ̄´
 ̄′  ̄ ̄ >>671
熟練の設計者が慣れた問題領域やるんでもなければ無理だろ。 >>672
だいたいインターフェイスで十分だわ。もっと機能強化したのが出てこないかね。
c++のコンセプトをインターフェイスに使いたいところ。 >>675
超大型建築より普通の一軒家の方が数、つまりニーズが圧倒的に多い
アプリは常にスケールする可能性がある、というのは理論的な話で実際スケールするアプリなんかほんの一握り。結局作ってそのままなんていくらでもある。変更が無いケースで熟練どうたらとか全く無関係。 >>677
普通の一軒家とか、問題領域の知識が無くて失敗する事例の宝庫だろ。あとになって大抵の人間は「コンセントが足りない」と言うしな。
変更しないままなのは「変更しなくていい」じゃなくて「変更は不可能に近いから不便・危険でも諦める」だからな。 結局継承で都合が悪いケースなんて極一部というのが現実。
ヤグニの原則に反して嬉しいのは客の金でただで勉強・実験したいエンジニアだけ。 >>679
まあ、いいんじゃない?
初期に設計したクソ仕様を客に「大したことはないから変更しない」と放置できるなら。 >>672
インターフェースだけだとコピペ継承が乱立するんだよ
そこでインターフェースのデフォルト実装等クラス継承と同じ実装継承を使うことになる
でもクラス継承はとにかく悪だと思ってる人は実装継承のメリットとデメリットを正しく理解できてないから結局同じ問題を引き起こすだけ >>681
インターフェイスと実装は永続性や影響範囲が違うんだから、密に関連づけるのは悪設計。
継承はさらに基底と派生の関係性もガチガチに固めるから、根元になる基底がクソ設計だとどうしようもない。 >>680
5chで勝手にクソ仕様認定してるクソレスを気にする人はいないw >>681
その点ではRustのtraitが最も良いね
Rustのtraitでのデフォルト実装は各型のメンバーや固有メソッドを呼び出せないので実装継承の問題が起きない
そのtrait(とそのtrait制約)のメソッドしか呼び出せないから移譲と合成の形になる >>685
こういう感じで言語によって前提が違う場合があるから抽象的な議論の有効性はかなり微妙 >>685
はい残念
Traitのデフォルト実装も実装継承だからクラス継承のデメリットの大半を”継承”してる
メリットとデメリットを理解して使い分けられるようにならないうちは結局のところ何使っても同じ >>687
いいえ
説明したようにRustのtraitに実装継承はありません >>687はコードを書いたことがないのか
あるいは意図的に嘘ついているのか インターフェースは継承と違ってインターフェースもとのプロパティをオーバーロードして定義し直すから、継承のわけわからん隠蔽されてないプロパティでごっちゃごちゃにならないのがいい(java民) オブシコくんどこいったん?
インターフェイスは人間が理解しやすくするためのものだと力説しなよ 疑似マルチスレッド君も反応ないんやけど、こないならQiita更新してくれよー >>685 >>687
これはデフォルト実装が同じtrait内メソッドと結合することまで実装継承と言うか話なんじゃないかな
実装継承の定義をtraitに拡張する時に生じた無理が意味の拡散を産んで無意味な争いを招いただけというかなんというか 書き途中で「書き込む」ボタンを押しちゃった。てへ
>>685 >>687
これはデフォルト実装が同じtrait内のメソッドと結合することまで実装継承と言うかという話なんじゃないか
実装継承の定義をtraitへ無理やり拡張する時に生じた意味の拡散ですれ違ってるだけに見える >>694
そもそもはある具体型A(もしくはクラスA以下同様)の実装が別の具体型Bの実装として継承されることを指すよね
一方でRustのトレイトのデフォルト実装では具体型の実装は全く出て来なくて具体型とは切り離されているよね
したがってある具体型の実装が別の具体型の実装として継承されることは起きないため明確かな 継承用の基底クラスを提供するのはライブラリやフレームワークで、フロント屋はその提供された基底クラスを継承して使う
フロント屋は用意された基底クラスを使う以外はインターフェースやシールドクラスで継承もどきをやるだけで事足りてる >>696
いま思い出したことなんだけど。具体型の継承はできないと思うけど、traitをtraitに実装するということが出来る
traitAにデフォルト実装を書いて、traitBに実装すると、traitBを実装した型はtraitAのデフォルト実装を引き継ぐ trait TraitA {
fn method_a(&self);
}
trait TraitB {
fn method_b(&self) {
println!("Method B called");
}
}
// TraitBをTraitAを実装するすべての型に対して実装する
impl<T: TraitA> TraitB for T {}
struct MyStruct;
// MyStructにTraitAを実装する
impl TraitA for MyStruct {
fn method_a(&self) {
println!("Method A called");
}
}
fn main() {
let my_struct = MyStruct;
my_struct.method_a(); // TraitAのメソッド
my_struct.method_b(); // TraitBのメソッド(TraitAを実装するため自動的に利用可能)
} Rustに多重継承は存在しないという場合、意味的にはフィールドを継承しないことと、
スーパートレイトを使用すれば、トレイトのデフォルト実装を別のトレイトに暗黙では引き継がないことを指すんじゃないかな
かな、というのは、まあここら辺は人によって受け取り方が違うから議論しても仕方のないことなんだけど >>700 >>701
それは実装継承ではないよ
なぜならtraitは具体型ではなく、さらにRustの場合はデフォルト実装から具体型の固有フィールド(メンバ変数)や固有メソッドに一切アクセスができない
つまり実装継承における問題が発生しない 実装継承ではないのか、実装継承における問題が発生しないだけなのか、どっちなんだい? >>704
両方
まず実装継承とは具体型の実装が別の具体型に継承されることだから該当しない
次に>>701が例示している件に対して
>// TraitBをTraitAを実装するすべての型に対して実装する
>impl<T: TraitA> TraitB for T {}
これは実装継承ではないだけでなく、類似しているように見えても、実装継承の問題と同じことは発生しない 実装継承ができないと不便じゃない?
リソース管理を一元化したくなったりとかしないの? >>706
Rustでは異なる型の間でコードを共有一元化するためにトレイト制約を使ってジェネリックにコードを書ける
そのコードは特定の型に対して一切書かれていないため実装継承とならないだけでなく実装継承と類似の問題も発生しない
>>707
Rustに実装継承はない ジェネリックで書いてコンパイラに整合性を取らせる
うむ、完璧だ Structの合成があるじゃないか
実装継承の問題が発生しないのはわかったけど
実装継承の便利さが失われてたら元も子もないじゃん
リソース管理を一元化したくなったりとかしないの? オブシコは機能とデータを一緒に管理することだけど
それができないRustは不便なのでRustは滅びます >>709
Rustはそのためにトレイト制約がありコンパイラは整合性を必ず確認できる
>>710
Rustではトレイト制約を伴うジェネリックコードにより異なる型間でも安全にコードを共有化できる
>>711
Rustでも型(データ)に対してメソッド(機能)を実装できる >>712
データにメソッドを生やして継承もできるん? オブシコにおいて実装の継承は正義です
Rustに正義はあるのかを問うています >>713
やりたいことの本質は異なる型の間でのコードの共有一元化でしょう
Rustではトレイト制約を用いて特定の型に依存しない形でコードの共有一元化ができます
>>714
オブジェクト指向に実装の継承は必要ありません 誰かさ、適当な文法で単一のC言語ソースファイルを出力するトランスレータ作ってくんない?
仮想関数テーブルとかRTTIとかそれならなんとかなるだろ? さすがRust有識者だ😳
トレイトへの理解度が高い 継承はすべてのオブジェクトに共通のデータと手続きを強制するからな
途中で一部しか共通してないオブジェクトの存在が判明したら、
クラスツリーをがっつり再設計しないといけなくなる
こんなものをオブシコに入れちゃったやつの罪は深い >機能とデータを一緒に
カリー化された関数を部分適用すればいい
じゃあ何故カリー化と部分適用はオワコンではないのか
無意味だからだ
意味を見出せないから終わったという判断もできない 能力の高いプログラマーしかプロジェクトに参加しないこと前提ならば継承の副作用は目立たないけど
Javaのような大規模開発向けの言語に継承を入れたのは間違ってたなあ
Javaの仕様を考えた時は、親クラスは能力の高いエンジニアが書くという前提だったんだろうね アスペクト指向との統一解ってことなのかな
ろくに勉強してないんだけど もともとアスペクト指向の提唱者たちが言い始めたことだからね
どんなに上手くクラスツリーを設計しても何らかのコードを横断的に埋め込みたくなるニーズがなくならないって Rustは学習コストが重すぎるからねえ
スタックフレームとか、ライフタイムとか、そこら辺の知識は普通のPGには余計だろう
Rustのスクリプト言語版が出たら流行るかなー >>723
お前Rustのことわかってない上にプログラムできないじゃん
つかとっとと埋めてしまえよこんなスレタイだけでキチガイがわくスレ
真面目に語りたい人ならマ板でやる >>729
俺のことは関係ない、俺は世の中のことを言ってる
そんなことも読み取れない認知能力チンパンジーの分際で
俺様に文句言うなんて100年早えわ
お前はRustだけ頑張ってろアホンダラ
俺は日本の未来を考えとく Rustの未来も俺が決める
Rustはもっとオブシコ頑張ったが良い
Rustは学習コストが高すぎると言われている
これはオブシコで解決できるはずだ Rustってそんなに学習コストが高いか?
C++11以降のがトチ狂ってると思うんだけど スマポより生ポのが気持ちいい
だからわたしは生ポインタ >>705
>まず実装継承とは具体型の実装が別の具体型に継承されることだから該当しない
これは間違い
実装継承とは文字通り「実装」が「継承」されること <== この意味を理解できるかどうかが重要
実装継承における問題というのはこれも文字通り「実装」が「継承」されることによって起きる
継承元が具体型扱いかどうかは関係ない
>>704
>実装継承ではないのか、実装継承における問題が発生しないだけなのか、どっちなんだい?
Rustのトレイトデフォルト実装は実装継承の一種でもあるし、実装継承ににおける問題も発生する
C++等一部の言語で発生する実装継承における問題の一つが発生しにくいようになってるだけ >>734
Rustに実装継承はない
Rustのトレイトのデフォルト実装では、いわゆるメンバ変数やメンバ関数にアクセスできない
したがってRustでは実装継承と同様の問題は発生しない トレイトはインターフェースとも継承とも違う新しい考え
そこを誤解してはならない >>735
実装は継承してるけれども実装継承ではない?
「募ってはいるが募集はしていない」より酷くね? >>737
Rustに実装継承はない
Rustのトレイトのデフォルト実装からは、いわゆるメンバ変数やメンバ関数にアクセスできない
メンバ変数やメンバ関数にアクセスできる部分はトレイトのデフォルト実装から分離されている
その部分はトレイトを実装するときに各型で個別に実装する
したがってRustでは実装継承はなく問題も発生しない 実装継承は派生側に開放する部分と基底側で閉鎖する部分の管理が難しいから、やはり「早すぎる最適化」になりがち。
開放/閉鎖の原則を守るためには基底側と派生側のインターフェイスとプロトコルを厳密に管理する必要があるけど、そこまでサポートしているオブジェクト指向言語てあったっけ? >>736
トレイトてこのこと?
まずは認識合わせをしないとな。
ja.m.wikipedia.org/wiki/%E3%83%88%E3%83%AC%E3%82%A4%E3%83%88 最新鋭のRust言語と同等の最小コンパイル単位でよければもっとクリーンなオブジェクト指向言語があり得たって話で、
残念なことに30年前のハードウェアでやんなきゃいけなかった
仮想関数の方がデフォであるようなC++
文字列じゃなくて関数ポインタの配列のインデックスであるようなObjective-C
ガベコレの無いJava
こだわる人は今からでも作ればいい
ソースを一気に引数に取って単一のC言語のソースファイルを出力するトランスレータを作ればいい オブシコプログラムの難しいところってオブジェクト同士の連携が
オブジェクトに書かれるところだと思うんだよ
全体のフローがよくわからなくなる
オブジェクトには自律的に他のオブジェクトと連携することをやらなくさせて
コーディネートする処理を関数型や手続き型で書くのがいんじゃないかね
昔はオブジェクトが知性を持ってるかのように書くのが良いオブシコだと言われてたけど
スパゲティ製造工場にしかならんかった ObjectiveCの[]←こんな奴でメッセージ送ると幸せになれるよ フロー制御をオブシコでやりだしたら危険信号、これがぼくの経験から導き出された結論 >>738
基本的な実装継承の問題を理解してないから話噛み合わないね
メンバ変数・メンバ関数の話はFragile Base Class Problem(FBCP)について言及してるつもりなんだろうけど
メンバ変数やメンバ関数にアクセスできるかどうかはFBCPの根本的な発生条件とは関係ないよ
継承元のメソッド実装がオーバーライドされた継承先のメソッドを呼び出せるならFBCPは発生する
当たり前だけどFBCPは実装継承の問題のうちの一つであってすべてではないからね
ちなみにトレイトのデフォルト実装も別のトレイトのメソッド経由でメンバ変数やメンバ関数にアクセスできる
クラス継承でベースクラスのメソッドがオーバーライドされたメソッド経由でメンバ変数やメンバ関数にアクセスするのと同じ >>744
イベントループをブラックボックス化したのは
「次のイベント」の種類ごとに分岐する際にifならbool値、switchなら整数のようなものしか
使えない言語の問題をライブラリでなんとかしようとした結果だ ついでに言っておくとRustのDeref/DerefMutも実装継承の一種なんだけどこっちはFBCPは発生しない >>746
Rustには基底クラスが存在しないため
FBCPも含めて実装継承に関する問題は発生しないよ 影響力ゼロの人がどれだけオワコンオワコン繰り返しても全く影響無い。 それなら人の力ではなく天変地異の影響を主に想定したほうがいい 妻がダイエットのために乗馬を始めたんだけど一ヶ月で10キロ痩せたよ
馬がね has a関係は被害者と加害者が別人で、責任の連鎖がある
鎖を切って悪い影響を0にする変更はしやすい
is aは影響力を不変にする
責任の連鎖をなくして自分自身の責任とする 241 伝説の名無しさん sage 2020/10/13(火) 15:00:15.08
「胸がドキドキする」というのはいわば生理現象であり、抑えることはほぼ不可能だ。
月末のクレジットカードの支払額に、想像以上に可愛かったデリヘル嬢のおマンコにと胸を
突かれるのは悪いことではない。
翻って「チンポがシコシコする」というのは能動的な衝動であり、極めて不埒な責任転嫁である。
シコシコはチンポが勝手にやったことであり、決してチンポの持ち主の意向ではないという、どこぞの
政治家の「秘書が勝手にやったこと」のような言い逃れがしばしば聞かれ、あまつさえそれがまかり
通ってきたことは周知の事実である。
チンポからシコシコを奪取し、各人の掌に戻る日は果たしてやってくるのだろうか……。 責任という概念自体に違和感を表明する者がよくいるが
馬クラスと動物クラスには責任の擦り合いや利害対立がなさそうなところが共感されるんじゃないか 令和になっても継承批判は聞きたくないね
手垢ついてるとかいうレベルじゃないぞ
OOPには価値がない
OOPのメリットとやらは無意味だ
というふうな大きい批判が聞きたい あ、>>756は別に特定のレスにむけたレスじゃなくて
ざっくりとした意見ね オブジェクト指向は継承という一つの要素が終わっただけだしなあ
未だ現役すぎる 何らかの違和感の解消がオブジェクト指向のメリットだとするなら
元から違和感などなかった奴にとって無価値である >>756
概念的にはインターフェイスとコンポジションに発展的解消したから、オブジェクト指向はオワコンだろ。 インターフェイスもコンポジションも人間が簡易に理解するためのものだろ
なめてんのか >>761
それオブジェクトの継承が別の概念に変わっただけでカプセル化とポリモーフィズムは健在じゃん…
もっとおもしろいこと言ってくれ… オブジェクト指向プログラミングのコアコンセプトは「データと操作をまとめて一つの型として扱うこと」これだけ
オブジェクト指向プログラミングではなくオブジェクト指向言語といった場合は
ブーチの定義が普及したせいでカプセル化、ポリモーフィズム(基本はサブタイプポリモーフィズム)、継承の3点セットを基準にすることが多いが
言語機能としての継承はオブジェクト指向プログラミングに必須のものではないし
ポリモーフィズムもオブジェクト指向言語特有のものではないので両方ともコアコンセプトではない >>763
オブジェクトのカプセル化はインターフェイスとデータを密結合するけど、インターフェイスによるカプセル化はデータと密結合しない。
オブジェクトのポリモーフィズムはオブジェクト同士が(継承関係とかで)密結合するけど、インターフェイスは継承関係とかの密接な関係を結ぶこと無しに(理想的には)ダックタイピングで多態できる。
まあ、そこまでのダックタイピングをサポートするインターフェイスとか知らんけど。
c++のコンセプトがそのまま型になったらいいんだけどなぁ。 オブジェクトという言葉と同じでカプセル化という言葉は人によって意味が違うので困る 70 名無しヒーリング 2021/04/26(月) 09:45:57.57 ID:jZDy/LpM
先生、実際にシコシコするのはチンポでなく俺の右手だと思います。
✖チンポがシコシコする
○ 俺の右手がチンポをシコシコする
71 名無しヒーリング 2021/04/26(月) 09:56:38.18 ID:jZDy/LpM
あと、「胸がドキドキする」と「チンポをシコシコする」は比較対象になりません。
「胸がドキドキする」は「チンポがヒリヒリする」のように状態・感覚を擬音語で現しているのであって、
「チンポをシコシコする」は「胸をモミモミする」の様に人間や動物が対象に対して何かを行う行為の表現だと思います。 >>767
だからシコシコは男性器を擦る擬音で勃起のことではない
君は女性かな?
それともシコシコが勃起を表す地方が日本のどこかにあるのか
どっちにしろいくらがんばってもメジャーなコピペになれないのは大多数の人に表現がピンとこないのが原因だと思うよ PHPでアブストラクトやりまくってる
これやってればいい
ここまで来るのに2年かかったわ 再利用しようにもパーツに分解できない大きなプログラムのスパゲッティ化を防ぐために
ひと塊のルーチンを“関数”として入り口出口を決めましょうがカリー化まで続く一方の流れで
その塊をどうやって集団として機能に固めたり制御するのかを考えるのがオブジェクト指向
そういう上位レベルでの制御やメンテナンスの汎用的な考えから出てきた概念を
小さいレベルでのプログラムAの脚を車輪に付け替えるにはとか
プログラムAの塊を継承してプログラムBにするのが“オブジェクト指向”なんだよ!って
鬼子でしかないC++最初に来ちゃったせいで現代に至るまで
あれがオブジェクト指向だと思い込んでるおじいちゃんがですね… おじいちゃん構文丸出しでおじいちゃん批判ww
しかも中身が間違いだらけとかwww インターフェース楽しいな~
継承無しでコーディングできる~ >ひと塊のルーチンを“関数”として入り口出口を決めましょう
これ現役引退してるような世代の方ですよね? 横断的関心事の意味が分からんと常々思っていたけど
役割で固めるのをやめるという意味なのかね
固めようと思ったことがない奴にとっては無意味なことだ オブジェクト指向はモジュラリティを高めるために考え出されたものだが「どの抽象化階層のモジュラリティを高めるものなのか」という大前提を理解していないと何を見てもオブジェクト指向だと感じるようになる そりゃオブシコするぐらいだからモジャラリティは高いだろ 1. 簡単な言葉を使う
頭が良い人は、複雑なことや専門知識も「簡単な言葉」で説明することができます。
この能力は、深い理解があるからできること。相手が理解しやすいように情報を整理して伝えることは思いやりでもあります。
https://news.yahoo.co.jp/expert/articles/9bb7a62121796847a941127e3d5040008fedd464
クリントン大統領にどんな強大な権限が有っても、自らのチンポがしこしこしてしまうのは止められない!
class チンポ extends クリントン{
super.不適切な関係;
}
クリントンの再定義、クリントンの拡張された人格ということだ! 世界一オブジェクト指向に忠実なメインクラスできたで
class Main():
def do():
pass
m=Main()
m.do() has a関係は抽象度の低いクラスを参照することはマナー違反ではない
is a関係は自分よりも抽象度低いクラスを継承したらマナー違反だよな 継承を理解してれば問題無い
理解していないけどら問題無く使える道具は存在しない
つまり須く低レベルということ >>786
俺は使えるから問題ないんだが部下や上司に無能がいると困る
全ての言語で機能ごと消去するべき C/C++でいいところを無能のためにRustでわざわざメモリ管理を強制的に縛るのと一緒やね オブジェクト指向って>>1みたいな頭の悪い人でもプログラミングできるようにするためにあるんだよ
難しいのは>>1みたいな馬鹿が>>1みたいな馬鹿のためにオブジェクト指向に則ってプログラミングする行為であり、>>1みたいな馬鹿がオブジェクト指向で設計されたコードを扱うのは難しくない
オブジェクト指向がオワコンな訳が無い >>787
無能がいる限り何の解決にもなってない
リスクが下がったと勘違いしてるだけ >>788
Rustを使えない無能がC/C++を使って穴を生み出し続けている現実を見ようぜ >>791
その無能がrust使ったところでろくなものは生み出せない
包丁で怪我する人がいるから包丁は悪、と言ってるのと同じ。
別に主張するのは自由だがそれで包丁が消滅することはない 頭の悪い人がプログラミングできるためってたまに見るけど疑わしいわ
頭の悪い人がちゃんと設計して、多態性を活用してるのを見たことがない
ただメモリの自動解放とかライブラリに頼ってるだけで、
そういう利便性はオブジェクト指向とあんまり関係なくね? 知らないのか?今は転職ブームのせいで文系出身の頭悪いプログラマが大量発生してる
そいつらのせいで言語が変わらなくては生けない時代になった >>796
無能じゃコンパイル通せないから動かせない
つまり逆に悪くなってる >>797
無能が進捗管理で炙り出されるから全然マシ コンパイル通すのが難しいと無能はコンパイル通ったからOKという感覚になるので一長一短
何事も良い面悪い面があるのに無能は片面だけしか見ない >>800
最低限コンパイラの通れば多少見れるコードになってるので、有能がコードをレビューしやすい >>798
それは言語の役割じゃない
全然マシでもなんでもなくて草 >>799
どっちでも一緒
納品できないのに「本番でバグが出るよりは良い」と言い張るのはアタオカ 現実は納期というものがあるから効率重視でCC++使って適当に作れたほうがありがたいんだよなあ
バグなんてある程度は知らんぷりしていい
わざわざRustを使って完璧を求めるのは無駄 長所も短所も両方知っている知識人を理想とするのは
商売とはあまり関係ない理想だ
商売を重視しないのであれば長所も短所もわりとどうでもいい >>801
コンパイルを通しやすいかどうかとコードが見やすくなるかどうかに正の相関関係は無い
加えてコンパイルを通しにくくなればなるほどコンパイルを通すための手助けが当然必要になる
「身の丈に合った言語を」 by 萩豚 Rust習得できない馬鹿が書いたC++コードの保守、やりたくなさすぎる >>803
本番でバグとか酷い炎上案件。
クライアントにとっては悪夢ですなぁ。
納期遅れのほうがまだ見える分マシ。 >>806
コンパイルできる人材を確保できるかどうかは中途採用ガチャしまくればいける
コンパイルできねえやつは捨てる、それだけだ >>808
都合良く「納品はできる」妄想を前提として話を進められるならどうとでもなる
結局無能でもどうにかなるなんて全く現実的ではない、rust信者の詐欺的妄言なのでどっちでも一緒 >>809
技術者をまともに育成する術も評価する術も持たずガチャするしか脳の無い無能企業には有能なやつほど寄り付かない
そうなると渋いと評判の某ガチャUR排出確率並み(0.3%)になるから100回回しても有能1人雇える確率は3割にも満たない
運良く雇えてたとしても数年以内に転職して抜ける確率は逆に8割以上
身の丈に合わない選択は破滅への近道 どこまでオブジェクト設計するべきかが良くわからん
例えばトランプゲームを作ろうとした時のカードについて
数字込みの絵柄と表示用の画像くらいしか必要ないと思うけど
わざわざCardクラスCardDeckクラスとかを用意する必要があるの?とか Deckが内包するデータはCardの配列のみだとしても
シャッフルやドローなんかの操作を配列として外から行うより
Deckとして備えてる方がシンプルに保てそう >>813
クラス以外のユーザー定義型がないならオブジェクト指向よりの作り方でなくてもCardクラスやCardDeckクラスくらいは作るんじゃない?
それらにメソッドを生やしてゲームルールを実装していくのか
それともそれらをデータとして扱う関数を別のところに書くことでゲームルールを実装していくのか
それぞれ良い点悪い点があるので一度両方で作ってみるといいと思う >>814
DeckモジュールとかGameモジュールにドローやシャッフルなどのDeckを操作する処理をまとめておくってのでも別に不都合ないよね? enumがオブジェクトではない言語では迷うが
すべてがオブジェクトだったらenum Cardでいいのでは スートが切り札(トランプ)に変わるようなゲームでは
判定で「こいつはいまトランプだから」で例外処理するのか
カード側で「いまトランプです」したらいいのかの設計の話だわな >>793
>ライブラリに頼ってるだけで
そのライブラリに頼ってるだけを実現できるのがオブジェクト指向の功績だと思ってる
昔のWin32APIみたいなライブラリとインスタンス生成してからインスタンス.メソッド形式で利用するライブラリと比較したらライブラリの扱いに対するお手軽&簡単度合いがぜんぜん違う いやwin32apiだろうがapiそのものがすでに「オブジェクト指向」だから
手軽とか簡単とかはオブジェクト指向とっくに通り越してそのように改良された結果ってだけ
このスレ見てると「オブジェクト指向」が特別なナニカだと思ってる人も多くてアランケイも困惑するよw 「オブジェクト指向」が特別なナニカじゃないのであれば、「オブジェクト指向プログラミング言語」は「プログラミング言語」でよくなってしまう
これまで「オブジェクト指向プログラミング言語」という言葉を使った人間はとんでもないガイジということになる 20年前のあれは何だった?どいつもこいつもオブジェクトだーと喚いてたくせに。屑どもが ここまでくると糖質っぽいな
オブジェクト指向はオワコンと言い続けて何年経過してんだよw オブシコオhル
けど、脳汁が出るのは、なんでもアリなC++なんだよなあ これこれ
オウムみたいな感じ
はなから議論をする気が無い
オワコンオワコン繰り返して気持ちよくなるだけ 非論理的=気持ちよくなる
専門用語を回避する現象? 自分がオブジェクト指向で挫折したから
あんなの一時の流行りでしかない!って喚いて溜飲を下げようとしてるけど
そもそも理解しないで挫折してるから「あんなの」が永久に
90年代のC++の時の“自動車の車輪を付け替える”からアップデートしない アップデートという目標は分かったが現時点では違う目標を持つ者にとって
ふつうに考えると目標を達成するためには目標を変更しないのが合理的
問題は、どうすれば永久に合理的であり続けるのをやめられるか 俺がいる
中途半端ってぶっちゃけ怖いよね
>>826
議論っていうか、使えと言われた言語・ライブラリ(SDK)使うんだからね結局
好き・嫌い、とかって雑談してりゃいいんだよ
俺は、継承を使いこなせるいい漢になりたいぜ オブジェクト指向だろうがオブジェクト指向言語だろうが語りたいのならマ板でやれ
雑談どころかここで議論とか正気かよ。議論してもプログラム技術の役に立たないくらいわかるよな >>831
はっきり言う、お前はオブシコのことを何もわかってない
>>832
お前もだ
オブシコは挫折してからが始まりだ intではなくてMoneyだ
Moneyを継承してYenを作れ
stringではなくてAddressだ
Addressを継承してPrefectureを作れ
本物のオブジェクト指向を経験しろ
ぜったい挫折するから >intではなくてMoneyだ
当たり前
>Moneyを継承してYenを作れ
意味不明
オブジェクト指向で作るならYenはMoneyの一属性
>stringではなくてAddressだ
当たり前
>Addressを継承してPrefectureを作れ
意味不明
オブジェクト指向だから挫折したのではなく間違ったオブジェクト指向を学ぼうとしたから挫折したんだな >>832
ムに置いときゃ、ムに資するネタがまじるけどね
俺は後から来たけど >>835
MoneyにbaseCurrency問い合わせると“Yen”って返すように作るよなぁオブジェクトなんだから >>824
本当にオワコン化したものは話題にすらならんよ
今どきポケベルはオワコンなんてスレ建てる奴なんていないだろ?
つまり、そういうこと ポケベルを話題にした自分自身を否定するより
オブジェクト指向にファイティングポーズする方がよっぽどポジティブじゃないか APIやライブラリを一切使わず、自分自身で「処理をしてオブジェクトを返す部分」も作らずにどんなプログラムが作れるんだよ
現代でプログラム書いてるやつは意識しなくても使うしか無い手法じゃないか
使わずにHelloWorldすら書くのは超難しい システムコールだけでHello Worldやるの無茶大変だった思い出 API使ってればオブジェクト指向とか頭になんか湧いてるだろ 「APIそのものがオブジェクト指向」だと主張してるやつはいるね>>820 とりあえず1000行くらいベタ打ちでプログラム書いて
書いたのをリファクタリングついでにクラス分けして
またダーッと書いてって繰り返せばいいよね? >>847
今世紀に出てきた様々なプログラミング言語はほとんどがクラスをサポートしていない
クラスは役に立たず害が大きいとの共通認識があるため APIは今でも関数とグローバル変数
stdinとかstdoutとか
グローバル変数が一番最初にオワコン化し、オブジェクト指向は二番目以降と想定された オブシコで書かれたAPIとかライブラリってのならある。ってなら書いた
COMとかね 原理的には、ラッパがあれば、避けることはできる これで動くOSあるなら分からんでもない
OS.boot() >>848
事実認識ができてない
JavaScript、C#、Python、Ruby、C++、Java、Kotlin
クラス扱える言語はいくらでもあるし、そもそもクラスや継承を使えない=オブジェクト指向じゃないって訳では無い
クラスはお前みたいな馬鹿には使いこなせないからクラス以外でオブジェクト指向な書ける方法が模索されたんだよw どの言語かに関係なく
クラス継承でプログラミングするやつはバカしかいない 特定のルートクラスに縛られる継承はだいぶむかしにオブジェクト指向のあまり良くない実装として
仕様を残しながら使わない方がベターになってるわな
使うクラスをオブジェクトとして別個にクラスに組み込むコンポジションの方が主流
「継承というのがオブジェクト指向!」とかいつの時代のおじいちゃんだよ あの当時の人なら一度は、オレオレプロジェクトで継承を使いすぎた経験ってあると思うのね 継承しまくって訳わからん事になるなら新しいクラスにした方がいいと思うけどなあ
File
-◯◯FileBase
--◯◯FileStructure
---◯◯FileModel
----◯◯FileInstance
みたいなのよりFile2を定義し直した方が遥かにマシ ファイル名なんかもそうだが
File_20240219
のようなユニークIDつけておくといくら被っても困らない 重複(安易なコピペ)コードはちょっとでもいけませんってきつく言われて、
それを避けるように継承をテキトーに使いすぎた記憶はあるんだよね
is-a 原則を守って、責任者が正しく設計しましょう 似たようなコードが出るなら、サブルーチンにすりゃよかったんだけどね
あの頃は名前空間をあんまり使いこなせてなくて、なんでもクラスに押し込みゃいいと思ってた >>855
と、継承すら理解できない素人が申しております Rustが重複コードは二度と書かないってポリシーだっけ
最初の一歩踏み出すのにとんでもなく時間かかりそう 何をもって重複コードとみなすのかなぁ
たまたま別の機能で同じコードになったとかは
まとめると後で痛い目に遭うよな? >>864
Rustは書かなきゃいけないボイラープレートが多いから重複コードも多い
コピペ継承とマクロ継承がよく使われてる c++ コンセプトをそのまま変数のインターフェイスに使えればなぁ、と思う事はある。 >>864
Rustも他の言語と同様に重複コードがあれば関数として切り出すだけだよ
その時に異なる型に対してもトレイト境界により安全にジェネリック化がしやすく多用されてるね
>>866
Rustは継承ではなく合成と移譲をするためその宣言は増えるけどそれらを重複コードとみなすのはありえないよ >>868
どういう構造で作られているかは重複コードとみなすかどうかには一切関係ない
変更をロックステップで適用しなければいけないのならどういうものであれそれらは重複コード スマポみたいな機能の重複回避には昔は継承を使った
今はジェネリクスを使う
昔の方法ではスタックのint型とヒープのInt型を統一できない すべての型に対して全て同じ実装でよければジェネリクスで良いが一部の型でカスタマイズが必要になるといろんな障害が出てくる >>871
それは普通によく起こることだが全く問題ない
その型ごとの差異の機能を合成するだけで対応できる
もちろんジェネリクスのままでよい インタプリタならそれでいいんだけどね。。(個人の感想です 一部の型でカスタマイズが必要な場合にジェネリクスを使おうとすると将来を見通したカスタマイズポイントを最初に確定しておく必要があって多くの場合現実的ではない
要はOCPを満たせないので変更に対して弱く保守性の低いプログラムになる
加えてRustではcoherenceの制限だったりspecializationやHKTが未サポートだったりで使える状況がかなり限定されている >>873
Rustでも>>872の「その型ごとの差異の機能を合成するだけでジェネリクスのまま対応」できるよ
Rustは必要な機能のトレイト境界を指定することでコンパイル時点で静的にジェネリクスでも安全に呼び出すことが保証されるよ
呼び出し方法は静的ディスパッチによる単相化またはvtable利用の動的ディスパッチどちらも選択できるよ >>876
大規模開発もできるように作られたRustについて真逆のウソはよくないよ
既に大規模開発で採用しているGoogle Microsoft Amazonといった大手IT企業たちが
共同でRust Foundationを設立して資金を出して安定した環境でさらなる開発が進められているよ 既にクラウドやCDNなどネットインフラは次々とRust製へ変わった
ソース
>【クラウド世界トップシェアAWS】
>https://japan.zdnet.com/article/35183866/
>Rustで構築されたAWSサービスの例としては、
>コンテナーアプリ用のサーバーレスプラットフォーム「Lamba」を支える「Firecracker」、
>「Amazоn Simple Storage Service(S3)」、
>「Аmazоn Elastic Compute Cloud(EC2)」、
>コンテンツ配信ネットワーク「Аmazоn CloudFront」、
>LinuxベースのコンテナーOS「Bottlerocket」などがある。
>【CDN世界トップシェアClоudflare】
>https://www.publickey1.jp/blog/22/cloudflarenginxrusthttppingoracdncpu31.html
>CDNプロバイダのCloudflareは、同社のグローバルなCDNの基盤として長らく利用してきたNGINXに代えて、
>同社自身がRust製のHTTPプロキシである「Pingora」を開発し利 用していることを明らかにしました。 大規模開発以外はオワコンゆえに構造化プログラミングはオワコン
というのがオブジェクト指向の原点なのでオワコン論法を今更やめられない >>877
そのどれもが大規模開発じゃ無いぞ
使われてるがチームは数名だぞ 数名で各ネットインフラをRustで開発できるなら今後はRustでいいな 「うちは大規模開発でやってる」という発言が出ないで、他人の情報に反応してそういう結論に切り替えるってことは
つまり自分らでは使ってないってことかいな 大規模開発は人数揃えるのが何より大切だからな
COBOLかJava以外ありえない MVCで入力処理ってどこにおくべき?
AIとかに聞くとCに置けって言ってくるけど
移植(ライブラリ変更等)時に描画系入力系を
まとめてVに置いておくと楽だと思うんだけど いまだにMVCとかやってるから海外のアプリに勝てないんだよな M: 変数
V: public関数
C: private関数 >>887
MVCといってもクライアントサイドのMVCとサーバーサイドのMVCで考え方が違う
また入力処理と言っても人によって指すものが違うので具体的にどういう処理を入力処理とみなしているか書かないとわからない
さらに移植とライブラリ変更は一般的に違うものなので想定状況が伝わらない M: member
V: virtual
C: constexpr
// 空目 用語や形にこだわるより先に仕様通り動くもの作れ。くだらないこだわりで何も始められないのはただのアホ >>887
元々は移植性のためにモデルはそのまんま環境と切り離した処理そのものを
ヴューは人間の目に触れる画面レイアウト周り、そしてコントローラーは
それらを繋ぐインターフェイスとして実装という考え方なので
ゲームをPC、コンシュマー、モバイルと移植します画面周りはVです
操作されるゲームの中身はMです、つなぐ部分はCです
…ん?マウスと十字キーとタッチパネル対応はどこまでがCだ?ってなるけど
AIに聞けばテンプレどおりそら「Cに分けなさい」言われるわな ゲームとビジネスアプリとでは違って来るよな
ゲームなら🎮や⌨はCだが、ビジネスアプリでは単にVの付属物だったりする うそやん
マウス対応やタッチパネル対応はViewやぞ
AIに聞いてもそう答えるぞ 「入力」の抽象度の違い
ビューに依存した入力とそこから一段階抽象度が上がったビューに依存しない入力がある
それを認識できてればどこに含めるか迷わない https://twitter.com/mayappy0627/status/1725074809883898273
M a y a ♡🏳⚧ヽ(๑╹◡╹)v🏳🌈
@mayappy0627
「シスヘテロ男性が女湯に入りたい目的で嘘をついて診断書を取得し性別適合手術を受ける可能性がある」
という言説がいまだに流れている様だが
女湯入ってオカズ目に焼き付けてもチン◯ないからシコれませんのでね。つまり男性的快楽は得られないという結末の一つさえ想定できないんでしょうかね?
午後5:54 · 2023年11月16日
·
https://twitter.com/thejimwatkins きんたま切り落とした時点で男性ホルモンは著しく減衰して性欲は無くなるよ🥲 class Man(Human):
...
def do_chinko():
if (chinko is None): return None
return finish()
... >女湯入ってオカズ目に焼き付けてもチン◯ないからシコれませんのでね
人間に独立した人格が有るように、チンポにも独立したチン格が有る
これは親クラスと子クラスの継承関係である
チン格とはつまり「愚息」であり、自分にも他人にも成り得る
これがオブジェクトの多態性と表現される
オシッコするときのチンポは随意筋、勃起するときのチンポは不随意筋
このように時と場合によって真逆の性質を併せ持つことができる
随意筋 不随意筋
↖ ↗
チンポ
自然言語処理において語の意味は文脈によって変わるので、Pythonのような多重継承が不可欠ね! 機能するかどうかだけが問題で、欲求があるかどうかはあんまり関係無いよな オブジェクト指向では、オブジェクトの「機能」を意識することが大切ね!
>>903
>機能するかどうかだけが問題で
オブジェクト指向(OOP) は、データとそれに関連するメソッドを 「クラス」という単位でまとめて管理する開発手法です。
このアプローチにより、開発者は複雑な機能も再利用可能なモジュールとして効率的に構築できます。例えば、
新しい機能を開発する際、既存のクラスから必要なデータを取得し、必要に応じて新しい機能を追加することが可能です。
https://zenn.dev/cloud_ace/articles/29748ac0537c7f モダンなプログラミング言語
Go、Rust、Zig、Nim、Julia、Elixirなどは
クラスおよびその継承を言語仕様から排除しておりクラスは存在しない
各々の言語は全く異なる方針を採っている言語だがクラス排除だけは全てが同じ方針である
クラスとその継承は悪手であるとプログラミング言語界では結論が出ている むしろ、何段も継承されてわけわからん事になるのが嫌われてるだけなので
swiftなんかはfinalつけてサブサブクラス禁止できるようにしてるな >>905
クラスと呼ばれるものがないだけで
メソッドを生やせる構造体も継承も
Elixir以外のすべての言語に存在する
君が無知なだけ クラスが存在しないことが最重要だからクラスを採用しない言語が増えてるんだよ
クラスは間違った手法『具象型から具象型への継承』となる禁忌のクラス継承を伴うからね
オブジェクト指向に必要なカプセル化は構造体などでもちろん可能だから
オブジェクト指向にはクラスは不要だよ
そしてインターフェイスや型クラスなどによる正しい手法『抽象型から具象型への継承』が代わりにあればよい
モダンな各プログラミング言語はそれらの方針をとっている
だからクラスが採用されてないんだよ
クラスは悪 継承に親兄弟を殺された人がいるようだが 世界は残酷なのだ 悪い→『具象型から具象型への継承』←クラス
良い→『抽象型から具象型への継承』←インターフェース・型クラスなど 要は個人開発レベル小規模webサイトレベルなら継承の類不要?つうかDIだけでは駄目なん? 規模にかかわらず同じ
抽象型からの継承は問題ない
クラス継承はダメ >>914
「抽象型の仕様が安定している限り」な。
抽象型の改変が入ったらインパクトが大きい。 そこでダックタイピング(の併用)だな
うん、継承一本ってのは、人類には早かった クラス継承は具象型からの継承なので多重継承の問題が発生する悪い方法だが
抽象型からの継承は多数あっても合成となり良い方法
>>915
抽象型は各機能毎に細かく多数用意されて合成して使うためそのような問題が起きない
抽象型の改変とは機能を変えることになるため別の抽象型として並行して扱える >>917
なら設計の初期に細かく多数の抽象型を決めなきゃいけない、ということになるわな。
未来を予測できる天才でもなければ厳しいな。 まあ、たいていのクラス設計は
製造終盤になると跡形も無いんだがな >>918
クラスはピラミッド型の階層構造となり改変で他へ影響が大きく出る問題があり
クラスは具象型なのでそれ自体がメンバ変数(フィールド変数)を持ち途中階層のクラスも持つため改変が非常に大変もしくは崩壊となりがち
抽象型でメンバ変数(フィールド変数)を持たないインタフェイスや型クラスではその問題が起きない
それら抽象型による各機能の合成をとるため改変する場合も他機能への影響が限定的となり問題を分離することができる >>920
メンバ変数の無い抽象型であっても、分離できるのは実装部分でしかなくて、「機能ではなく型の種類&名前で縛られる」という設計の初期の困難さは回避できていないよ。
まぁ、インターフェイスとかトレイル(Rustの偽物は論外)とかでもモジュール境界とモジュール間連携の問題は解決できていないからなぁ。何かいいアイディア無い? クラスとかメソッド集合としての機能だけあればいい。
その代わりに外延性と集合演算をサポートしてくれ。そうすりゃ継承みたいなクソツールは要らなくなる。 クラスとか継承とかに不満持つのは不思議なんだが、他人の作ったコードやライブラリをうまく流用出来ずに文句言ってるのか?
自分で作る分には言語の機能にあっても使わなきゃいいだけだろうに
他の人が理解できないからだ、ってのならその「他の人」に言え >>930
クラス継承については全員が問題視している
Javaの生みの親ですらJavaを作り直せるならクラスを除外すると明言している
そして現実にモダンなプログラミング言語
Go、Rust、Zig、Nim、Julia、Elixirなど全てがクラスを除外している
>Javaのユーザグループミーティングに出席した際、
>James Gosling(Javaの生みの親)がメインの講演者として招かれていました。
>すばらしいQ&Aセッションの途中に、こんな質問が出ました。
>「もう一度最初からJavaを作り直すとしたら、どこを変更したいですか?」
>答えは「クラスを除外するでしょうね」というものでした。
>彼が説明したのは、本当の問題はクラス自体ではなく実装継承(extendsの関係)なのだということでした。
>インターフェースによる継承(implementsの関係)のほうが望ましいのです。
>できる限り実装継承は避けたほうがよいでしょう。 「俺は継承に親を殺された。絶対赦さない。絶対にだ」 >>937
丁寧な説明あって助かったありがとう
実装継承は問題があるためクラス継承を使うのは辞めた方がよさそうね
そうするとクラス自体が不要なので今どきの言語にはクラスが無いわけなのね 継承すると結合度が高くなり、基底クラスがいじりにくくなるから
implements で名前だけ基底クラスで宣言した方がよい
という経験則なわけね >>940
違うよ
基底クラスは一切使わずにインターフェース等を使う
インターフェース等を備えていない言語ではやむをえないため抽象クラスで代替する 15年ぐらい前はstaticおじさんが馬鹿にされてたけど今じゃオブジェクト指向がオワコン呼ばわりかぁ
Lisp使おう() オブジェクト指向に毒されてるpowershwll,python,ruby等も終わりかな
F#に興味出てきたな あたりまえにオブジェクト指向使ってる現代でオブジェクト指向がオワコンって言うのはプログラム作らない人
ここの板のローカルルールくらい見ましょうね やたらとオブシコしてたのからの回帰ってならわかる そういう意味なんだろうなと思う オブジェクト指向を実践してない人ほど継承はダメだといっておられる
現実をまったく見ていない理論でしかないわけです 40年前に構造化プログラミング(いまあたりまえのプログラムをブロックモジュールに分ける概念)についてけなかった人とかも
理解しないまま「構造化プログラミングはオワコン!これからはオブジェクト指向!」ってそもそも構造化プログラミングの
発展系がオブジェクト指向だってわからずこのアホウみたいにウキャウキャしてたのかしら >>949
正しく理解しようよ
ダメなのはクラス継承
抽象型の継承はOK
オブジェクト指向もOK >>951
Pythonは文脈によって意味が変わる多重継承ね!
随意筋 不随意筋
↖ ↗
チンポ ついていけない人間がたくさん出てしまうパラダイムは多くの人間が使えないので自明にオワコン >>933
Cの生みの親が作ったGoはともかく、Rustにクラスがなかったのはマジびびった。
Haskell覚えたときに、オブジェクト指向プログラミングの再利用性に疑問持って、
(実際にはしないけど)C++でクラス使わずテンプレートだけ使った方が再利用しやすいんじゃ…?とか思った。
そして最近、「スッキリわかるC言語」立ち読みしたら、C言語に(テンプレートとは違ってマクロっぽいが)ジェネリックっぽい機能が取り入れられてるみたい。
(使えないコンパイラがまだ多いのでLinuxのカーネル開発では禁止されてるみたいだけど)
あと、デザインパターンも、関数型言語で普通にしてる事がいくつか書いてて、オブジェクト指向言語だと意識しないと出来ないんだと気づいた。
(例:イテレータ、テンプレート・メソッド、シングルトン、アブストラクト・ファクトリ、ストラテジなど) 広い意味のオブジェクト指向は今でも有用であって
クラスを使ったオブジェクト指向が間違っていただけなので
GoやRustなど新しい言語にはクラスが無いけど(クラスを使わない)オブジェクト指向ですよ >>953
おまえがオワコンなだけ。お前自身がついていけなくても、ついていけない人がたくさんいると思っていても
実際には多くの人がすでに実行してる。今やその辺の小学生でも
https://www.nhk.or.jp/school/sougou/programming/ >>957
俺は「ついていけない人間がたくさん出てしまうパラダイム」の話をしているのに、お前は勝手に「俺がついていけない人がたくさんいると思っているパラダイム」の話を始めたな
俺の話を理解できていないのか、理解した上で関係なくお前のしたい話を始めたのか知らんが、それで俺にレスをつけておいて俺にオワコンと言ってくるなんて、なんてガイジなんだ
回線切って首吊って死んでくれよな つまりプロトタイプベースオブジェクト指向のJSは一歩も二歩も先に行ってたってこと? >>958
おまえ生まれてから今までずっと
何言うてんねん >>960
まあ、JSは手続き型言語の皮をかぶったLispと言われる事もあるので、
そうとも言える。
ただLLだったので大規模開発に向かなかったのかと。
関数型言語と論理型言語は大きなカテゴリーでは宣言型言語になるんだけど、
オブジェクト指向も宣言的なプログラミングは目指してるんだよね。
メソッドチェーンと関数合成は向きが逆なだけで、やってることは同じだし。
Rust初めて見たときはC系統の文法のだけど、だいぶ関数型言語に寄ったなと思った。
しかも組み込み系の雑誌「interface」でだいぶ推してるし…。(お題を解く連載が続いてる)
何事かと。 >>962
>メソッドチェーンと関数合成は向きが逆なだけで、やってることは同じだし。
関数型のやり方によっては見た目は似せることができてもやってることは全然違う
関数型とオブジェクト指向で根本的に異なる部分 言われてみれば。
同じは言い過ぎだったね。
print関数と関数合成なんて、オブジェクト指向な人から見たらイミフだろうし。
高階関数に関数合成した関数渡すのも、オブジェクト指向じゃ関数オブジェクト(?)にメソッドチェーン渡すなんて、見たことない。(できるかは知らない)
割とよく使うのに。
あと、オブジェクト指向型言語で関数型プログラミング取り入れました!って言って
ラムダ式を強制するのがウザい。
関数型言語はセクションやら、それこそ関数合成使って、なるべくラムダ式を使わない様に進化してるっちゅーねん。 「継承」についてだが、多重継承をサポートしていない言語ならなるべく使わないほうがよい >>930
不満を解消するために行動しているというのは誤解
ある行動をしなかった理由を考えている
なぜ継承しなかったのか 銀の弾丸はなく適材適所なだけなのに
なるべく使わないって判断放棄してへん? >>968
おまえそのPythonでどんなアプリ作ったの?
>>937のリンク先から引用
>多重継承の問題の1つは、同一のメソッドが1つ以上の親クラスに存在しているときに、言語がどのメソッドを用いているのかが自明ではなく、あいまいだという点です。
これが絶対悪だというのはありえないにせよ、プログラム保守する上でこの問題はよく理解できるはず 人間に独立した人格が有るように、チンポにも独立したチン格が有る
これは親クラスと子クラスの継承関係である
チン格とはつまり「愚息」であり、自分にも他人にも成り得る
これがオブジェクトの多態性と表現される
オシッコするときのチンポは随意筋、勃起するときのチンポは不随意筋
このように時と場合によって真逆の性質を併せ持つことができる
随意筋 不随意筋
↖ ↗
チンポ
自然言語処理において語の意味は文脈によって変わるので、Pythonのような多重継承が不可欠ね! レス数が950を超えています。1000を超えると書き込みができなくなります。