ソフトウェアは知識の結晶オブジェクト指向の世界(22)

今回はソクラテス式対話編その2として「知識」とは何かについて考えてみました。

» 2007年10月16日 12時00分 公開
[河合昭男,(有)オブジェクトデザイン研究所]

 前回「オブジェクト指向のソクラテス式対話編」は少し話題を変えて、独自のスタイルで一連の一般向け哲学啓蒙(けいもう)書を発表され続け、本年2月惜しくも亡くなられた池田晶子氏をしのび、誠にせんえつながら「ソクラテス編−池田晶子氏に捧げる」という内容 で一文を書いてみました。前回お話ししたようにちょっと不思議な体験がきっかけとなって、池田晶子著「帰ってきたソクラテス」(新潮社)をヒントにしてソクラテスの対話編スタイルで「知識とソフトウェア」について考えてみました。今回も前回の続きという位置付けです

暗黙知を引き出す「産婆の術」

[登場人物]

  • ソクラテス
  • ソクラテスの弟子筋の某
  • 指揮者
  • 司会

司会 前回はヘラクレイトスの「万物は流転する」とプロタゴラスの「人間は万物の尺度」であるという古来より唱えられている普遍の法則からも反復型開発というものは当然あるべき開発スタイルであることを再確認しました。ユーザーの評価をフィードバックする反復型の開発スタイルはこの普遍の法則に基づくものであり、あらゆる製品開発にとって当然あるべき開発スタイルであるといえます。これはシステム開発の世界のみならず一般消費者向けの商品開発にも当てはまる普遍の法則です。

 さて前回は「知識」とは何かという問題について「 ソフトウェアは知識の結晶」であると述べました。今回はもう少し考えを進めてみたいと思います。

 音楽の話にしましょう。例えばピアニストはピアノを演奏するのに必要な知識と技術を持っています。演奏家はそれぞれ自分の得意とする楽器を演奏するのに必要な知識と技術を持っています。知識は自分の役割を果たすための原動力です。

ソクラテス その知識の中には楽譜の読み方など音楽演奏に関する共通知識も含まれるだろうが、演奏に使用する楽器ごとに違う知識が必要になる。ところでその役割を果たす原動力である「知識」そのものについて迫ってみたい。

指揮者 僕はオーケストラで使われるさまざまな楽器を演奏するための知識はそれぞれの演奏家ほどは持っていない。それでも指揮者が務まるのはさまざまな楽器の演奏家がどのように演奏すればオーケストラとして調和の取れた最高の演奏ができるかという知識と技術を持っているからです。

ソクラテス それは人の知識を引き出す知識といえる。僕は男だからあまり人にはいわないが、これはひそかに「産婆の術」と呼んでいるもので実は少しは心得がある。産婆は自分自身が子供を産むわけではないが、他人の子供を取り出すのを助けることができる。人はおなかの中にある知識を自分自身で取り出すのは案外難しい。そこで僕がいろいろその人と対話しながらその知識を取り出すのに協力するわけです。子供を取り上げる のでなく知識を取り出すのだ。

「守破離」(しゅはり)で知識を習得する

指揮者 作曲家が作曲した作品に演奏でどこまで作曲家の意図に近づけられるかが演奏家の知識レベルです。作曲家の意図はもちろん100%楽譜に残されているわけではありません。欠落した情報をどこまで補えることができるか、仮に観客席にモーツァルトがいたとしてその前でモーツァルトの作品を演奏したとしたらどうだろうということを意識すると思わず緊張し力が入ります。

 モーツァルトは一夜で大曲を作曲したという逸話を聞いたことがあります。一夜というよりほぼ一瞬でまるで絵画のように細部まで見えるそうです。絵画を楽譜に書き写すという単純肉体労働の作業に一晩かかっているにすぎない。ここでどこまで細部まで書き写せるでしょう。イメージに浮かんだ絵画というのは平面的な静止画とは違うものだろうし、大体そこに音楽があるというのは一体どういうことなのかわれわれ凡人には理解し難い。楽譜で表すと当然かなりの情報が落ちてしまう、というよりむしろわずかの情報のみ表現できるといった方が適当かもしれません。これはモーツァルト本人にお尋ねする以外確認の方法はありませんね。

ALT 図1 知識は役割を果たす原動力

指揮者 そこで指揮者独自の解釈が生まれるわけで、われわれ演奏家は単なる技術者というより芸術家であると自負するゆえんです。知識とは自分の仕事をなすための原動力。知識の種類は仕事の種類だけ存在する。仕事の種類だけ知識の種類が存在する。

司会 知識はどのように習得するのでしょう?

指揮者 例えば、ピアニストを目指すならばピアノの先生に教えてもらいます。自分で練習し、先生に見てもらい、また練習し……、を繰り返して段々ピアノ演奏の知識が身に付きます。知識は言葉のみで一度に伝達できるものではありません。体で覚えるものです。練習と実践で知識は段々深まり、これで完成ということはありません。あるレベルを突破すると自分流のスタイルが出てきます。知識が身に付いたということで、ここまで来れば自由自在の境地となりその仕事で独り立ちできます。

ソクラテス 知識は体で覚える。ここに知識の本質がありそうだ。まねることは第一歩で、実践を繰り返して知識が身に付けば自分流のスタイルができそれで仕事ができるレベルになる。知識は時間をかけて体全体に染み込んでゆき、魂の奥深く染み渡り、その人の全人格が記憶する。たとえ死んでも永遠の魂に記憶されるものであり、ここまで来れば本物の知識、自由自在の境地に達したといえる。

 守破離という言葉があります。茶道・剣道・柔道などで道を究めるプロセスを端的に表現した古くからある日本の言葉です。最初は師匠の教えを忠実に学び(守)、それが身に付き応用力が出てきたレベルが「破」です。最後の「離」は型にとらわれない自由自在の境地、これが本物の知識だということですね。つまり守破離とは知識の習得のステップを端的に表したものですね。

