プログラミングでオブジェクトを表現すること。 - ページ 2

 
Реter Konow:
哲学的な概念がないとどうしようもない。よく考えられたオブジェクトの「設計図」に従わずに、単に関数と変数を組み合わせること?クラス、構造体、アクセス修飾 子など、私たちには特定のツールが与えられている...。でも、他のツールもありそうだし...。例:状態、サンプリング、マッピング...なんでやねん私が言いたいのは、OOPフォーマットとツールキットはバージョンを持つことができるということです...。

最適な充足感」というものがあるのです。

なぜ、人には2本の足と2本の腕があるのか?なぜ、犬には前足が5本ないのですか?だから、なぜフランケンシュタインを作るのか、という疑問が湧くのです。定期的に痒みはありますか?自分の足跡を残そうとして作っているのでなければ、とっくに作っているはずです。つまり、力の入れどころを間違えているのです。

 
transcendreamer:
一般に、対象を定義するときには主体も定義しなければならず、そうでなければ世界を不完全に記述することになる。
そう、存在論は、そのような「対象」の定義に関わるものなのです。明らかに、PLOの創造者たちは、広く受け入れられている存在論的な哲学モデルに寄りかかっていたのである。しかし、そのモデルは主観的なものです。そうそう、オブジェクトから、プログラミングはサブオブジェクト(AI)へ。
 
Реter Konow:
そこで避けて通れないのが、哲学的な発想です。よく考えられたオブジェクトの「設計図」に従わずに、単に関数と変数を組み合わせること?クラス、構造体、アクセス修飾 子など、私たちには特定のツールが与えられている...。でも、他のツールもありそうだし...。例:状態、サンプリング、マッピング...なんでやねん私が言いたいのは、OOPフォーマットとツールキットはバージョンを持つことができるということです...。
また、場合によっては、別のバージョンのオブジェクト記述形式の方が効果的なこともあります。

言語によって、OOPの機能は異なります。

 
Artyom Trishkin:

最適な充足感」というものがあるのです。

なぜ、人間には2本の脚と2本の腕があるのか?なぜ、犬には前足が5本ないのですか?だからこそ、あなたには疑問が生じるのです。なぜ、フランケンシュタインを作っているのですか?定期的に痒みはありますか?自分の足跡を残そうとして作っているのでなければ、とっくに作っているはずです。つまり、力の入れどころを間違えているのです。

自分のためなのか、政権のためなのか。
 

Wikipediaの次の定義が気に入りました。

一般指向プログラミング(OOP)は、プログラムをオブジェクトの集合として表現、各オブジェクトはあるクラスのインスタンス であり、クラスは継承の階層を 形成することに基づくプログラミング手法 である[1]

これは純粋な哲学です。だから、プログラミングに哲学がないと思っている人は間違っている。オブジェクト・プログラミングは哲学的な基礎の上に成り立っており、その結果、プログラマーは抽象的で哲学的な思考ができるようになる必要があります。私など、それができているのに、その概念に哲学的な疑問を感じてしまうのです。これは論理的であり、正当なことです。フランケンシュタイン」はない。私は、"もし地球が平らでなかったら?"という問いに導かれています。


以下、記事全文を掲載します。

https://ru.wikipedia.org/wiki/Объектно-ориентированное_программирование

すべて哲学なんです。

 

wikiより。

歴史[編集|編集コード]


OOPは、データとその処理のサブプログラム(手続き、関数)が形式的にリンクされていない手続き型プログラミングの 思想が発展した結果、発生した。オブジェクト指向プログラミングのさらなる発展のために、イベント(いわゆるイベント指向プログラミング)やコンポーネント(コンポーネントプログラミング、COP)の概念がしばしば重要視される。

オブジェクトの相互作用は、メッセージによって 行われます。 このようにOOPをさらに発展させた結果エージェントを ランタイムレベルでコードの独立した部分とするエージェントベースプログラミングが 生まれたようです。エージェントは、自らが存在する環境を変化 させることで相互作用する。

構造的にはオブジェクトに直接関係しないが、安全(例外的状況、チェック)かつ効率的な運用のためにオブジェクトに付随する言語構成は、アスペクト指向プログラミングにおいて)オブジェクトからカプセル化される。サブジェクト指向プログラミングは、オブジェクトの概念を拡張し、より統一的で独立したオブジェクトの相互作用を提供するものである。OOPとエージェントベースプログラミングの独立した相互作用の部分では、その過渡的な段階と言えるでしょう。

後にパラダイムを形成する基本概念を最初に提案したプログラミング言語はSimula あったが、この言語を使う文脈では「オブジェクト指向」という言葉は使われなかった。1967年の 発表当時は、オブジェクト、クラス仮想メソッドなど、画期的なアイデアを提案したが、同時代の人々には壮大なこととは受け止められなかった。実際、Simulaは「クラスを持つAlgol」であり、多くの複雑な概念を手続き型プログラミングで 表現することを単純化したものだった。Simulaにおけるクラスの概念は、Algolの構成要素の合成によって完全に定義することができます(すなわち、Simulaにおけるクラスは、プリミティブによって記述される複雑なものです)。

