プログラミング言語は自由度が低いほど強力か?
さらなるパワーを追求し、C#には最近新機能が加わり、Javaも間もなくC#と同じ道をたどる可能性がある。機能の選択肢が拡大すればプログラマーの自由度は高まるが、これにより必ずパワーが増すのだろうか。また、真に強力であるために、言語は高い自由度と柔軟性を提供する必要があるのだろうか。
さらなるパワーを追求し、C#には最近新機能が加わり、Javaも間もなくC#と同じ道をたどる可能性がある。機能の選択肢が拡大すればプログラマーの自由度は高まるが、これにより必ずパワーが増すのだろうか。また、真に強力であるために、言語は高い自由度と柔軟性を提供する必要があるのだろうか。
Michael Feathers氏の最新の投稿をめぐり、ブログのコミュニティ上で活発な議論が行われた。Feathers氏は、オブジェクト指向プログラミング言語に組み込まれた機能を使うと、テストが容易に行うことができ、コードの復元性を簡単に高めることができると主張した。
Pragmatic Programmersによると、オブジェクト指向のプログラミングにおいては”データを尋ねるよりもむしろオブジェクトに頼む”ほうが好ましいということだ。またFeathers氏は適応性と強固性の向上に役立つかもしれない非同期のメッセージを使用するほうが効率的であることを議論している。これによって純機能的なプログラミングの規則に反しているものの、Erlangが位置づけされる。