ソフトウェアは知識の結晶

司会 「ソフトウェアは知識の結晶」について考えてみたいと思います。コンピュータはハードウェアとソフトウェアでできています。ハードウェアという実体を持つ機械装置にソフトウェアという無形のものを載せてコンピュータとして機能します。

 softwareという言葉はコンピュータが発明されたころ、機械装置をhardwareと呼ぶのに対応して作られた言葉で本来はコンピュータプログラムを指します。言葉は時代とともに変化し、最近では映画や音楽もソフトウェアといういい方をします。この場ではソフトウェアの意味をさらに拡大解釈して「知識」として考えてみましょう。

 コンピュータの機械装置にも知識が詰まっています。その知識そのものは目に見え手で触れるものではありません。しかし確かに存在するものです。それをここでは(広義の)ソフトウェアと呼びます。それが結晶化し実体化したものが機械装置です。

 コンピュータプログラムも当然ながら知識の結晶というべきものです。プログラマーが書くソースコードは目に見えますが、そのソースコードの裏に隠れている知識は直接目には見えません。工夫されたプログラム、先人の知恵が詰まったプログラム、パターンが応用されているプログラム、……。それらの知識をどこまでプログラミングできるかがプログラマーの知識レベルであり、ソースコードから読み取る能力もプログラマーの知識レベルです。故にプログラムも光り輝く知識の結晶です。この2つの知識の結晶が合体したものがコンピュータです。知識の結晶は美しい光り輝きを持つものです。

「モノ」と「コト」

司会 オブジェクト指向で世界をとらえると人間の認識対象であるオブジェクトは「モノ」と「コト」に大きく分類することができます。「モノ」とはその実体が目に見え手で触れる、あるいは耳で聞くなど五感で感知できる物理的なものと、五感以外の方法で人間が認識することのできる概念的なものがあります。「コト」とは「モノ」の状態変化を引き起こす事象です。それは「モノ」の生成・消滅やあるいは属性値を変化させたり、2つの「モノ」が結び付いたり離れたりする原因となるものです。

 ここでは取りあえずモノは(物理的または概念的な)人工物、コトは人為的事象のみを対象とします。人間や自然物、自然現象は除外します。

 「楽曲」という概念的なモノは作曲家が「作曲」というコトで生み出して結晶化し、演奏家は「演奏」というコトで楽曲に込められた作曲家の知識の結晶を時空間に解き放つ。これも一種の知識の伝達といえる。

 このモデルで知識の問題を考えると、作曲家は作曲する知識があり、演奏家は演奏する知識がある。つまり知識とはコトをなす能力だということになります。特定の楽曲のみではなくさまざまな楽曲を作曲し演奏することができる原動力が知識だといえそうです。

ALT 図2 知識は結晶化して伝達する

ソクラテス 知識とはコトをなす能力。コトには結晶化する生成力と結晶を時空間に解放する力、モノに生命を与える力がある。種を作る知識と種から花を咲かせる知識があるのだ。

 光り輝く結晶、オーラの出ている結晶には素晴らしい知識が詰まっている。目に見えない知識レベルを測定できるオーラ探知機が発明されると便利ですね。製品の品質検査でオーラの度合いでランク付けする。目では区別のつかない偽物のハンドバッグにはオーラがないからだまされない。

司会 ソフトウェア開発の世界の守破離を考えてみたいと思います。プログラマーとして仕事ができるようになるには集合教育を受けるか書籍で独学するか、まず基礎知識の習得が第一歩です。プログラミング言語入門の第1ステップ“Hello World!”を実際に自分でプログラミングを行って画面に表示されることをまず体験することから始めます。少し学んではプログラミングを行って確認してゆき段々と体で覚えてゆきます(守)。ある程度体得できるとあとはレファレンスマニュアルを見ながら自由にプログラミングができる境地に達します(破)。

 プログラミングの経験を積むと次は設計を学びます。これも学習と実践を経験しながら段々と知識が身に付いてきます。設計図はデザイナーの知識の結晶です。プログラマーはこの知識の結晶を解読し実行可能プログラムとして現実世界に解き放ちます。デザイナーの知識は設計書を通してプログラマーに伝達されます。アーキテクトを目指すならプログラミングと設計の経験を積んで自由自在の境地(離)に到達することが必要です。

 知識というものは凝集して結晶化する人とそれを解読して解き放つ人がいる。創造する人と利用者、つまり利用者に価値を提供している。価値を認める人が利用者です。

ソクラテス 知識とは価値である。価値を生み出す原動力である。知識レベルの高い人はオーラで光り輝いている、価値を創造しているときに特に光り輝くのだ。

筆者プロフィール

河合 昭男(かわい あきお)

大阪大学理学部数学科卒業、日本ユニシス株式会社にてメインフレームのOS保守、性能評価の後、PCのGUI系基本ソフト開発、クライアント/サーバシステム開発を通してオブジェクト指向分析・設計に携わる。

オブジェクト指向の本質を追究すべく1998年に独立後、有限会社オブジェクトデザイン研究所設立。 OO/UML 関連の教育コース講師・教材開発、Rational University認定講師、東京国際大学非常勤講師。 ホームページ:「オブジェクト指向と哲学



「オブジェクト指向の世界」バックナンバー

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