プログラミングの「新しい切り口」(手続き型以外)は、SmalltalkでAlan KayとDan Ingallsによって 提案されました。 ここで、クラスという概念が、他のすべての言語構成要素の基礎となる考え方となった(つまり、Smalltalkのクラスは、より複雑な構成要素を記述するための原始的なものである)。オブジェクト指向のプログラミング言語として 初めて普及した。

現在、オブジェクト指向のパラダイムを実装した応用プログラミング言語(言語リスト)の数は、他のパラダイムと比較して最も多くなっている。業界で最も広く使われている言語(C++、Delphi、C#、Javaなど)は、Simulaのオブジェクトモデルを体現しています。Smalltalkモデルに依存する言語の例として、Objective-C、Python、Rubyがある。

 

上記のWikipediaからの抜粋は、OOPのアイデアがどのように進化していったかを説明しています。最初は、このコンセプトは誰かが座って考えたものだと思っていました。私は間違っていた。進化の過程だったんですね。

おそらく、このコンセプトはこれからも進化していくでしょう。なぜダメなのか?

 

もう一つ、Wikiからの抜粋ですが、コンセプトの主観を確認することができます。

OOPは40年以上の歴史があるが、それにもかかわらず、まだ明確に認められた技術の定義はない[14]。 最初のオブジェクト言語とシステムの基本原理は、その後、数多くの実装において大幅に修正(あるいは歪曲)され、追加されてきた。ま た、1980年代半ば頃から「オブジェクト指向」という言葉が流行 し、その結果、それ以前の「構造化」(構造化プログラミング技術の普及により流行した)と同じことが起こり、新しい開発に対して人為的に「付け」られ、その魅力が 確保されるようになりました。ビョルン・ストラウストラップは1988年にあらゆるものの「オブジェクト指向」の正当性は、ほとんどの場合「Xは良い」という欠陥のある三段論法に 帰着する、と書いているオブジェクト指向は良い。だからXはオブジェクト指向 である」。

このように、プログラムは、状態と振る舞いを持つオブジェクトの集合体である。オブジェクトはメッセージによって相互作用する。プログラム全体がオブジェクトであり、その機能を実行するために、構成するオブジェクトを参照し、そのオブジェクトがプログラムの他のオブジェクトを参照して要求された機能を実行するという、オブジェクトの階層が自然に構築される。当然ながら、呼び出しの無限の再帰を 避けるため、ある時点でオブジェクトは自分宛のメッセージを、言語やプログラミング環境が提供する標準的なシステムオブジェクトへのメッセージに変換する。

システムの安定性と制御性は、オブジェクトの責任の明確化(各動作に対して特定のオブジェクトが責任を負う)、オブジェクト間インタフェースの明確な定義、オブジェクトの内部構造を外部環境から完全に分離すること(カプセル化)により実現される。

OOPは他にもいろいろな形で定義することができます。

//-----------------------------------------------------------------------

引用終わり。

 
Реter Konow:

Wikipediaの次の定義が気に入りました。

一般指向プログラミング(OOP)は、プログラムをオブジェクトの集合として表現、各オブジェクトをあるクラスのインスタンスと し、そのクラスが継承階層を 形成することに基づくプログラミング手法 である[1]

これは純粋な哲学です。だから、プログラミングに哲学がないと思っている人は間違っている。オブジェクト・プログラミングは哲学的な基礎の上に成り立っており、その結果、プログラマーは抽象的で哲学的な思考ができるようになる必要があります。私など、それができているのに、その概念に哲学的な疑問を感じてしまうのです。これは論理的であり、正当なことです。フランケンシュタイン」はない。私は、"もし地球が平らでなかったら?"という問いに導かれています。


以下、記事全文を掲載します。

https://ru.wikipedia.org/wiki/Объектно-ориентированное_программирование

すべて哲学なんです。

これは哲学ではなく、自動車を制御するための原理であり、歯車、ピン、ピニオンの集合がより複雑な構造を形成し、この階層の主役である車輪と座席の間のガスケットにまで至るのである。

ということで、車の運転とプログラミングは違うと思っている人は、道ずれです。


用語の使い分けを続けるには、同じWikiにある分類学や分類の 用語に精通し、さらにWikiの記事にある提案されたリンクから知ることをお勧めします。

 

私の予測は間違っているかもしれませんが、もしコンセプトが進化し続ければ、新しいオブジェクト モデルが生まれ、それはより少ない労力で構築できるようになり、その結果、システムの成長も早くなることでしょう。これにより、プログラミングの工程が廃止され、初歩的なものとなった多くの言語が消滅することになる。この未来はありそうだ、理にかなっているのだから。

ここでは、そのような結論に至る論文をいくつか紹介する。

1.オブジェクトから、プログラミングはサブジェクト(AI)へ。

2.AIを書くためには、プログラミングを大幅に高速化し、労働力を削減する必要があります。

3.新しい技術とオブジェクトの新しい表現により、プログラミングはキーボードを超えて、よりインタラクティブなものになる。


もし進化が続けば、必然的にグローバルな再分配を経験することになり、その中には職業や専門分野全体の消滅も含まれるでしょう。そして、新しいものの出現。