オブジェクト思考
昨年からコンピュータプログラムの勉強をしています。このブログの立ち上げが最初の目的でした。そのために、HTML・CSSを学び、その後PHP、JavaScriptをざっと学びました。そしてこれから花形となるAIやデータサイエンスの分野でよく使われているということでPythonというプログラム言語に行き着きました。これらのプログラム言語は、コンピュータを動かすプログラムを書く言葉ということでは共通なのですが、得意とする分野が違い、文法が相当違います。文法の違いは、英語、フランス語、ドイツ語、スペイン語のような違いだと思います。日本語と英語のような違いではありません。
Pythonを学んでいるとオブジェクトという言葉が頻繁に出てきて、Pythonはオブジェクト指向のプログラミング言語だと書いてあります。そしてこのオブジェクト指向という概念で多くのPythonプログラム学習者は困惑してしまいます。Pythonを使っている人が書いているオブジェクト指向の説明が微妙に違うのです。
一般的にオブジェクト指向とは、プログラムをプログラムが使われるモノを単位にして作り上げようという考え方と説明されています。例えば、車だとエンジン系、車輪系、エアコン系などモノを中心としたユニットに分けてプログラムを作成し、最終的に統合しようというプログラミング手法ということができると思います(こう書くと異論が沢山出て来るのがオブジェクト指向という考え方です。)。
私もここで躓きもやもやしていたところあるITエンジニアの説明(ブログ)が心に刺さりました。その方は、オブジェクト指向のオブジェクトをモノとは考えない方がよいと言うのです。英語を学ぶ際、S+V+O、S+V+Cなどという語順を習ったはずだが、そのOに相当するものと考えればよい、と言うのです。SはSubject(主語)、VはVerb(動詞)、OはObject(目的語)です。オブジェクト指向とは、主語や動詞を主役とするのではなく、目的語を主役としたプログラミング言語だと考えればよいと言うのです。英語の場合、普通文(大部分の文)では、主語が最初(頭)に来ます。そして動詞、目的語と文書として重要な順に並べられます。命令文の場合、主語は省略され、主役は動詞となり、動詞が先頭に置かれます。しかし、目的語が主役になる(先頭に来る)文はありません。これに対して、目的語を主役にしたプログラム言語のことをオブジェクト指向(言語)と考えればよいという訳です。プログラムは、コンピュータに何かの作業(仕事)を命じる文書なので、命令文です。プログラムの場合、動詞のみの命令文はなく、対象を必要とします。例えば「ハンドルを」(O)があって、「左に回す」「右に回す」「固定する」などの動詞が決まってきます。即ち、オブジェクト指向プログラムでは、対象(Object)が中心となることが分かります。
このように主語や動詞を中心とするのではなく、対象(Object)を中心において考えること=オブジェクト思考(ここでは指向ではなく思考)は、仕事や社会生活でも有益なように思えます。主語(Sbject.例えば私)を中心に考えれば、どうしても自己中心的となりますし、自他の衝突が多くなります。また、動詞が中心となるということは、上下関係が中心ということであり、上下関係を離れた生活が上手く行くとは思えません。それに対して、対象(Object)を中心したら、次に来るのは対象に働きかけることであり、問題解決やより良い関係作りに繋がります。
仕事はオブジェクト思考が中心ですが、社会生活においてもSubject思考よりObject思考が重要かも知れません。