×   ×   ×

「難しいソフトウエア開発を楽に行うための総合技術」

オブジェクト指向としてひとくくりにされる技術には、実にさまざまなものがあります。JavaやPythonのようなプログラミング言語に始まって、要求仕様や設計内容の図式表現、再利用可能なソフトウエア部品群、優れた設計のノウハウ集、業務分析や要件定義の効果的な進め方、システム開発を柔軟に進めるための開発手法など、ソフトウエア開発のほとんどの領域をカバーしています。

しかしこれらの技術は、個別に見るとそれぞれ随分違うものです。あえて共通点を探せば、ソフトウエア開発に関する技術であることと、それを円滑に進めるための技術ということぐらいでしょう。

このため、オブジェクト指向をひと言で表現すれば「難しいソフトウエア開発を楽に行うための総合技術」となるでしょう。今やオブジェクト指向は、対象範囲が大きく広がった結果としてそんな技術になりました。

難しいと思われるには、3つの理由がある

さて、このように優れた技術の集大成であるにもかかわらず、オブジェクト指向は難しく、とっつきづらいものと言われることがあります。抽象的な考え方が得意な人でないと身につけるのが難しく、習熟するまでに何年もかかるなどと説明されることもあります。いくら便利な道具でも、それを理解して使いこなすのが難しいようでは困ります。

オブジェクト指向が難しいと思われる理由は、いくつか考えられます。ここでは3つに分けて説明しましょう。

理由その1─―プログラミング言語の仕組みが複雑

オブジェクト指向以前のプログラミング言語の仕組みは比較的単純でした。(中略)

しかしOOP(オブジェクト指向プログラミング)には、たくさんの仕組みが加わっています。基本的な仕組みをざっと挙げるだけでも、クラスとインスタンス、インスタンス変数、メソッド、コンストラクタ、可視性、継承、スーパークラスとサブクラス、ポリモーフィズム、パッケージ、例外、ガベージコレクションなどがあります。

これらの仕組みの名称の多くは風変わりで、コンピュータ内での動作もイメージしづらいため、プログラミング初心者がすべてを理解して使いこなせるようになるまでには相応の時間がかかることでしょう。