1. ホーム
  2. oop

[解決済み] オブジェクト指向プログラミングに代わるものは?

2023-04-12 11:49:21

質問

OOP は今日のソフトウェア設計において、おそらく最もよく使われているプログラミングパラダイムでしょう。私の質問は、他にどのようなパラダイムがあるかということです。 はそれと競合することができ、OOP の代わりに立つことができるのでしょうか。 ? この質問を明確にするために、他にどんなパラダイムがあるのかを尋ねているのではありません。たくさんあるのですが、どれがあるのか知りたいのです...。

  • 理論だけでなく、実際に使用されてきた。
  • OOPと競合できる であるため、大規模なプロジェクトでも苦痛なく使用できる。
  • ビジネスロジック、データベースなどを備えたデスクトップアプリの開発に使用できる。
  • OOPと並行して使用されるのではなく、OOPの代わりとして使用されます。

また、もしあるとすれば、その長所/短所、OOPより優れている/劣っている理由、どの言語で使うのがベストか、一般的な言語での使用はどうか、デザインパターンはあるのか、OOPを完全に代替できるのか、などを教えてください。

どのように解決するのですか?

関数型プログラミング は、主に学術界で人気のある別のプログラミングパラダイムです。関数型プログラミング言語の代表的なものは ハスケル であり 標準的なML .

関数型プログラミングとオブジェクト指向プログラミングの根本的な違いは、以下のような意味でのプログラミングをすることです。 データフロー ではなく 制御フロー . プレゼンテーションを見る 関数型プログラミングでエフェクトを飼いならす による サイモン・ペイトン・ジョーンズ を参照してください。

業界で使われている関数型プログラミングの良い例として Erlang . これは主に通信、分散、フォールトトレラントシステムで使用されています。プレゼンテーションを見る Erlang - 並行世界のためのソフトウェア によって ジョー・アームストロング .

また、関数型プログラミングとOOPを組み合わせた、より新しい関数型プログラミング言語も存在します。2つの良い例が F# で、.NETプラットフォーム用の Scala であり、他の言語で書かれたプラットフォーム上の既存のライブラリを使用できることが多い。

今の新しいプログラミング言語のトレンドは マルチパラダイム であり、オブジェクト指向プログラミングや関数型プログラミングのような複数のパラダイムを同一言語内で組み合わせている。