アプリ版:「スタンプのみでお礼する」機能のリリースについて

プログラミング言語の歴史を概観した上で,オブジェクト指向言語の機能や位置 づけをまとめ、そのうえでさらに,オブジェクト指向言語としてのJavaの特徴を論じ、 また,他の言語(R や Python など)との相違について教えてください。

A 回答 (6件)

最初はSIMULA67。

しかし当時「オブジェクト指向」という明確な概念はなくて、むしろ(連立微分方程式の数値計算をやるシステム"DYNAMO"なんかと一緒くたにして)「simulation専用の特殊な言語」ぐらいに捉えられていた。
 「オブジェクト指向」ってのは、コーディング以前の、プログラムやデータの構造をデザインする際のスタイルの問題だろう。言語が大抵何であれ、よくできた「自分ルール」を作って守れば「オブジェクトを意識したプログラム」は書ける。逆に「オブジェクト指向言語」と呼ばれる言語でもアンチ・オブジェクト指向のプログラミングは容易にできる。
 一方、(SIMULA67より10年余り遅れて出てきた)「構造化プログラミング(structured programming)」という概念がある。「GOTOを使わないこと」だと勘違いしてる人もいるようだが、そのエッセンスは「プログラミング言語を拡張して、問題を解くための専用の(命令・データ型の)体系を作り、それを使って簡潔なプログラムを書く」ということ。専用の体系を作ることは言語の「自己拡張」とも呼ばれる。少々の処理効率よりも、ソースの可読性や再利用のしやすさを重視しよう、ということでもある。これはその後数年して言い出された「オブジェクト指向」の概念と紙一重だ。
 SIMULA67はもちろん、LISPだのFORTHだの、自己拡張なら任せとけ的な言語は古くからある。でも、それらに限らず、大抵の言語なら、「専用の命令体系」としてサブプログラムやマクロのセット(すなわちライブラリ)を整備する、というスタイルで書けばそこそこイケる。
 そもそも「指向(oriented)」というユルい表現で呼ばれているのは、そういうモヤモヤした事情を反映してのことに違いない。
 だから「オブジェクト指向」というスタイルはあっても、「オブジェクト指向言語」なるものは、それぞれが勝手に掲げている看板に過ぎない。さて、並列処理ではオブジェクトの概念がとても役に立つが、並列処理はJava言語自体ではなくライブラリでサポートされているに過ぎず、それを使うのにはいろいろ注意が必要。この点でJavaはSIMULA67の足元にも及ばず、だから「オブジェクト指向言語」としては看板倒れだ。
…と言っちゃうと過激か?
    • good
    • 0

まあ今時猫も杓子も「オブジェクト指向」だからなぁ.... Fortran や COBOL でさえ.



「オブジェクト指向言語」ってどこからなんだろう. Simula? Smalltalk?
    • good
    • 0

> 無理ゲーですか!ありがとうございました。



うん、無理ゲー。
恐らく「ある程度の割合の人が想定するオブジェクト指向」に付いては何か言えると思えるんだけど、「論じる」って程じゃあなくなるよね。
曖昧なモノに付いて論ずるのは不可能だしアブナイから。
そして、って事は貴方が考える「オブジェクト指向」と出題者が考える「オブジェクト指向」の間にも乖離がある、って事なのね。

こういう場合はさ、出題者が

・俺の定義するオブジェクト指向はこうこうこうなんで、これに付いて論じよ

ってすべきなんですよ。取り敢えず暫定的に定義はこうする、これに対して論じろ、ってすべきなの。
それをヘタに平等感を出す為に

> プログラミング言語の歴史を概観した上で

とか言い出したからおかしくなってんのね。
しかもPython引き合いに出す辺り、実はこの出題者は

「Javaのオブジェクト指向が正しい」

って前提を持ってます(笑)。だから出題が歪なのよ。
ダメな出題の典型例だよなぁ。
    • good
    • 0

まずそもそも、オブジェクト指向、って厳密な定義がないんですよ。


従って、マトモに考えると

> オブジェクト指向言語の機能や位置 づけをまとめ

まとめられない(笑)。無理ゲーだ(笑)。こんな宿題出すヤツが悪い。いや、マジで(笑)。
    • good
    • 0
この回答へのお礼

無理ゲーですか!ありがとうございました。

お礼日時:2021/01/09 13:57

学校のレポートであればまず教科書を読みましょう。


そこにご質問に書かれている事柄について掛けるだけの基本的なネタがあるはずです。

ちなみに右も左も分かりませ~んという場合、Googleなどで「プログラミング言語」や「プログラミング言語 歴史」といったキーワードを指定して検索し、各種の解説ページを参照してみるといったことはされましたか?
オブジェクト指向言語、具体的プログラミング言語に関しても同様です。

今の時代。適当(=適切)なキーワードを指定して検索するスキルも大切かと。(_ _;;

で。レポートは人の言葉ではなく自分の言葉でまとめて下さい。
そのスキルを獲得することも大変重要です。

参考まで。
    • good
    • 2
この回答へのお礼

その通りです。ありがとうございました。

お礼日時:2021/01/09 13:58

これは君の学校の課題でしょ

    • good
    • 1
この回答へのお礼

その通りです。ありがとうございました。

お礼日時:2021/01/09 13:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!