BT

コードの構築に、OOPは最適?

| 作者: Sadek Drobi フォローする 1 人のフォロワー , 翻訳者 編集部 フォローする 0 人のフォロワー 投稿日 2008年12月2日. 推定読書時間: 2 分 |

パワーおよび柔軟性を提供するプログラミング言語が、近ごろ勢いをつけている。しかしながら、Johnatan Tang氏は、従来のオブジェクト指向性が、プログラム編成をますます容易にし、かつ単純にしている(リンク)という事実が原因で、柔軟性対生産性の矛盾があること を強調している。

氏は、シングルディスパッチの言語では「パラメータや他の値があれば、それでできることが正確に分かる」と主張している。静的に入力された言語では、コー ドは関与する値をより公開しており、構造的に入力された言語では、それはますます一般的であるが、それでも与えられた値でどんな操作ができるのかが即座に分かる。また静的および構造的に入力された言語に関して、指定のオブジェクトでサポートされない操作を実行する場合、すべきことが明確である。

その操作を実行するメソッドを記述する。そのクラスを制御しない場合、これは問題になる。RubyやC#がオープンクラスに移行したのはそのためである。

また、このメソッドがどうなるのかが明白である。つまり、操作する必要があるクラスが分かる。

マルチディスパッチ言語では、メソッドがどこに記述されるか、また「新しいメソッドのどのパラメータが(指定の)値をとる」のかが不明瞭である。これによってコードの調整時に柔軟性を提供するが、それに関しさらに決定がなされ、こうした決定を肝に銘じておくために、さらに取り組みが提供されるべきである ことを、示唆している。

そのメソッドを使用するときはいつでも、どこに定義されたかを思い出し、適切なインポートステートメントを追加する必要がある。もし忘れた場合、指定された汎用機能の適切なメソッドが読み込まれなかったなど、予想外の振る舞いをする場合がある。

決まりごとを定めることは、この問題に対するソリューションだと見なすことができる。しかしながら、Tang氏は「言語によって実施されない決まりごと は、従われない傾向にある」と信じている。さらに、モジュールの配列用にいくつかパターンを定義しようとした(リンク)後で、氏は「これは本質的にドメインごとに固有の問題である。すべてのプログラムに当てはまる原理を正しく作っているものは存在しない」ことを断言している。

従って、Johnatan Tang氏によると、プログラムの体系化におけるこの柔軟性対生産性の矛盾に対する明確なソリューションはない、ということだ。自分が好きな言語につては、どうか?どんなソリューションを見つけられるか?また、自分の経験を考えると、その両者間で格好の歩み寄りがあるか?

 

原文はこちらです:http://www.infoq.com/news/2008/11/oop-vs-fp-4-code-structure

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT